@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,71 +0,0 @@
1
- /**
2
- * Control-SEQUENCE removal for text that crosses a boundary where a terminal
3
- * escape must never become content (paste-control-sequence-residue, fix A'-1).
4
- *
5
- * WHY A DELETE-THE-WHOLE-SEQUENCE RULE EXISTS. Deleting only the introducer
6
- * byte turns an escape into visible text: `ESC [ 3 8 ; 2 m` loses its ESC and
7
- * leaves `[38;2m`, which is a run of digits and semicolons somebody then reads
8
- * on screen and sends to the model. The bytes were never content; the sequence
9
- * has to go as a unit.
10
- *
11
- * WHY IT IS NOT `tools/terminal-output.ts`'s REGEXES MOVED HERE. Those four
12
- * regexes answer "what does this look like" for a terminal row that is still
13
- * being written, and they are fed text whose unfinished tail has ALREADY been
14
- * cut off and parked in a carry by the caller (`sanitizeChunk`,
15
- * `toDisplayRow`). Pasted text is one-shot: there is no next chunk, so a
16
- * truncated sequence needs a rule of its own. Measured against the stream
17
- * version of the same input, `ESC [ 3 8 ; 2 ; 1 8 ; 5 2 ; 8 6` followed by
18
- * prose loses the first letter of the prose (`n`), and an unterminated OSC
19
- * leaves its whole body behind.
20
- *
21
- * THE FOUR DECISIONS THIS MODULE ENCODES:
22
- *
23
- * 1. A sequence introduced by a real introducer byte (`0x1B`, `0x9B`, `0x9D`,
24
- * ...) is removed as a unit; bare text that merely LOOKS like the inside of
25
- * one (`[38;2;18;52;86m` typed or pasted without an ESC) is left exactly as
26
- * it is, character for character.
27
- * 2. A string-type sequence (OSC / DCS / SOS / PM / APC) runs to BEL or ST, and
28
- * an unterminated one is removed UP TO THE END OF ITS LINE. It never crosses
29
- * `\n` and never guesses at a terminator: a truncated sequence is the most
30
- * common shape in a clipboard, and the only safe reading of it is "the rest
31
- * of this line was never text".
32
- * 3. A truncated CSI loses its introducer and its parameter bytes and NOTHING
33
- * ELSE. `ESC [ 3 1 m` split mid-parameter is parameters, not prose, but the
34
- * byte after them is the user's own character and must survive.
35
- * 4. A C1 CSI (`0x9B`) with no parameter byte at all is treated as the stray
36
- * control byte it is most likely to be rather than as a sequence, because a
37
- * lone `0x9B` followed by one letter is otherwise indistinguishable from a
38
- * non-UTF-8 file's stray byte followed by content -- and consuming that
39
- * letter would be the very data loss this module exists to prevent.
40
- *
41
- * Pure, ASCII-only, React-free, Ink-free, and TOTAL: it never throws and it
42
- * never reorders or mangles the bytes it keeps. No new dependency.
43
- */
44
- /**
45
- * Remove every escape/control sequence, keeping all other bytes in order.
46
- *
47
- * KEEPS `\t`, `\n` AND `\r`: they are line structure, and `\t` inside pasted
48
- * indentation is content the model is supposed to receive. Stray C0/C1 bytes
49
- * (and DEL) are NOT this function's job -- they are removed by the caller that
50
- * wants them gone, so one rule has one owner.
51
- */
52
- export declare function stripControlSequences(text: string): string;
53
- /**
54
- * True when `text` carries a sequence a KEYBOARD cannot physically produce.
55
- *
56
- * Used at the keystroke branch of the stdin filter: a single-line paste that
57
- * carries ESC fails `classifyChunk`'s two rules (no line break, and
58
- * `HAS_CONTROL_EXCEPT_TAB`) and would otherwise reach Ink as raw bytes --
59
- * either typing `[38;2;18;52;86m` with a live ESC into the draft, or throwing
60
- * an uncaught `TypeError` inside Ink's key parser.
61
- *
62
- * THREE THINGS MUST NOT MATCH, and the shapes below are why:
63
- * - SGR mouse reports (`ESC [ < 0 ; 1 ; 2 m`) are stripped by `splitMouseEvents`
64
- * BEFORE this test, and `<` is not a parameter byte, so the SGR rule cannot
65
- * see them anyway.
66
- * - Arrow / function / Home / End keys (`ESC [ A`, `ESC [ 1 ; 5 D`, `ESC [ 3 ~`,
67
- * `ESC [ Z`) never end in `m`.
68
- * - `Alt`+letter (`ESC` followed by one character) has no introducer body, so
69
- * the string-type rule does not fire.
70
- */
71
- export declare function hasPasteOnlySequence(text: string): boolean;
@@ -1,222 +0,0 @@
1
- /**
2
- * Control-SEQUENCE removal for text that crosses a boundary where a terminal
3
- * escape must never become content (paste-control-sequence-residue, fix A'-1).
4
- *
5
- * WHY A DELETE-THE-WHOLE-SEQUENCE RULE EXISTS. Deleting only the introducer
6
- * byte turns an escape into visible text: `ESC [ 3 8 ; 2 m` loses its ESC and
7
- * leaves `[38;2m`, which is a run of digits and semicolons somebody then reads
8
- * on screen and sends to the model. The bytes were never content; the sequence
9
- * has to go as a unit.
10
- *
11
- * WHY IT IS NOT `tools/terminal-output.ts`'s REGEXES MOVED HERE. Those four
12
- * regexes answer "what does this look like" for a terminal row that is still
13
- * being written, and they are fed text whose unfinished tail has ALREADY been
14
- * cut off and parked in a carry by the caller (`sanitizeChunk`,
15
- * `toDisplayRow`). Pasted text is one-shot: there is no next chunk, so a
16
- * truncated sequence needs a rule of its own. Measured against the stream
17
- * version of the same input, `ESC [ 3 8 ; 2 ; 1 8 ; 5 2 ; 8 6` followed by
18
- * prose loses the first letter of the prose (`n`), and an unterminated OSC
19
- * leaves its whole body behind.
20
- *
21
- * THE FOUR DECISIONS THIS MODULE ENCODES:
22
- *
23
- * 1. A sequence introduced by a real introducer byte (`0x1B`, `0x9B`, `0x9D`,
24
- * ...) is removed as a unit; bare text that merely LOOKS like the inside of
25
- * one (`[38;2;18;52;86m` typed or pasted without an ESC) is left exactly as
26
- * it is, character for character.
27
- * 2. A string-type sequence (OSC / DCS / SOS / PM / APC) runs to BEL or ST, and
28
- * an unterminated one is removed UP TO THE END OF ITS LINE. It never crosses
29
- * `\n` and never guesses at a terminator: a truncated sequence is the most
30
- * common shape in a clipboard, and the only safe reading of it is "the rest
31
- * of this line was never text".
32
- * 3. A truncated CSI loses its introducer and its parameter bytes and NOTHING
33
- * ELSE. `ESC [ 3 1 m` split mid-parameter is parameters, not prose, but the
34
- * byte after them is the user's own character and must survive.
35
- * 4. A C1 CSI (`0x9B`) with no parameter byte at all is treated as the stray
36
- * control byte it is most likely to be rather than as a sequence, because a
37
- * lone `0x9B` followed by one letter is otherwise indistinguishable from a
38
- * non-UTF-8 file's stray byte followed by content -- and consuming that
39
- * letter would be the very data loss this module exists to prevent.
40
- *
41
- * Pure, ASCII-only, React-free, Ink-free, and TOTAL: it never throws and it
42
- * never reorders or mangles the bytes it keeps. No new dependency.
43
- */
44
- /** ESC -- the introducer every terminal shares. */
45
- const ESC = 0x1b;
46
- /** LF. No rule in this module may consume it (decision 2). */
47
- const LF = 0x0a;
48
- /** BEL terminates an OSC. */
49
- const BEL = 0x07;
50
- /** `[` after ESC is CSI, and `\` after ESC is the two-byte ST. */
51
- const BRACKET = 0x5b;
52
- const BACKSLASH = 0x5c;
53
- /** The ASCII second byte of each string-type sequence (`ESC ]`, `ESC P`, ...). */
54
- const ESC_DCS = 0x50;
55
- const ESC_SOS = 0x58;
56
- const ESC_OSC = 0x5d;
57
- const ESC_PM = 0x5e;
58
- const ESC_APC = 0x5f;
59
- /** C1 introducers, as written by a source that is not UTF-8 clean. */
60
- const C1_CSI = 0x9b;
61
- const C1_ST = 0x9c;
62
- const C1_OSC = 0x9d;
63
- const C1_DCS = 0x90;
64
- const C1_SOS = 0x98;
65
- const C1_PM = 0x9e;
66
- const C1_APC = 0x9f;
67
- /** Every byte that can START a sequence this module removes. */
68
- const ANY_INTRODUCER = /[\u001b\u0090\u0098\u009b\u009d\u009e\u009f]/;
69
- /**
70
- * `CSI ... m` (SGR), in both encodings: `ESC [ digits ; m` and the single-byte
71
- * C1 form `0x9B digits ; m`. NO KEY PRESS PRODUCES ONE, which is what makes it
72
- * usable as the discriminator for an unframed paste in `stdin-filter.ts`.
73
- */
74
- const SGR_SEQUENCE = /\u001b\[[0-9;]*m|\u009b[0-9;]*m/;
75
- /**
76
- * A string-type introducer followed by at least one body byte. An `Alt`+key
77
- * press is exactly two bytes, so "introducer plus a body" is already outside
78
- * what a keyboard can emit.
79
- */
80
- const STRING_SEQUENCE = /(?:\u001b[\u0050\u0058\u005d\u005e\u005f]|[\u0090\u0098\u009d\u009e\u009f])[\s\S]/;
81
- /** CSI final byte: `@` through `~`. */
82
- function isFinalByte(code) {
83
- return code >= 0x40 && code <= 0x7e;
84
- }
85
- /** CSI parameter byte: `0` through `?`. */
86
- function isParamByte(code) {
87
- return code >= 0x30 && code <= 0x3f;
88
- }
89
- /**
90
- * CSI intermediate byte: `!` through `/`.
91
- *
92
- * SPACE (`0x20`) IS DELIBERATELY EXCLUDED (decision 3). The standard allows it,
93
- * but a pasted sequence cut mid-parameter is followed by ` ` and then prose,
94
- * and the first letter of that prose is a legal final byte -- so honouring the
95
- * space would silently eat it. `CSI Ps SP q` (cursor style) is the only shape
96
- * that gets worse, and no child process writes that to its stdout.
97
- */
98
- function isIntermediateByte(code) {
99
- return code >= 0x21 && code <= 0x2f;
100
- }
101
- /** True for the C1 introducers that open a string, not a CSI. */
102
- function isC1StringIntroducer(code) {
103
- return code === C1_OSC || code === C1_DCS || code === C1_SOS || code === C1_PM || code === C1_APC;
104
- }
105
- /**
106
- * End of the string-type sequence whose body starts at `from`.
107
- *
108
- * Stops AT the line break rather than past it, and reports "consumed to here"
109
- * for a body that never terminates (decision 2).
110
- */
111
- function stringEnd(text, from) {
112
- let i = from;
113
- while (i < text.length) {
114
- const code = text.charCodeAt(i);
115
- if (code === BEL || code === C1_ST)
116
- return i + 1;
117
- if (code === LF)
118
- return i;
119
- if (code === ESC && text.charCodeAt(i + 1) === BACKSLASH)
120
- return i + 2;
121
- i += 1;
122
- }
123
- return i;
124
- }
125
- /**
126
- * End of the CSI whose parameter run starts at `from`.
127
- *
128
- * `requireParams` implements decision 4: with no parameter byte at all, a C1
129
- * CSI is only the introducer byte, and its "final byte" is content.
130
- */
131
- function csiEnd(text, from, requireParams) {
132
- let i = from;
133
- let sawParams = false;
134
- while (i < text.length && isParamByte(text.charCodeAt(i))) {
135
- sawParams = true;
136
- i += 1;
137
- }
138
- if (requireParams && !sawParams)
139
- return from;
140
- while (i < text.length && isIntermediateByte(text.charCodeAt(i)))
141
- i += 1;
142
- if (i < text.length && isFinalByte(text.charCodeAt(i)))
143
- return i + 1;
144
- return i;
145
- }
146
- /** End of the sequence starting with ESC at `index` (decision 1 / 3). */
147
- function escapeEnd(text, index) {
148
- if (index + 1 >= text.length)
149
- return index + 1;
150
- const next = text.charCodeAt(index + 1);
151
- if (next === BRACKET)
152
- return csiEnd(text, index + 2, false);
153
- if (next === ESC_OSC || next === ESC_DCS || next === ESC_SOS || next === ESC_PM
154
- || next === ESC_APC) {
155
- return stringEnd(text, index + 2);
156
- }
157
- if (next === LF)
158
- return index + 1;
159
- return index + 2;
160
- }
161
- /**
162
- * End of the sequence starting at `index`, or `-1` when no sequence starts
163
- * there.
164
- */
165
- function sequenceEnd(text, index) {
166
- const code = text.charCodeAt(index);
167
- if (code === ESC)
168
- return escapeEnd(text, index);
169
- if (code === C1_CSI)
170
- return csiEnd(text, index + 1, true);
171
- if (isC1StringIntroducer(code)) {
172
- return index + 1 >= text.length ? index + 1 : stringEnd(text, index + 1);
173
- }
174
- return -1;
175
- }
176
- /**
177
- * Remove every escape/control sequence, keeping all other bytes in order.
178
- *
179
- * KEEPS `\t`, `\n` AND `\r`: they are line structure, and `\t` inside pasted
180
- * indentation is content the model is supposed to receive. Stray C0/C1 bytes
181
- * (and DEL) are NOT this function's job -- they are removed by the caller that
182
- * wants them gone, so one rule has one owner.
183
- */
184
- export function stripControlSequences(text) {
185
- if (!ANY_INTRODUCER.test(text))
186
- return text;
187
- let out = '';
188
- let kept = 0;
189
- let i = 0;
190
- while (i < text.length) {
191
- const end = sequenceEnd(text, i);
192
- if (end === -1) {
193
- i += 1;
194
- continue;
195
- }
196
- out += text.slice(kept, i);
197
- i = end;
198
- kept = end;
199
- }
200
- return kept === 0 ? text : out + text.slice(kept);
201
- }
202
- /**
203
- * True when `text` carries a sequence a KEYBOARD cannot physically produce.
204
- *
205
- * Used at the keystroke branch of the stdin filter: a single-line paste that
206
- * carries ESC fails `classifyChunk`'s two rules (no line break, and
207
- * `HAS_CONTROL_EXCEPT_TAB`) and would otherwise reach Ink as raw bytes --
208
- * either typing `[38;2;18;52;86m` with a live ESC into the draft, or throwing
209
- * an uncaught `TypeError` inside Ink's key parser.
210
- *
211
- * THREE THINGS MUST NOT MATCH, and the shapes below are why:
212
- * - SGR mouse reports (`ESC [ < 0 ; 1 ; 2 m`) are stripped by `splitMouseEvents`
213
- * BEFORE this test, and `<` is not a parameter byte, so the SGR rule cannot
214
- * see them anyway.
215
- * - Arrow / function / Home / End keys (`ESC [ A`, `ESC [ 1 ; 5 D`, `ESC [ 3 ~`,
216
- * `ESC [ Z`) never end in `m`.
217
- * - `Alt`+letter (`ESC` followed by one character) has no introducer body, so
218
- * the string-type rule does not fire.
219
- */
220
- export function hasPasteOnlySequence(text) {
221
- return SGR_SEQUENCE.test(text) || STRING_SEQUENCE.test(text);
222
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * CSI-u key translation (posix keyboard-enhancement section of the Shift+Enter
3
- * newline fix).
4
- *
5
- * WHY THIS EXISTS. On macOS/Linux the only lever that makes Shift+Enter
6
- * distinguishable from Enter is asking the terminal to report modified keys in
7
- * the CSI-u encoding: kitty's disambiguate mode (`CSI > 1 u`, pushed and popped
8
- * with `CSI < u`) and xterm's `modifyOtherKeys=2` (`CSI > 4 ; 2 m`, reset with
9
- * `CSI > 4 m`). iTerm2, kitty, ghostty, WezTerm, foot and Alacritty implement
10
- * at least one of the two; a terminal implementing neither ignores both bytes,
11
- * which the conhost probe confirmed is a harmless no-op.
12
- *
13
- * WHAT CHANGES IN THE STREAM -- AND WHAT NEVER DOES. Both modes re-encode only
14
- * keys whose legacy encoding is ambiguous: Ctrl/Ctrl+Shift/Ctrl+Alt+letters and
15
- * digits, the Enter family, the Escape key (kitty), and Backspace with
16
- * modifiers. `modifyOtherKeys` is named for the OTHER keys: arrows, Home/End,
17
- * PgUp/PgDn and F-keys keep their standard `\x1b[1;mA` / `\x1b[m~` encodings,
18
- * and Shift+printable still types text. So the translator below only ever sees
19
- * codepoints below 128 plus a few named control codes; anything else (a kitty
20
- * functional-key code from a mode this app never pushes) passes through
21
- * untouched, which is exactly the pre-enhancement behaviour.
22
- *
23
- * THE CONTRACT mirrors `win32-input-mode.ts`: split, translate back to the
24
- * legacy bytes, with the modified-Enter family becoming `ENTER_NEWLINE_FRAME`.
25
- * Pure: no node/React imports.
26
- */
27
- /** Enable / disable the two CSI-u report modes (posix side). */
28
- export declare const CSI_U_ENABLE = "\u001B[>1u\u001B[>4;2m";
29
- export declare const CSI_U_DISABLE = "\u001B[<u\u001B[>4m";
30
- export interface CsiUKey {
31
- /** The full original sequence, for pass-through. */
32
- readonly seq: string;
33
- /** First parameter's primary number (the key's codepoint). */
34
- readonly code: number;
35
- /** Optional `:alternate` sub-parameters of the key field (kitty/mok). */
36
- readonly alternates: readonly number[];
37
- /** Modifier parameter minus one (bit 1 shift, 2 alt, 4 ctrl), or 0. */
38
- readonly mods: number;
39
- }
40
- export type CsiUSegment = {
41
- kind: 'text';
42
- text: string;
43
- } | {
44
- kind: 'key';
45
- key: CsiUKey;
46
- };
47
- /**
48
- * Split a chunk into text spans and CSI-u sequences.
49
- *
50
- * Grammar accepted: `ESC [ <params> u` where params are digits, `;` and `:`
51
- * only, and at least one field exists. `\x1b[13;2u` is INCLUDED: with
52
- * enhancement on, this module owns every `u`-terminated sequence and applies
53
- * the same Enter semantics `enter-sequences.ts` defines.
54
- */
55
- export declare function splitCsiUKeys(text: string): CsiUSegment[];
56
- /**
57
- * Translate one CSI-u sequence to the legacy bytes the same keypress would
58
- * have produced without the report modes (Enter family excepted: a modified
59
- * Enter becomes the newline frame). Unknown keys pass through unchanged.
60
- */
61
- export declare function translateCsiUKey(key: CsiUKey): string;
62
- /**
63
- * Length of the trailing run of `text` that could still complete into a
64
- * CSI-u sequence, or 0. Longest match, mirroring the other families.
65
- */
66
- export declare function trailingCsiUPrefixLength(text: string): number;
@@ -1,181 +0,0 @@
1
- /**
2
- * CSI-u key translation (posix keyboard-enhancement section of the Shift+Enter
3
- * newline fix).
4
- *
5
- * WHY THIS EXISTS. On macOS/Linux the only lever that makes Shift+Enter
6
- * distinguishable from Enter is asking the terminal to report modified keys in
7
- * the CSI-u encoding: kitty's disambiguate mode (`CSI > 1 u`, pushed and popped
8
- * with `CSI < u`) and xterm's `modifyOtherKeys=2` (`CSI > 4 ; 2 m`, reset with
9
- * `CSI > 4 m`). iTerm2, kitty, ghostty, WezTerm, foot and Alacritty implement
10
- * at least one of the two; a terminal implementing neither ignores both bytes,
11
- * which the conhost probe confirmed is a harmless no-op.
12
- *
13
- * WHAT CHANGES IN THE STREAM -- AND WHAT NEVER DOES. Both modes re-encode only
14
- * keys whose legacy encoding is ambiguous: Ctrl/Ctrl+Shift/Ctrl+Alt+letters and
15
- * digits, the Enter family, the Escape key (kitty), and Backspace with
16
- * modifiers. `modifyOtherKeys` is named for the OTHER keys: arrows, Home/End,
17
- * PgUp/PgDn and F-keys keep their standard `\x1b[1;mA` / `\x1b[m~` encodings,
18
- * and Shift+printable still types text. So the translator below only ever sees
19
- * codepoints below 128 plus a few named control codes; anything else (a kitty
20
- * functional-key code from a mode this app never pushes) passes through
21
- * untouched, which is exactly the pre-enhancement behaviour.
22
- *
23
- * THE CONTRACT mirrors `win32-input-mode.ts`: split, translate back to the
24
- * legacy bytes, with the modified-Enter family becoming `ENTER_NEWLINE_FRAME`.
25
- * Pure: no node/React imports.
26
- */
27
- import { ENTER_NEWLINE_FRAME, INDEX_KEY_FRAME } from './limits.js';
28
- /** Enable / disable the two CSI-u report modes (posix side). */
29
- export const CSI_U_ENABLE = '\x1b[>1u\x1b[>4;2m';
30
- export const CSI_U_DISABLE = '\x1b[<u\x1b[>4m';
31
- const isParamChar = (c) => (c >= '0' && c <= '9') || c === ';' || c === ':';
32
- /**
33
- * Split a chunk into text spans and CSI-u sequences.
34
- *
35
- * Grammar accepted: `ESC [ <params> u` where params are digits, `;` and `:`
36
- * only, and at least one field exists. `\x1b[13;2u` is INCLUDED: with
37
- * enhancement on, this module owns every `u`-terminated sequence and applies
38
- * the same Enter semantics `enter-sequences.ts` defines.
39
- */
40
- export function splitCsiUKeys(text) {
41
- const segments = [];
42
- let start = 0;
43
- let index = 0;
44
- while (index < text.length) {
45
- if (text[index] !== '\x1b' || text[index + 1] !== '[') {
46
- index += 1;
47
- continue;
48
- }
49
- let end = index + 2;
50
- while (end < text.length && isParamChar(text[end]))
51
- end += 1;
52
- if (end >= text.length || text[end] !== 'u') {
53
- index += 1;
54
- continue;
55
- }
56
- const key = parseKey(text.slice(index + 2, end), text.slice(index, end + 1));
57
- if (!key) {
58
- index += 1;
59
- continue;
60
- }
61
- if (index > start)
62
- segments.push({ kind: 'text', text: text.slice(start, index) });
63
- segments.push({ kind: 'key', key });
64
- index = end + 1;
65
- start = index;
66
- }
67
- if (start < text.length)
68
- segments.push({ kind: 'text', text: text.slice(start) });
69
- return segments;
70
- }
71
- /** Parse the parameter body of a CSI-u sequence, or null when malformed. */
72
- function parseKey(body, seq) {
73
- if (body.length === 0)
74
- return null;
75
- const fields = body.split(';');
76
- const keyParts = fields[0]?.split(':').map(Number) ?? [];
77
- if (keyParts.some((n) => !Number.isInteger(n) || n < 0 || n > 0x10ffff))
78
- return null;
79
- const code = keyParts[0];
80
- if (code === undefined)
81
- return null;
82
- let mods = 0;
83
- if (fields.length > 1) {
84
- const modParts = fields[1]?.split(':').map(Number) ?? [];
85
- if (modParts.some((n) => !Number.isInteger(n) || n < 0 || n > 64))
86
- return null;
87
- const m = modParts[0] ?? 0;
88
- mods = Math.max(0, m - 1);
89
- }
90
- return { seq, code, alternates: keyParts.slice(1), mods };
91
- }
92
- /** Control code for Ctrl+letter (a-z -> 1-26), or the char itself. */
93
- function ctrlByte(char) {
94
- if (char >= 97 && char <= 122)
95
- return char - 96;
96
- if (char >= 65 && char <= 90)
97
- return char - 64;
98
- return char;
99
- }
100
- /**
101
- * Translate one CSI-u sequence to the legacy bytes the same keypress would
102
- * have produced without the report modes (Enter family excepted: a modified
103
- * Enter becomes the newline frame). Unknown keys pass through unchanged.
104
- */
105
- export function translateCsiUKey(key) {
106
- const m = key.mods;
107
- const ctrl = (m & 4) !== 0;
108
- const alt = (m & 2) !== 0;
109
- const shift = (m & 1) !== 0;
110
- if (key.code === 13)
111
- return m === 0 ? '\r' : ENTER_NEWLINE_FRAME;
112
- if (key.code === 27)
113
- return alt ? '\x1b\x1b' : '\x1b';
114
- if (key.code === 9) {
115
- // A modified Tab codepoint (modifyOtherKeys shape) mirrors the VK_TAB
116
- // decision in win32-input-mode.ts: ctrl (without shift/alt) is the
117
- // project-indexer trigger frame, shift stays Shift+Tab.
118
- if (ctrl && !shift && !alt)
119
- return INDEX_KEY_FRAME;
120
- return shift ? '\x1b[Z' : '\t';
121
- }
122
- // Ctrl+I under kitty disambiguate arrives as codepoint 105 with the ctrl
123
- // modifier; the generic printable branch below would fold it back onto the
124
- // legacy Tab byte, which is exactly the ambiguity the frame exists to break.
125
- if (key.code === 105 && ctrl && !shift && !alt)
126
- return INDEX_KEY_FRAME;
127
- if (key.code === 127) {
128
- // POST-normalisation bytes, same rationale as VK_BACK in win32-input-mode.
129
- if (alt)
130
- return '\x1b\x08';
131
- return '\x08';
132
- }
133
- if (key.code === 32) {
134
- // Ctrl+Space is 0x00 in legacy xterm; plain/alt space is the character.
135
- if (ctrl)
136
- return alt ? '\x1b\x00' : '\x00';
137
- return alt ? '\x1b ' : ' ';
138
- }
139
- if (key.code >= 32 && key.code <= 126) {
140
- const char = String.fromCharCode(key.code);
141
- if (ctrl) {
142
- const code = ctrlByte(key.code);
143
- const text = code === key.code ? char : String.fromCharCode(code);
144
- return alt ? `\x1b${text}` : text;
145
- }
146
- if (alt)
147
- return `\x1b${char}`;
148
- if (shift && key.alternates.length > 0) {
149
- const shifted = key.alternates[0];
150
- if (shifted !== undefined && shifted > 0)
151
- return String.fromCodePoint(shifted);
152
- }
153
- return char;
154
- }
155
- // Functional-key codes only appear under modes this app never pushes
156
- // (kitty flags 2+); pass them through so behaviour matches the un-enhanced
157
- // stream instead of inventing a translation.
158
- return key.seq;
159
- }
160
- /** True when `s` is a PROPER prefix of some CSI-u sequence. */
161
- function isCsiUPrefix(s) {
162
- if (s.length < 3 || s[0] !== '\x1b' || s[1] !== '[')
163
- return false;
164
- for (let i = 2; i < s.length; i += 1) {
165
- if (!isParamChar(s[i]))
166
- return false;
167
- }
168
- return true;
169
- }
170
- /**
171
- * Length of the trailing run of `text` that could still complete into a
172
- * CSI-u sequence, or 0. Longest match, mirroring the other families.
173
- */
174
- export function trailingCsiUPrefixLength(text) {
175
- const max = Math.min(text.length, 32);
176
- for (let k = max; k >= 1; k -= 1) {
177
- if (isCsiUPrefix(text.slice(text.length - k)))
178
- return k;
179
- }
180
- return 0;
181
- }
@@ -1,61 +0,0 @@
1
- /**
2
- * Cursor Position Report parsing (tui-bottom-anchored-live-region §4.5).
3
- *
4
- * The bottom anchor needs one number the writer cannot compute: how many rows are
5
- * left below the cursor. `ESC[6n` is the only way to ask, and the terminal answers
6
- * with `ESC[<row>;<col>R` (DECXCPR adds a `?`: `ESC[?<row>;<col>R`) on STDIN —
7
- * the same stream the user types on. Two things follow, and both live here:
8
- *
9
- * 1. THE ANSWER MUST BE STRIPPED BEFORE INK SEES IT. A report that reaches Ink
10
- * travels the keystroke path: `[` is 0x5B, so `PromptInput`'s control-sequence
11
- * guard passes it through and the user's draft gets `[12;1R` typed into it (the
12
- * same class of accident the mouse filter exists to prevent).
13
- * 2. THE ANSWER CAN ARRIVE IN TWO CHUNKS. ConPTY, tmux and a loaded SSH session
14
- * all split reads at arbitrary points, and a half report (`ESC[12`) is worse
15
- * than a whole one: `parse-keypress` has no branch for it.
16
- *
17
- * Pure functions only, mirroring `mouse-events.ts`: the filter owns the buffering
18
- * and the timers, this module owns the shapes.
19
- */
20
- /** The query for a Cursor Position Report (DSR 6). ASCII by construction. */
21
- export declare const CURSOR_REPORT_QUERY = "\u001B[6n";
22
- /** One parsed report. `row`/`col` are 1-based, exactly as the terminal sent them. */
23
- export interface CursorReport {
24
- row: number;
25
- col: number;
26
- }
27
- export interface CursorReportSplit {
28
- /** Text that survives stripping — everything that is not a report. */
29
- text: string;
30
- /** Reports found in this chunk, in order. */
31
- reports: CursorReport[];
32
- /** Trailing bytes that could still become a report; hand them to the next chunk. */
33
- pending: string;
34
- }
35
- /** True when `s` is a non-empty proper prefix of a possible report. */
36
- export declare function isCursorReportPrefix(s: string): boolean;
37
- /**
38
- * Split the reports out of one chunk.
39
- *
40
- * `pending` carries the tail that might still complete into a report. It is only
41
- * ever the LAST fragment: the scan is left to right, so anything before a complete
42
- * report is settled text.
43
- */
44
- export declare function splitCursorReports(text: string): CursorReportSplit;
45
- /**
46
- * Length of the trailing run of `text` that is a proper prefix of a report, or 0.
47
- *
48
- * LONGEST MATCH WINS, unlike the mouse family's shortest-wins rule. The families are
49
- * combined with `max()`, so only the longest answer ever survives, and a longer hold
50
- * is never wrong here: `ESC[1` can still become `ESC[12;1R`, while the shorter
51
- * answer `ESC` could not describe it. The bound is the longest report the terminals
52
- * we target emit (DECXCPR with a `?` and three-digit coordinates).
53
- */
54
- export declare function trailingCprPrefixLength(text: string): number;
55
- /** The query bytes, as a function so call sites read as an action rather than a literal. */
56
- export declare function formatCursorReportQuery(): string;
57
- /**
58
- * Rows left below a reported cursor row on a terminal of `rows` rows.
59
- * `0` means the cursor is already on the last row; `null` when the height is unknown.
60
- */
61
- export declare function spaceBelowFromReport(report: CursorReport, rows: number | undefined): number | null;