@sagmans/dsh-tui 0.12.1 → 0.14.0

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 (489) hide show
  1. package/.agents/skills/dsh-tui-dogfood/SKILL.md +18 -2
  2. package/.agents/skills/dsh-tui-dogfood/references/home-state.md +4 -4
  3. package/.agents/skills/dsh-tui-dogfood/scripts/clone-links.mjs +19 -11
  4. package/.agents/skills/dsh-tui-dogfood/scripts/run-plugin-from-worktree.sh +31 -9
  5. package/.agents/skills/dsh-tui-update-models/SKILL.md +1 -1
  6. package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +6 -6
  7. package/.agents/skills/dsh-tui-update-models/scripts/dump-model-catalog.mjs +21 -13
  8. package/README.md +61 -23
  9. package/cordis.patch.yml +2 -0
  10. package/lib/agent/fork.d.ts +3 -1
  11. package/lib/agent/fork.d.ts.map +1 -1
  12. package/lib/agent/fork.js +2 -0
  13. package/lib/agent/fork.js.map +1 -1
  14. package/lib/agent/history.d.ts +14 -22
  15. package/lib/agent/history.d.ts.map +1 -1
  16. package/lib/agent/history.js +20 -14
  17. package/lib/agent/history.js.map +1 -1
  18. package/lib/agent/host.d.ts.map +1 -1
  19. package/lib/agent/host.js +6 -0
  20. package/lib/agent/host.js.map +1 -1
  21. package/lib/agent/model.d.ts +10 -8
  22. package/lib/agent/model.d.ts.map +1 -1
  23. package/lib/agent/model.js +9 -7
  24. package/lib/agent/model.js.map +1 -1
  25. package/lib/agent/present.d.ts +1 -1
  26. package/lib/agent/present.d.ts.map +1 -1
  27. package/lib/agent/present.js +1 -1
  28. package/lib/agent/present.js.map +1 -1
  29. package/lib/agent/presets.d.ts +4 -1
  30. package/lib/agent/presets.d.ts.map +1 -1
  31. package/lib/agent/presets.js +9 -2
  32. package/lib/agent/presets.js.map +1 -1
  33. package/lib/agent/projections.d.ts +8 -2
  34. package/lib/agent/projections.d.ts.map +1 -1
  35. package/lib/agent/projections.js +8 -2
  36. package/lib/agent/projections.js.map +1 -1
  37. package/lib/agent/prompt-history.d.ts +8 -48
  38. package/lib/agent/prompt-history.d.ts.map +1 -1
  39. package/lib/agent/prompt-history.js +34 -15
  40. package/lib/agent/prompt-history.js.map +1 -1
  41. package/lib/agent/status.d.ts +9 -24
  42. package/lib/agent/status.d.ts.map +1 -1
  43. package/lib/agent/status.js +7 -2
  44. package/lib/agent/status.js.map +1 -1
  45. package/lib/agent/undo.d.ts +2 -4
  46. package/lib/agent/undo.d.ts.map +1 -1
  47. package/lib/agent/undo.js +10 -5
  48. package/lib/agent/undo.js.map +1 -1
  49. package/lib/cards/composition.d.ts +7 -7
  50. package/lib/cards/composition.d.ts.map +1 -1
  51. package/lib/cards/composition.js +13 -12
  52. package/lib/cards/composition.js.map +1 -1
  53. package/lib/cards/presenter.d.ts +11 -14
  54. package/lib/cards/presenter.d.ts.map +1 -1
  55. package/lib/cards/presenter.js +40 -19
  56. package/lib/cards/presenter.js.map +1 -1
  57. package/lib/cards/preview.d.ts.map +1 -1
  58. package/lib/cards/preview.js +5 -1
  59. package/lib/cards/preview.js.map +1 -1
  60. package/lib/cards.d.ts +17 -23
  61. package/lib/cards.d.ts.map +1 -1
  62. package/lib/cards.js +27 -12
  63. package/lib/cards.js.map +1 -1
  64. package/lib/compat/probe.d.ts +2 -5
  65. package/lib/compat/probe.d.ts.map +1 -1
  66. package/lib/compat/probe.js +2 -2
  67. package/lib/compat/probe.js.map +1 -1
  68. package/lib/compat/section.d.ts +5 -4
  69. package/lib/compat/section.d.ts.map +1 -1
  70. package/lib/compat/section.js +4 -0
  71. package/lib/compat/section.js.map +1 -1
  72. package/lib/config.d.ts +0 -3
  73. package/lib/config.d.ts.map +1 -1
  74. package/lib/config.js +7 -1
  75. package/lib/config.js.map +1 -1
  76. package/lib/export.d.ts +5 -7
  77. package/lib/export.d.ts.map +1 -1
  78. package/lib/export.js +48 -10
  79. package/lib/export.js.map +1 -1
  80. package/lib/fold-cursor.d.ts +3 -3
  81. package/lib/fold-cursor.d.ts.map +1 -1
  82. package/lib/fold-cursor.js +5 -3
  83. package/lib/fold-cursor.js.map +1 -1
  84. package/lib/gates/question-card.d.ts +3 -38
  85. package/lib/gates/question-card.d.ts.map +1 -1
  86. package/lib/gates/question-card.js +13 -10
  87. package/lib/gates/question-card.js.map +1 -1
  88. package/lib/gates/questions.d.ts +14 -8
  89. package/lib/gates/questions.d.ts.map +1 -1
  90. package/lib/gates/questions.js +25 -18
  91. package/lib/gates/questions.js.map +1 -1
  92. package/lib/gates.d.ts +17 -25
  93. package/lib/gates.d.ts.map +1 -1
  94. package/lib/gates.js +2 -4
  95. package/lib/gates.js.map +1 -1
  96. package/lib/herdr/client.d.ts +10 -12
  97. package/lib/herdr/client.d.ts.map +1 -1
  98. package/lib/herdr/client.js +9 -8
  99. package/lib/herdr/client.js.map +1 -1
  100. package/lib/herdr/constants.d.ts +3 -2
  101. package/lib/herdr/constants.d.ts.map +1 -1
  102. package/lib/herdr/constants.js +3 -2
  103. package/lib/herdr/constants.js.map +1 -1
  104. package/lib/herdr/reporter.d.ts +4 -39
  105. package/lib/herdr/reporter.d.ts.map +1 -1
  106. package/lib/herdr/reporter.js +13 -19
  107. package/lib/herdr/reporter.js.map +1 -1
  108. package/lib/herdr/state.d.ts +4 -3
  109. package/lib/herdr/state.d.ts.map +1 -1
  110. package/lib/herdr/state.js +6 -5
  111. package/lib/herdr/state.js.map +1 -1
  112. package/lib/host/preset-files.d.ts +0 -17
  113. package/lib/host/preset-files.d.ts.map +1 -1
  114. package/lib/host/preset-files.js +7 -2
  115. package/lib/host/preset-files.js.map +1 -1
  116. package/lib/host/roster.d.ts +1 -1
  117. package/lib/host/roster.d.ts.map +1 -1
  118. package/lib/host/roster.js +3 -3
  119. package/lib/host/roster.js.map +1 -1
  120. package/lib/host/runner.d.ts +2 -5
  121. package/lib/host/runner.d.ts.map +1 -1
  122. package/lib/host/runner.js +2 -5
  123. package/lib/host/runner.js.map +1 -1
  124. package/lib/identity.d.ts +6 -3
  125. package/lib/identity.d.ts.map +1 -1
  126. package/lib/identity.js +18 -3
  127. package/lib/identity.js.map +1 -1
  128. package/lib/index.d.ts +2 -0
  129. package/lib/index.d.ts.map +1 -1
  130. package/lib/index.js +42 -14
  131. package/lib/index.js.map +1 -1
  132. package/lib/injection.d.ts.map +1 -1
  133. package/lib/injection.js +1 -0
  134. package/lib/injection.js.map +1 -1
  135. package/lib/input/action-catalog.d.ts.map +1 -1
  136. package/lib/input/action-catalog.js +4 -0
  137. package/lib/input/action-catalog.js.map +1 -1
  138. package/lib/input/actions.d.ts +4 -3
  139. package/lib/input/actions.d.ts.map +1 -1
  140. package/lib/input/actions.js +8 -3
  141. package/lib/input/actions.js.map +1 -1
  142. package/lib/input/completion.d.ts +3 -11
  143. package/lib/input/completion.d.ts.map +1 -1
  144. package/lib/input/completion.js +8 -6
  145. package/lib/input/completion.js.map +1 -1
  146. package/lib/input/file-index.d.ts +1 -12
  147. package/lib/input/file-index.d.ts.map +1 -1
  148. package/lib/input/file-index.js +21 -17
  149. package/lib/input/file-index.js.map +1 -1
  150. package/lib/input/file-search.d.ts +6 -3
  151. package/lib/input/file-search.d.ts.map +1 -1
  152. package/lib/input/file-search.js +29 -10
  153. package/lib/input/file-search.js.map +1 -1
  154. package/lib/input/fuzzy.d.ts +6 -12
  155. package/lib/input/fuzzy.d.ts.map +1 -1
  156. package/lib/input/fuzzy.js +18 -27
  157. package/lib/input/fuzzy.js.map +1 -1
  158. package/lib/input/ghost.d.ts +5 -5
  159. package/lib/input/ghost.d.ts.map +1 -1
  160. package/lib/input/ghost.js +4 -3
  161. package/lib/input/ghost.js.map +1 -1
  162. package/lib/input/key-press.d.ts +8 -7
  163. package/lib/input/key-press.d.ts.map +1 -1
  164. package/lib/input/key-press.js +8 -6
  165. package/lib/input/key-press.js.map +1 -1
  166. package/lib/input/keymap-conflicts.d.ts +6 -6
  167. package/lib/input/keymap-conflicts.d.ts.map +1 -1
  168. package/lib/input/keymap-conflicts.js +6 -6
  169. package/lib/input/keymap-conflicts.js.map +1 -1
  170. package/lib/input/keymap.d.ts +6 -18
  171. package/lib/input/keymap.d.ts.map +1 -1
  172. package/lib/input/keymap.js +7 -10
  173. package/lib/input/keymap.js.map +1 -1
  174. package/lib/input/match.js +4 -4
  175. package/lib/input/match.js.map +1 -1
  176. package/lib/input/submission.d.ts +7 -3
  177. package/lib/input/submission.d.ts.map +1 -1
  178. package/lib/input/submission.js +2 -2
  179. package/lib/input/submission.js.map +1 -1
  180. package/lib/input/workspace-files.d.ts +1 -2
  181. package/lib/input/workspace-files.d.ts.map +1 -1
  182. package/lib/input/workspace-files.js +20 -11
  183. package/lib/input/workspace-files.js.map +1 -1
  184. package/lib/input.d.ts +6 -0
  185. package/lib/input.d.ts.map +1 -1
  186. package/lib/input.js +34 -1
  187. package/lib/input.js.map +1 -1
  188. package/lib/install-skills.d.ts +5 -22
  189. package/lib/install-skills.d.ts.map +1 -1
  190. package/lib/install-skills.js +18 -18
  191. package/lib/install-skills.js.map +1 -1
  192. package/lib/jobs.d.ts +10 -5
  193. package/lib/jobs.d.ts.map +1 -1
  194. package/lib/jobs.js +39 -13
  195. package/lib/jobs.js.map +1 -1
  196. package/lib/keymaps.d.ts.map +1 -1
  197. package/lib/keymaps.js +2 -0
  198. package/lib/keymaps.js.map +1 -1
  199. package/lib/keys-command.d.ts +1 -1
  200. package/lib/keys-command.d.ts.map +1 -1
  201. package/lib/model-list.d.ts +0 -27
  202. package/lib/model-list.d.ts.map +1 -1
  203. package/lib/model-list.js +1 -1
  204. package/lib/model-list.js.map +1 -1
  205. package/lib/moshi.d.ts +13 -0
  206. package/lib/moshi.d.ts.map +1 -0
  207. package/lib/moshi.js +130 -0
  208. package/lib/moshi.js.map +1 -0
  209. package/lib/spacing.d.ts +0 -7
  210. package/lib/spacing.d.ts.map +1 -1
  211. package/lib/spacing.js +1 -1
  212. package/lib/spacing.js.map +1 -1
  213. package/lib/startup.d.ts +1 -1
  214. package/lib/startup.d.ts.map +1 -1
  215. package/lib/startup.js +9 -1
  216. package/lib/startup.js.map +1 -1
  217. package/lib/stash/lock.d.ts +1 -37
  218. package/lib/stash/lock.d.ts.map +1 -1
  219. package/lib/stash/lock.js +41 -35
  220. package/lib/stash/lock.js.map +1 -1
  221. package/lib/stash/paths.d.ts +8 -7
  222. package/lib/stash/paths.d.ts.map +1 -1
  223. package/lib/stash/paths.js +21 -17
  224. package/lib/stash/paths.js.map +1 -1
  225. package/lib/stash/private-fs.d.ts +14 -5
  226. package/lib/stash/private-fs.d.ts.map +1 -1
  227. package/lib/stash/private-fs.js +30 -8
  228. package/lib/stash/private-fs.js.map +1 -1
  229. package/lib/stash/schema.d.ts +3 -6
  230. package/lib/stash/schema.d.ts.map +1 -1
  231. package/lib/stash/schema.js +11 -9
  232. package/lib/stash/schema.js.map +1 -1
  233. package/lib/stash/store.d.ts +9 -40
  234. package/lib/stash/store.d.ts.map +1 -1
  235. package/lib/stash/store.js +26 -24
  236. package/lib/stash/store.js.map +1 -1
  237. package/lib/stash.d.ts +7 -11
  238. package/lib/stash.d.ts.map +1 -1
  239. package/lib/stash.js +18 -11
  240. package/lib/stash.js.map +1 -1
  241. package/lib/subagents.d.ts +9 -9
  242. package/lib/subagents.d.ts.map +1 -1
  243. package/lib/subagents.js +19 -18
  244. package/lib/subagents.js.map +1 -1
  245. package/lib/surface/appearance-preferences.d.ts.map +1 -1
  246. package/lib/surface/appearance-preferences.js +7 -0
  247. package/lib/surface/appearance-preferences.js.map +1 -1
  248. package/lib/surface/appearance.d.ts.map +1 -1
  249. package/lib/surface/appearance.js +7 -2
  250. package/lib/surface/appearance.js.map +1 -1
  251. package/lib/surface/background-work.d.ts +2 -0
  252. package/lib/surface/background-work.d.ts.map +1 -1
  253. package/lib/surface/background-work.js +45 -36
  254. package/lib/surface/background-work.js.map +1 -1
  255. package/lib/surface/commands.d.ts.map +1 -1
  256. package/lib/surface/commands.js +17 -9
  257. package/lib/surface/commands.js.map +1 -1
  258. package/lib/surface/modal-input.d.ts +4 -0
  259. package/lib/surface/modal-input.d.ts.map +1 -1
  260. package/lib/surface/modal-input.js +81 -46
  261. package/lib/surface/modal-input.js.map +1 -1
  262. package/lib/surface/model-choice.d.ts.map +1 -1
  263. package/lib/surface/model-choice.js +10 -8
  264. package/lib/surface/model-choice.js.map +1 -1
  265. package/lib/surface/plugin-actions.d.ts.map +1 -1
  266. package/lib/surface/plugin-actions.js +4 -0
  267. package/lib/surface/plugin-actions.js.map +1 -1
  268. package/lib/surface/preset-choice.d.ts.map +1 -1
  269. package/lib/surface/preset-choice.js +15 -17
  270. package/lib/surface/preset-choice.js.map +1 -1
  271. package/lib/surface/prompt-input.js +1 -1
  272. package/lib/surface/prompt-input.js.map +1 -1
  273. package/lib/surface/prompt-memory.d.ts +7 -6
  274. package/lib/surface/prompt-memory.d.ts.map +1 -1
  275. package/lib/surface/prompt-memory.js +3 -3
  276. package/lib/surface/session-lifecycle.d.ts +7 -1
  277. package/lib/surface/session-lifecycle.d.ts.map +1 -1
  278. package/lib/surface/session-lifecycle.js +17 -12
  279. package/lib/surface/session-lifecycle.js.map +1 -1
  280. package/lib/surface/session-picker.js +1 -1
  281. package/lib/surface/session-picker.js.map +1 -1
  282. package/lib/surface/session-view.d.ts +1 -1
  283. package/lib/surface/session-view.d.ts.map +1 -1
  284. package/lib/surface/session-view.js +4 -5
  285. package/lib/surface/session-view.js.map +1 -1
  286. package/lib/surface/staged-turns.d.ts.map +1 -1
  287. package/lib/surface/staged-turns.js +8 -4
  288. package/lib/surface/staged-turns.js.map +1 -1
  289. package/lib/surface/terminal-lifecycle.d.ts +1 -1
  290. package/lib/surface/terminal-lifecycle.d.ts.map +1 -1
  291. package/lib/surface/terminal-lifecycle.js +8 -5
  292. package/lib/surface/terminal-lifecycle.js.map +1 -1
  293. package/lib/terminal/bell.d.ts +0 -2
  294. package/lib/terminal/bell.d.ts.map +1 -1
  295. package/lib/terminal/bell.js +2 -1
  296. package/lib/terminal/bell.js.map +1 -1
  297. package/lib/terminal/clipboard.d.ts +4 -4
  298. package/lib/terminal/clipboard.js +4 -4
  299. package/lib/terminal/external-editor.d.ts +4 -60
  300. package/lib/terminal/external-editor.d.ts.map +1 -1
  301. package/lib/terminal/external-editor.js +28 -40
  302. package/lib/terminal/external-editor.js.map +1 -1
  303. package/lib/terminal/host-writes.d.ts +7 -18
  304. package/lib/terminal/host-writes.d.ts.map +1 -1
  305. package/lib/terminal/host-writes.js +19 -18
  306. package/lib/terminal/host-writes.js.map +1 -1
  307. package/lib/terminal/input.d.ts +6 -0
  308. package/lib/terminal/input.d.ts.map +1 -0
  309. package/lib/terminal/input.js +15 -0
  310. package/lib/terminal/input.js.map +1 -0
  311. package/lib/terminal/restore.d.ts +2 -1
  312. package/lib/terminal/restore.d.ts.map +1 -1
  313. package/lib/terminal/signals.d.ts +2 -1
  314. package/lib/terminal/signals.d.ts.map +1 -1
  315. package/lib/terminal/signals.js +1 -1
  316. package/lib/terminal/signals.js.map +1 -1
  317. package/lib/terminal/title.d.ts +1 -11
  318. package/lib/terminal/title.d.ts.map +1 -1
  319. package/lib/terminal/title.js +5 -4
  320. package/lib/terminal/title.js.map +1 -1
  321. package/lib/terminal/warning-screen.d.ts +11 -2
  322. package/lib/terminal/warning-screen.d.ts.map +1 -1
  323. package/lib/terminal/warning-screen.js +166 -22
  324. package/lib/terminal/warning-screen.js.map +1 -1
  325. package/lib/terminal-text/scan.d.ts +4 -5
  326. package/lib/terminal-text/scan.d.ts.map +1 -1
  327. package/lib/terminal-text/scan.js +16 -9
  328. package/lib/terminal-text/scan.js.map +1 -1
  329. package/lib/terminal-text/sgr.d.ts +4 -3
  330. package/lib/terminal-text/sgr.d.ts.map +1 -1
  331. package/lib/terminal-text/sgr.js +9 -14
  332. package/lib/terminal-text/sgr.js.map +1 -1
  333. package/lib/terminal-text.d.ts +7 -12
  334. package/lib/terminal-text.d.ts.map +1 -1
  335. package/lib/terminal-text.js +32 -23
  336. package/lib/terminal-text.js.map +1 -1
  337. package/lib/text.d.ts +8 -14
  338. package/lib/text.d.ts.map +1 -1
  339. package/lib/text.js +14 -15
  340. package/lib/text.js.map +1 -1
  341. package/lib/theme-capability.d.ts +3 -15
  342. package/lib/theme-capability.d.ts.map +1 -1
  343. package/lib/theme-capability.js +18 -15
  344. package/lib/theme-capability.js.map +1 -1
  345. package/lib/theme-defaults.d.ts +3 -57
  346. package/lib/theme-defaults.d.ts.map +1 -1
  347. package/lib/theme-defaults.js +25 -14
  348. package/lib/theme-defaults.js.map +1 -1
  349. package/lib/theme-files.d.ts +16 -32
  350. package/lib/theme-files.d.ts.map +1 -1
  351. package/lib/theme-files.js +43 -27
  352. package/lib/theme-files.js.map +1 -1
  353. package/lib/theme-resolver.d.ts +3 -3
  354. package/lib/theme-resolver.d.ts.map +1 -1
  355. package/lib/theme-resolver.js +9 -6
  356. package/lib/theme-resolver.js.map +1 -1
  357. package/lib/theme-schema.d.ts +7 -42
  358. package/lib/theme-schema.d.ts.map +1 -1
  359. package/lib/theme-schema.js +9 -11
  360. package/lib/theme-schema.js.map +1 -1
  361. package/lib/theme-settings.d.ts +19 -10
  362. package/lib/theme-settings.d.ts.map +1 -1
  363. package/lib/theme-settings.js +23 -17
  364. package/lib/theme-settings.js.map +1 -1
  365. package/lib/theme-tokens.d.ts +6 -12
  366. package/lib/theme-tokens.d.ts.map +1 -1
  367. package/lib/theme-tokens.js +2 -2
  368. package/lib/theme-tokens.js.map +1 -1
  369. package/lib/theme.d.ts +5 -10
  370. package/lib/theme.d.ts.map +1 -1
  371. package/lib/theme.js +11 -18
  372. package/lib/theme.js.map +1 -1
  373. package/lib/todo-guard.d.ts +8 -4
  374. package/lib/todo-guard.d.ts.map +1 -1
  375. package/lib/todo-guard.js +17 -6
  376. package/lib/todo-guard.js.map +1 -1
  377. package/lib/tokens.d.ts +0 -2
  378. package/lib/tokens.d.ts.map +1 -1
  379. package/lib/tokens.js +1 -1
  380. package/lib/tokens.js.map +1 -1
  381. package/lib/tool-display.d.ts +1 -13
  382. package/lib/tool-display.d.ts.map +1 -1
  383. package/lib/tool-display.js +4 -4
  384. package/lib/tool-display.js.map +1 -1
  385. package/lib/transcript/message-content.d.ts.map +1 -1
  386. package/lib/transcript/message-content.js +31 -9
  387. package/lib/transcript/message-content.js.map +1 -1
  388. package/lib/transcript/tool-calls.d.ts +9 -7
  389. package/lib/transcript/tool-calls.d.ts.map +1 -1
  390. package/lib/transcript/tool-calls.js +27 -20
  391. package/lib/transcript/tool-calls.js.map +1 -1
  392. package/lib/transcript.d.ts +15 -18
  393. package/lib/transcript.d.ts.map +1 -1
  394. package/lib/transcript.js +70 -41
  395. package/lib/transcript.js.map +1 -1
  396. package/lib/ui/copy.d.ts +5 -4
  397. package/lib/ui/copy.d.ts.map +1 -1
  398. package/lib/ui/copy.js +9 -6
  399. package/lib/ui/copy.js.map +1 -1
  400. package/lib/ui/diff.d.ts +0 -30
  401. package/lib/ui/diff.d.ts.map +1 -1
  402. package/lib/ui/diff.js +16 -9
  403. package/lib/ui/diff.js.map +1 -1
  404. package/lib/ui/dock.d.ts +12 -10
  405. package/lib/ui/dock.d.ts.map +1 -1
  406. package/lib/ui/dock.js +27 -14
  407. package/lib/ui/dock.js.map +1 -1
  408. package/lib/ui/editor.d.ts +5 -4
  409. package/lib/ui/editor.d.ts.map +1 -1
  410. package/lib/ui/editor.js +17 -9
  411. package/lib/ui/editor.js.map +1 -1
  412. package/lib/ui/frame.d.ts +4 -12
  413. package/lib/ui/frame.d.ts.map +1 -1
  414. package/lib/ui/frame.js +6 -6
  415. package/lib/ui/frame.js.map +1 -1
  416. package/lib/ui/gap.d.ts +0 -4
  417. package/lib/ui/gap.d.ts.map +1 -1
  418. package/lib/ui/gap.js +4 -3
  419. package/lib/ui/gap.js.map +1 -1
  420. package/lib/ui/gate-input.d.ts +3 -3
  421. package/lib/ui/gate-input.d.ts.map +1 -1
  422. package/lib/ui/gate-input.js +9 -9
  423. package/lib/ui/gate-input.js.map +1 -1
  424. package/lib/ui/layout.d.ts +1 -8
  425. package/lib/ui/layout.d.ts.map +1 -1
  426. package/lib/ui/layout.js +10 -11
  427. package/lib/ui/layout.js.map +1 -1
  428. package/lib/ui/markdown.d.ts +3 -5
  429. package/lib/ui/markdown.d.ts.map +1 -1
  430. package/lib/ui/markdown.js +18 -7
  431. package/lib/ui/markdown.js.map +1 -1
  432. package/lib/ui/mermaid.d.ts +0 -11
  433. package/lib/ui/mermaid.d.ts.map +1 -1
  434. package/lib/ui/mermaid.js +32 -17
  435. package/lib/ui/mermaid.js.map +1 -1
  436. package/lib/ui/picker-card.d.ts +4 -8
  437. package/lib/ui/picker-card.d.ts.map +1 -1
  438. package/lib/ui/picker-card.js +17 -15
  439. package/lib/ui/picker-card.js.map +1 -1
  440. package/lib/ui/picker.d.ts +11 -17
  441. package/lib/ui/picker.d.ts.map +1 -1
  442. package/lib/ui/picker.js +36 -17
  443. package/lib/ui/picker.js.map +1 -1
  444. package/lib/ui/queue.d.ts.map +1 -1
  445. package/lib/ui/queue.js +11 -1
  446. package/lib/ui/queue.js.map +1 -1
  447. package/lib/ui/stash-picker.d.ts +1 -10
  448. package/lib/ui/stash-picker.d.ts.map +1 -1
  449. package/lib/ui/stash-picker.js +4 -4
  450. package/lib/ui/stash-picker.js.map +1 -1
  451. package/lib/ui/status.d.ts +2 -19
  452. package/lib/ui/status.d.ts.map +1 -1
  453. package/lib/ui/status.js +15 -17
  454. package/lib/ui/status.js.map +1 -1
  455. package/lib/ui/view/document.d.ts +33 -0
  456. package/lib/ui/view/document.d.ts.map +1 -0
  457. package/lib/ui/view/document.js +96 -0
  458. package/lib/ui/view/document.js.map +1 -0
  459. package/lib/ui/view/gate-card.d.ts +2 -0
  460. package/lib/ui/view/gate-card.d.ts.map +1 -1
  461. package/lib/ui/view/gate-card.js +12 -10
  462. package/lib/ui/view/gate-card.js.map +1 -1
  463. package/lib/ui/view/tool-card.d.ts +7 -4
  464. package/lib/ui/view/tool-card.d.ts.map +1 -1
  465. package/lib/ui/view/tool-card.js +12 -17
  466. package/lib/ui/view/tool-card.js.map +1 -1
  467. package/lib/ui/view/transcript-message.d.ts +7 -7
  468. package/lib/ui/view/transcript-message.d.ts.map +1 -1
  469. package/lib/ui/view/transcript-message.js +19 -10
  470. package/lib/ui/view/transcript-message.js.map +1 -1
  471. package/lib/ui/view.d.ts +53 -84
  472. package/lib/ui/view.d.ts.map +1 -1
  473. package/lib/ui/view.js +79 -158
  474. package/lib/ui/view.js.map +1 -1
  475. package/lib/work.d.ts +13 -10
  476. package/lib/work.d.ts.map +1 -1
  477. package/lib/work.js +30 -8
  478. package/lib/work.js.map +1 -1
  479. package/package.json +12 -7
  480. package/presets/cordis.patch.yml +1 -0
  481. package/presets/minimal.patch.yml +1 -0
  482. package/presets/ptc.patch.yml +1 -0
  483. package/presets/standard.patch.yml +1 -0
  484. package/themes/deepseek-blue.yaml +38 -51
  485. package/themes/marine-static.yaml +27 -35
  486. package/themes/pine-slope.yaml +13 -11
  487. package/themes/polar-drift.yaml +6 -0
  488. package/themes/violet-orbit.yaml +14 -18
  489. package/themes/wine-thicket.yaml +13 -13
package/lib/ui/mermaid.js CHANGED
@@ -5,16 +5,13 @@ const MERMAID_FENCE_LANG = 'mermaid';
5
5
  /** The cheap guard before lexing; case-insensitive because a fence may shout. */
6
6
  const MERMAID_MENTION = /mermaid/iu;
7
7
  /** Drawings kept before the oldest is laid out again; a streaming reply redraws per delta. */
8
- export const MERMAID_CACHE_LIMIT = 32;
8
+ const MERMAID_CACHE_LIMIT = 32;
9
9
  /**
10
- * The largest source this surface lays out.
11
- *
12
- * Layout is synchronous and happens inside a frame, and a streaming reply asks
13
- * for it again on every delta, so past this the frame costs more than the
14
- * drawing is worth and the source stays. Well above what the renderer's own
15
- * node cap can fill, so no drawing a reader actually sees is kept out.
10
+ * Bound source size before synchronous layout runs inside a frame.
11
+ * Streaming replies revisit fences on each delta; oversized fences stay readable
12
+ * as source. This limits layout input, not elapsed time or all renderable diagrams.
16
13
  */
17
- export const MERMAID_MAX_SOURCE = 32 * 1024;
14
+ const MERMAID_MAX_SOURCE = 32 * 1024;
18
15
  /** What ends a row without starting a paragraph; two trailing spaces are CommonMark's hard break. */
19
16
  const HARD_BREAK = ' \n';
20
17
  /** An empty code span has no height, so a blank row stands on a non-breaking space. */
@@ -72,6 +69,7 @@ function drawnWidth(art) {
72
69
  }
73
70
  return widest;
74
71
  }
72
+ /** Keep the loss notice compact beside the retained source; the count signals that the first warning is not exhaustive. */
75
73
  function warningText(art) {
76
74
  const first = art.warnings[0] ?? '';
77
75
  const rest = art.warnings.length - 1;
@@ -86,14 +84,18 @@ function warningText(art) {
86
84
  */
87
85
  function artCache() {
88
86
  const drawn = new Map();
89
- return source => {
87
+ return (source, retained) => {
90
88
  if (drawn.has(source))
91
89
  return drawn.get(source) ?? null;
92
90
  const art = render(source);
93
91
  if (drawn.size >= MERMAID_CACHE_LIMIT) {
94
- const oldest = drawn.keys().next();
95
- if (oldest.done !== true)
96
- drawn.delete(oldest.value);
92
+ // Growing a live fence replaces its obsolete prefix, not completed diagrams still visible beside it.
93
+ for (const oldest of drawn.keys()) {
94
+ if (retained.has(oldest))
95
+ continue;
96
+ drawn.delete(oldest);
97
+ break;
98
+ }
97
99
  }
98
100
  drawn.set(source, art);
99
101
  return art;
@@ -131,10 +133,10 @@ export function createMermaidTransform(options) {
131
133
  return `${lead}${body}${after === '' ? '\n' : '\n\n'}`;
132
134
  }
133
135
  /** What one fence becomes: art, or its source with the reason it stayed source. */
134
- function fenceBlock(token, before, after, availableWidth, live) {
136
+ function fenceBlock(token, before, after, availableWidth, live, retained) {
135
137
  if (token.text.length > MERMAID_MAX_SOURCE)
136
138
  return token.raw;
137
- const art = draw(token.text);
139
+ const art = draw(token.text, retained);
138
140
  // A settled drawing that lost part of its source is worth reporting whether
139
141
  // or not it would have fit, because the reader is looking at the source.
140
142
  if (!live && art !== null && art.warnings.length > 0) {
@@ -158,16 +160,29 @@ export function createMermaidTransform(options) {
158
160
  // Lexing is the cost this guard avoids: no fence can be present without the word.
159
161
  if (!MERMAID_MENTION.test(markdown))
160
162
  return markdown;
163
+ const tokens = parser.lexer(markdown);
164
+ const retained = new Set();
165
+ let retainedFences = 0;
166
+ // Pin only this reply's bounded window; unrelated replies still age out in insertion order.
167
+ for (const token of tokens) {
168
+ if (!isMermaidFence(token))
169
+ continue;
170
+ if (retainedFences++ >= MERMAID_CACHE_LIMIT)
171
+ break;
172
+ retained.add(token.text);
173
+ }
161
174
  let out = '';
162
175
  let cursor = 0;
163
- for (const token of parser.lexer(markdown)) {
176
+ let fences = 0;
177
+ for (const token of tokens) {
164
178
  const at = markdown.indexOf(token.raw, cursor);
165
179
  // A lexer that rewrote its own input cannot be spliced back into it, and
166
180
  // the message is worth more than the drawing: it stays as written.
167
181
  if (at < 0)
168
182
  return markdown;
169
- const body = isMermaidFence(token)
170
- ? fenceBlock(token, out, markdown.slice(at + token.raw.length), availableWidth, live)
183
+ // A reply must not evict its own drawing window on every streaming delta; overflow stays readable source.
184
+ const body = isMermaidFence(token) && fences++ < MERMAID_CACHE_LIMIT
185
+ ? fenceBlock(token, out, markdown.slice(at + token.raw.length), availableWidth, live, retained)
171
186
  : token.raw;
172
187
  out += markdown.slice(cursor, at) + body;
173
188
  cursor = at + token.raw.length;
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../../src/ui/mermaid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../../src/ui/mermaid.ts"],"names":[],"mappings":"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"}
@@ -12,19 +12,15 @@ import type { PickerCard } from './picker.ts';
12
12
  export declare function pickerCardLines(picker: PickerCard, width: number, theme: TuiTheme): string[];
13
13
  /** The same share as the library resolves a percentage SizeValue, so the option and the row budget cannot disagree. */
14
14
  export declare const POPUP_MAX_HEIGHT: SizeValue;
15
- /** The columns the box may take on a terminal this wide. */
15
+ /** Request a readable width without stretching long rows; the overlay, not this minimum, enforces available columns and margins. */
16
16
  export declare function popupWidth(columns: number): number;
17
- /** The rows the box may occupy, resolved the way the library resolves a percentage. */
18
- export declare function popupHeight(rows: number): number;
19
- /** How many list rows fit in that height, with the frame's own rows and the scroll counts reserved. */
20
- export declare function popupRowBudget(rows: number): number;
21
17
  /**
22
18
  * A list drawn as a box over the surface rather than at the end of it.
23
19
  *
24
20
  * The box is only a frame: the rows, the filter, and the counts are the card's,
25
- * which the list builds to whatever budget this component can afford. A screen
26
- * too short for the whole card shrinks the window rather than the box, because
27
- * the hint naming the keys that close it is the last thing that may fall off.
21
+ * which the list builds to the requested row budget. Shrink the list window to
22
+ * leave room for the frame and exit hint when possible. At the minimum budget,
23
+ * the card can still overflow, and the overlay's height clamp can cut off the hint.
28
24
  */
29
25
  export declare class PickerPopup implements Component {
30
26
  private readonly card;
@@ -1 +1 @@
1
- {"version":3,"file":"picker-card.d.ts","sourceRoot":"","sources":["../../src/ui/picker-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAkC,MAAM,wBAAwB,CAAA;AAEvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAoB7C;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,CAkC5F;AAuBD,uHAAuH;AACvH,eAAO,MAAM,gBAAgB,EAAE,SAAgC,CAAA;AAE/D,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,uGAAuG;AACvG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,SAAS;IAEzC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAHL,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS;IAC/D,4FAA4F;IAC3E,IAAI,EAAE,MAAM,MAAM,EAClB,KAAK,EAAE,QAAQ;IAGlC,UAAU,IAAI,IAAI;IAIlB,8EAA8E;IAC9E,OAAO,CAAC,GAAG;IAWX,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAchC"}
1
+ {"version":3,"file":"picker-card.d.ts","sourceRoot":"","sources":["../../src/ui/picker-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAkC,MAAM,wBAAwB,CAAA;AAEvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAoB7C;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,CAoC5F;AAuBD,uHAAuH;AACvH,eAAO,MAAM,gBAAgB,EAAE,SAAgC,CAAA;AAE/D,oIAAoI;AACpI,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAYD;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,SAAS;IAEzC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAHL,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS;IAC/D,4FAA4F;IAC3E,IAAI,EAAE,MAAM,MAAM,EAClB,KAAK,EAAE,QAAQ;IAGlC,UAAU,IAAI,IAAI;IAIlB,8EAA8E;IAC9E,OAAO,CAAC,GAAG;IAWX,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAchC"}
@@ -1,13 +1,13 @@
1
1
  import { visibleWidth, wrapTextWithAnsi } from '@earendil-works/pi-tui';
2
2
  import { canFrame, frameLines, FRAME_COLUMNS } from "./frame.js";
3
- /** The columns a list's rows are indented by, and the ones a wrapped line under them uses. */
3
+ /** Inset list content beneath the heading; a deeper gutter distinguishes notes and filters from cursor-bearing choices. */
4
4
  const ROW_INDENT = ' ';
5
5
  const TEXT_INDENT = ' ';
6
6
  /** The mark a cursor falls back to when the reader has not set one, so no literal lives in a template. */
7
7
  const CURSOR_MARK = '❯';
8
8
  /** An unselected row has no cursor, and a blank column is not a value to configure. */
9
9
  const NO_CURSOR = ' ';
10
- /** One wrapped block of plain text under a prefix, at the width the card has. */
10
+ /** Align continuation lines beneath the prefixed text so wrapped notes and exit instructions remain readable. */
11
11
  function pushWrapped(lines, text, width, prefix, token, theme) {
12
12
  const lead = visibleWidth(prefix);
13
13
  const indent = ' '.repeat(lead);
@@ -40,6 +40,8 @@ export function pickerCardLines(picker, width, theme) {
40
40
  if (picker.above > 0 && theme.visible('picker.scrollNewer')) {
41
41
  lines.push(theme.style('picker.scrollNewer', theme.cut(`${ROW_INDENT}… ${picker.above} newer`, width, '')));
42
42
  }
43
+ // Each item spends at most one visual row, matching the logical-item window in Picker.card.
44
+ // Honor the reader's hidden-token choice even for the current row instead of drawing a fallback selection marker.
43
45
  for (const row of picker.rows) {
44
46
  const token = row.current ? 'picker.rowCurrent' : 'picker.row';
45
47
  if (!theme.visible(token))
@@ -54,8 +56,8 @@ export function pickerCardLines(picker, width, theme) {
54
56
  lines.push(theme.style('picker.scrollOlder', theme.cut(`${ROW_INDENT}… ${picker.below} older`, width, '')));
55
57
  }
56
58
  if (theme.visible('picker.hint')) {
57
- // The hint names the keys that leave the list, so it folds rather than
58
- // being cut: a narrow screen must still be told the way out.
59
+ // Wrap exit guidance to avoid truncating away the keys on narrow cards;
60
+ // wrapping cannot preserve it when the overlay clips excess height.
59
61
  pushWrapped(lines, picker.hint, width, ROW_INDENT, 'picker.hint', theme);
60
62
  }
61
63
  return lines;
@@ -68,9 +70,9 @@ export function pickerCardLines(picker, width, theme) {
68
70
  * chosen, and the editor stays where the reader left it.
69
71
  */
70
72
  const HEIGHT_PERCENT = 80;
71
- /** Air between the box and the terminal's edge, so the frame never touches one. */
73
+ /** Leave edge space in the requested width; the overlay also applies its own margin clamp. */
72
74
  const MARGIN = 1;
73
- /** A box narrower than this cannot name an action and its keys on one row. */
75
+ /** Prefer room for action labels and keys; the overlay may clamp this request on narrower terminals. */
74
76
  const MIN_WIDTH = 40;
75
77
  /** Past this the rows are mostly empty, and a list reads better narrow than stretched. */
76
78
  const MAX_WIDTH = 100;
@@ -82,25 +84,25 @@ const MARKER_ROWS = 2;
82
84
  const MIN_ROWS = 3;
83
85
  /** The same share as the library resolves a percentage SizeValue, so the option and the row budget cannot disagree. */
84
86
  export const POPUP_MAX_HEIGHT = `${HEIGHT_PERCENT}%`;
85
- /** The columns the box may take on a terminal this wide. */
87
+ /** Request a readable width without stretching long rows; the overlay, not this minimum, enforces available columns and margins. */
86
88
  export function popupWidth(columns) {
87
89
  return Math.min(MAX_WIDTH, Math.max(MIN_WIDTH, columns - MARGIN * 2));
88
90
  }
89
91
  /** The rows the box may occupy, resolved the way the library resolves a percentage. */
90
- export function popupHeight(rows) {
92
+ function popupHeight(rows) {
91
93
  return Math.floor((rows * HEIGHT_PERCENT) / 100);
92
94
  }
93
95
  /** How many list rows fit in that height, with the frame's own rows and the scroll counts reserved. */
94
- export function popupRowBudget(rows) {
96
+ function popupRowBudget(rows) {
95
97
  return Math.max(MIN_ROWS, popupHeight(rows) - CHROME_ROWS - MARKER_ROWS);
96
98
  }
97
99
  /**
98
100
  * A list drawn as a box over the surface rather than at the end of it.
99
101
  *
100
102
  * The box is only a frame: the rows, the filter, and the counts are the card's,
101
- * which the list builds to whatever budget this component can afford. A screen
102
- * too short for the whole card shrinks the window rather than the box, because
103
- * the hint naming the keys that close it is the last thing that may fall off.
103
+ * which the list builds to the requested row budget. Shrink the list window to
104
+ * leave room for the frame and exit hint when possible. At the minimum budget,
105
+ * the card can still overflow, and the overlay's height clamp can cut off the hint.
104
106
  */
105
107
  export class PickerPopup {
106
108
  card;
@@ -136,9 +138,9 @@ export class PickerPopup {
136
138
  let budget = popupRowBudget(rows);
137
139
  for (;;) {
138
140
  const lines = this.box(this.card(budget), width);
139
- // A refusal note can spend rows the budget did not reserve, so a card that
140
- // still overflows asks for a shorter window rather than lose its closing
141
- // rule to the library's own clamp.
141
+ // Notes and wrapped hints can exceed the reserved chrome, so reduce list rows
142
+ // before the overlay clips the card. MIN_ROWS bounds this reduction, not the
143
+ // rendered height; overflow at that floor remains subject to the overlay clamp.
142
144
  if (lines.length <= room || budget <= MIN_ROWS)
143
145
  return lines;
144
146
  budget = Math.max(MIN_ROWS, budget - (lines.length - room));
@@ -1 +1 @@
1
- {"version":3,"file":"picker-card.js","sourceRoot":"","sources":["../../src/ui/picker-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picker-card.js","sourceRoot":"","sources":["../../src/ui/picker-card.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type Keymap } from '../input/actions.ts';
2
2
  import type { StoredSession } from '../agent/history.ts';
3
3
  import { type ModelChoice, type ModelRoute } from '../agent/model.ts';
4
4
  import { type PresetSummary } from '../agent/presets.ts';
5
- /** One selectable row of the picker. */
5
+ /** Presentation stays independent of domain ids; current marks the cursor, not the active domain choice. */
6
6
  export interface PickerRow {
7
7
  readonly label: string;
8
8
  readonly description: string | undefined;
@@ -21,21 +21,13 @@ export interface PickerCard {
21
21
  /** Rows below the window. */
22
22
  readonly below: number;
23
23
  }
24
- /** What one key press asked the picker to do. */
24
+ /** Return intent so the modal owner can validate picks and settle cancellation before domain changes. */
25
25
  export type PickerAction = {
26
26
  readonly kind: 'pick';
27
27
  readonly id: string;
28
28
  } | {
29
29
  readonly kind: 'cancel';
30
30
  };
31
- /**
32
- * Rows the picker shows at once.
33
- *
34
- * The card is drawn at the end of a viewport that follows the transcript, so a
35
- * list taller than the screen would push its own cursor out of sight. The
36
- * window stays around the cursor instead, and the counts say what is hidden.
37
- */
38
- export declare const PICKER_WINDOW = 12;
39
31
  /**
40
32
  * The hint lines a list uses when it is empty and when it holds rows.
41
33
  *
@@ -60,8 +52,8 @@ export declare function describeAge(createdAt: number, now: number): string;
60
52
  * A filtered list the reader moves through by key.
61
53
  *
62
54
  * The list is the caller's and is re-read on every key and paint, so rows whose
63
- * text arrives late — a session title read from its log, a roster re-read after
64
- * a preset was authored — appear without rebuilding the picker. Windowing,
55
+ * text arrives late — such as a session title read from its log — can appear
56
+ * without rebuilding the picker when the caller refreshes it. Windowing,
65
57
  * filtering, and the keys are the same whatever the rows mean, which is why
66
58
  * they live here once instead of in every list a terminal has to choose from.
67
59
  */
@@ -88,6 +80,7 @@ export declare class ListPicker<Row> {
88
80
  private cursor;
89
81
  private filter;
90
82
  private note;
83
+ private ranking;
91
84
  constructor(source: () => readonly Row[], heading: () => string,
92
85
  /** The value a pick settles on. */
93
86
  idOf: (row: Row) => string, describe: (row: Row) => PickerRow,
@@ -148,13 +141,13 @@ export declare class ListPicker<Row> {
148
141
  * first paint would make opening the picker as slow as the slowest session.
149
142
  */
150
143
  export declare class SessionPicker extends ListPicker<StoredSession> {
151
- constructor(sessions: readonly StoredSession[], titles: () => ReadonlyMap<string, string>, now: (() => number) | undefined, keys: () => Keymap);
144
+ constructor(sessions: readonly StoredSession[], titles: () => ReadonlyMap<string, string>, keys: () => Keymap);
152
145
  }
153
146
  /**
154
147
  * One agent preset chosen by key press.
155
148
  *
156
- * The roster is re-read on every paint, so a preset authored or deleted while
157
- * the picker is open is present or gone without reopening it.
149
+ * Caller-owned rows allow refreshed presets to appear without rebuilding the
150
+ * picker; the surface currently supplies a snapshot taken when it opens.
158
151
  */
159
152
  export declare class PresetPicker extends ListPicker<PresetSummary> {
160
153
  constructor(presets: () => readonly PresetSummary[], currentId: () => string | undefined, keys: () => Keymap);
@@ -174,10 +167,11 @@ export declare class ModelPicker extends ListPicker<ModelRoute> {
174
167
  * The pick id that clears an explicit effort.
175
168
  *
176
169
  * An absent effort is a real choice — it restores the model's own default — so
177
- * it needs an id, and no adapter-owned effort may be empty.
170
+ * it needs an id. Advertised effort ids must be nonempty to avoid colliding
171
+ * with this clearing choice; the catalog conversion does not enforce that.
178
172
  */
179
173
  export declare const PROVIDER_DEFAULT_EFFORT_ID = "";
180
- /** One reasoning level a route offers, as the picker shows it. */
174
+ /** Keep the active effort in row text because the card's current marker belongs to the navigation cursor. */
181
175
  export interface EffortChoice {
182
176
  readonly id: string;
183
177
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"picker.d.ts","sourceRoot":"","sources":["../../src/ui/picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picker.d.ts","sourceRoot":"","sources":["../../src/ui/picker.ts"],"names":[],"mappings":"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"}
package/lib/ui/picker.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { matchesKey } from '@earendil-works/pi-tui';
2
2
  import { hintKeys, matchesAction, moveHint } from "../input/actions.js";
3
- import { pastedText } from "../input.js";
3
+ import { deleteLastGrapheme, releasedKey, typedText } from "../input.js";
4
4
  import { matchScore } from "../input/match.js";
5
5
  import { describeModelRoute, modelRouteKey } from "../agent/model.js";
6
6
  import { describePreset } from "../agent/presets.js";
@@ -11,7 +11,7 @@ import { describePreset } from "../agent/presets.js";
11
11
  * list taller than the screen would push its own cursor out of sight. The
12
12
  * window stays around the cursor instead, and the counts say what is hidden.
13
13
  */
14
- export const PICKER_WINDOW = 12;
14
+ const PICKER_WINDOW = 12;
15
15
  /** Runs of whitespace, including the newlines a seeded draft or a paste can carry. */
16
16
  const WHITESPACE = /\s+/gu;
17
17
  /**
@@ -29,6 +29,7 @@ const HOUR_MS = 60 * MINUTE_MS;
29
29
  const DAY_MS = 24 * HOUR_MS;
30
30
  /** Human age of a session, so a list of ids becomes a list of moments. */
31
31
  export function describeAge(createdAt, now) {
32
+ // Keep age labels nonnegative when a stored timestamp is later than the caller's clock.
32
33
  const elapsed = Math.max(0, now - createdAt);
33
34
  if (elapsed < MINUTE_MS)
34
35
  return 'just now';
@@ -42,8 +43,8 @@ export function describeAge(createdAt, now) {
42
43
  * A filtered list the reader moves through by key.
43
44
  *
44
45
  * The list is the caller's and is re-read on every key and paint, so rows whose
45
- * text arrives late — a session title read from its log, a roster re-read after
46
- * a preset was authored — appear without rebuilding the picker. Windowing,
46
+ * text arrives late — such as a session title read from its log — can appear
47
+ * without rebuilding the picker when the caller refreshes it. Windowing,
47
48
  * filtering, and the keys are the same whatever the rows mean, which is why
48
49
  * they live here once instead of in every list a terminal has to choose from.
49
50
  */
@@ -59,6 +60,7 @@ export class ListPicker {
59
60
  cursor = 0;
60
61
  filter = '';
61
62
  note;
63
+ ranking;
62
64
  constructor(source, heading,
63
65
  /** The value a pick settles on. */
64
66
  idOf, describe,
@@ -90,15 +92,25 @@ export class ListPicker {
90
92
  /** Rows matching the typed filter, best match first. */
91
93
  visible() {
92
94
  const needle = this.filter.trim();
95
+ const rows = this.source();
93
96
  if (needle === '')
94
- return this.source();
95
- // Ties keep the order the caller listed them in, so rows do not shuffle
96
- // under the cursor while the reader is still typing.
97
- return this.source()
98
- .map(row => ({ row, score: matchScore(needle, this.haystackOf(row)) }))
97
+ return rows;
98
+ const haystacks = rows.map(row => this.haystackOf(row));
99
+ const retained = this.ranking;
100
+ // Late titles can change inside the same source array; only matching text invalidates ranks.
101
+ if (retained !== undefined && retained.needle === needle
102
+ && retained.haystacks.length === haystacks.length
103
+ && retained.haystacks.every((text, index) => text === haystacks[index])) {
104
+ return retained.indices.map(index => rows[index]);
105
+ }
106
+ // Ties preserve source order, and indices read fresh rows even when objects are replaced.
107
+ const indices = haystacks
108
+ .map((text, index) => ({ index, score: matchScore(needle, text) }))
99
109
  .filter((entry) => entry.score !== undefined)
100
110
  .sort((left, right) => right.score - left.score)
101
- .map(entry => entry.row);
111
+ .map(entry => entry.index);
112
+ this.ranking = { needle, haystacks, indices };
113
+ return indices.map(index => rows[index]);
102
114
  }
103
115
  /**
104
116
  * Say why the row under the cursor cannot be taken.
@@ -112,6 +124,9 @@ export class ListPicker {
112
124
  }
113
125
  /** Apply one key press; returns an action only when the picker settles. */
114
126
  handleKey(data) {
127
+ // Releasing a key must not repeat navigation, confirmation, filter edits, or cursor previews.
128
+ if (releasedKey(data))
129
+ return undefined;
115
130
  const action = this.step(data);
116
131
  // A press that settles the list needs no announcement: the row it settled on
117
132
  // is the row already on screen.
@@ -146,6 +161,7 @@ export class ListPicker {
146
161
  const chosen = rows[Math.min(this.cursor, Math.max(0, rows.length - 1))];
147
162
  return chosen === undefined ? undefined : { kind: 'pick', id: this.idOf(chosen) };
148
163
  }
164
+ // Keeping endpoint selections stable avoids jumping across the list on repeated movement keys.
149
165
  if (matchesAction(keys, 'picker.up', data)) {
150
166
  this.cursor = Math.max(0, this.cursor - 1);
151
167
  return undefined;
@@ -154,8 +170,9 @@ export class ListPicker {
154
170
  this.cursor = Math.min(Math.max(0, rows.length - 1), this.cursor + 1);
155
171
  return undefined;
156
172
  }
173
+ // Whole-grapheme deletion avoids leaving fragments of emoji or combining sequences in the filter.
157
174
  if (matchesKey(data, 'backspace')) {
158
- this.filter = this.filter.slice(0, -1);
175
+ this.filter = deleteLastGrapheme(this.filter);
159
176
  this.cursor = 0;
160
177
  return undefined;
161
178
  }
@@ -164,7 +181,8 @@ export class ListPicker {
164
181
  this.cursor = 0;
165
182
  return undefined;
166
183
  }
167
- const text = pastedText(data) ?? (data.length === 1 && data >= ' ' ? data : undefined);
184
+ // Shared terminal decoding keeps paste and printable-key input consistent without admitting control bytes.
185
+ const text = typedText(data);
168
186
  if (text !== undefined) {
169
187
  this.filter += text;
170
188
  this.cursor = 0;
@@ -208,13 +226,13 @@ export class ListPicker {
208
226
  * first paint would make opening the picker as slow as the slowest session.
209
227
  */
210
228
  export class SessionPicker extends ListPicker {
211
- constructor(sessions, titles, now = () => Date.now(), keys) {
229
+ constructor(sessions, titles, keys) {
212
230
  const labelOf = (session) => titles().get(session.id) ?? session.id;
213
231
  super(() => sessions, () => `resume a session · ${sessions.length} stored`, session => session.id, session => ({
214
232
  label: labelOf(session),
215
233
  description: [
216
234
  session.cwd ?? 'unknown directory',
217
- describeAge(session.createdAt, now()),
235
+ describeAge(session.createdAt, Date.now()),
218
236
  ...session.eventCount === undefined ? [] : [`${session.eventCount} events`],
219
237
  ].join(' · '),
220
238
  // The card marks the row under the cursor, which the list decides.
@@ -228,8 +246,8 @@ export class SessionPicker extends ListPicker {
228
246
  /**
229
247
  * One agent preset chosen by key press.
230
248
  *
231
- * The roster is re-read on every paint, so a preset authored or deleted while
232
- * the picker is open is present or gone without reopening it.
249
+ * Caller-owned rows allow refreshed presets to appear without rebuilding the
250
+ * picker; the surface currently supplies a snapshot taken when it opens.
233
251
  */
234
252
  export class PresetPicker extends ListPicker {
235
253
  constructor(presets, currentId, keys) {
@@ -265,7 +283,8 @@ export class ModelPicker extends ListPicker {
265
283
  * The pick id that clears an explicit effort.
266
284
  *
267
285
  * An absent effort is a real choice — it restores the model's own default — so
268
- * it needs an id, and no adapter-owned effort may be empty.
286
+ * it needs an id. Advertised effort ids must be nonempty to avoid colliding
287
+ * with this clearing choice; the catalog conversion does not enforce that.
269
288
  */
270
289
  export const PROVIDER_DEFAULT_EFFORT_ID = '';
271
290
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"picker.js","sourceRoot":"","sources":["../../src/ui/picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAqC,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAA;AA4BxE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AAa/B,sFAAsF;AACtF,MAAM,UAAU,GAAG,OAAO,CAAA;AAE1B;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAC7C,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAA;AACxB,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,CAAA;AAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAA;AAE3B,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,GAAW;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAA;IAC5C,IAAI,OAAO,GAAG,SAAS;QAAE,OAAO,UAAU,CAAA;IAC1C,IAAI,OAAO,GAAG,OAAO;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IACvE,IAAI,OAAO,GAAG,MAAM;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IACpE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,UAAU;IAMF;IACA;IAEA;IACA;IAEA;IACA;IAEA;IAWA;IAzBX,MAAM,GAAG,CAAC,CAAA;IACV,MAAM,GAAG,EAAE,CAAA;IACX,IAAI,CAAoB;IAEhC,YACmB,MAA4B,EAC5B,OAAqB;IACtC,mCAAmC;IAClB,IAA0B,EAC1B,QAAiC;IAClD,iEAAiE;IAChD,UAAgC,EAChC,KAAkB;IACnC,kFAAkF;IACjE,IAAkB;IACnC,sFAAsF;IACtF,aAAa,GAAG,EAAE;IAClB;;;;;;;OAOG;IACc,QAAyC;QApBzC,WAAM,GAAN,MAAM,CAAsB;QAC5B,YAAO,GAAP,OAAO,CAAc;QAErB,SAAI,GAAJ,IAAI,CAAsB;QAC1B,aAAQ,GAAR,QAAQ,CAAyB;QAEjC,eAAU,GAAV,UAAU,CAAsB;QAChC,UAAK,GAAL,KAAK,CAAa;QAElB,SAAI,GAAJ,IAAI,CAAc;QAWlB,aAAQ,GAAR,QAAQ,CAAiC;QAE1D,IAAI,CAAC,MAAM,GAAG,aAAa,CAAA;IAC7B,CAAC;IAED,wDAAwD;IACxD,OAAO;QACL,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;QACvC,wEAAwE;QACxE,qDAAqD;QACrD,OAAO,IAAI,CAAC,MAAM,EAAE;aACjB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;aACtE,MAAM,CAAC,CAAC,KAAK,EAA0D,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;aACpG,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;aAC/C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAAwB;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,2EAA2E;IAC3E,SAAS,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,6EAA6E;QAC7E,gCAAgC;QAChC,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;QACzC,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ;QACd,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAM;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,wEAAwE;IAChE,IAAI,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC3B,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QACzE,IAAI,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACxE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;QACnF,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC1C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACrE,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YACf,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,IAAI,GAAG,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YACf,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACtF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;YACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,MAAM,GAAG,aAAa;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAA;QAC7C,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/B,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrB,OAAO,EAAE,KAAK,GAAG,KAAK,KAAK,MAAM;aAClC,CAAC,CAAC;YACH,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YACtD,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;SACnE,CAAA;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,aAAc,SAAQ,UAAyB;IAC1D,YACE,QAAkC,EAClC,MAAyC,EACzC,MAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EACpC,IAAkB;QAElB,MAAM,OAAO,GAAG,CAAC,OAAsB,EAAU,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAA;QAC1F,KAAK,CACH,GAAG,EAAE,CAAC,QAAQ,EACd,GAAG,EAAE,CAAC,sBAAsB,QAAQ,CAAC,MAAM,SAAS,EACpD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EACrB,OAAO,CAAC,EAAE,CAAC,CAAC;YACV,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE;gBACX,OAAO,CAAC,GAAG,IAAI,mBAAmB;gBAClC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC;gBACrC,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,SAAS,CAAC;aAC5E,CAAC,IAAI,CAAC,KAAK,CAAC;YACb,mEAAmE;YACnE,OAAO,EAAE,KAAK;SACf,CAAC,EACF,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACtE;YACE,KAAK,EAAE,GAAG,EAAE,CAAC,0CAA0C,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,SAAS;YACjG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,0BAA0B;SACjL,EACD,IAAI,CACL,CAAA;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,UAAyB;IACzD,YACE,OAAuC,EACvC,SAAmC,EACnC,IAAkB;QAElB,KAAK,CACH,OAAO,EACP,GAAG,EAAE,CAAC,kBAAkB,OAAO,EAAE,CAAC,MAAM,YAAY,EACpD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EACnB,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAC7C,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC5E;YACE,KAAK,EAAE,GAAG,EAAE,CAAC,0CAA0C,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,SAAS;YACjG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,aAAa,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,0BAA0B;SACnL,EACD,IAAI,CACL,CAAA;IACH,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAsB;IACrD,YAAY,MAAmC,EAAE,OAAsC,EAAE,IAAkB;QACzG,KAAK,CACH,MAAM,EACN,GAAG,EAAE;YACH,MAAM,MAAM,GAAG,OAAO,EAAE,CAAA;YACxB,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,yBAAyB,CAAA;YAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,eAAe,GAAG,CAAA;YACzF,OAAO,mBAAmB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAA;QACtE,CAAC,EACD,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAC7B,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAC7C,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC5D;YACE,KAAK,EAAE,GAAG,EAAE,CAAC,mFAAmF,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,SAAS;YAC1I,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,aAAa,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,0BAA0B;SACnL,EACD,IAAI,CACL,CAAA;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAA;AAW5C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAiG,EACjG,SAA6B;IAE7B,OAAO;QACL;YACE,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,SAAS,KAAK,SAAS;SACjC;QACD,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YAChF,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,SAAS;SACjC,CAAC,CAAC;KACJ,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,YAAa,SAAQ,UAAwB;IACxD,YAAY,OAAsC,EAAE,OAAe,EAAE,IAAkB;QACrF,KAAK,CACH,OAAO,EACP,GAAG,EAAE,CAAC,OAAO,EACb,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EACnB,MAAM,CAAC,EAAE,CAAC,CAAC;YACT,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,WAAW,EAAE;gBACX,MAAM,CAAC,WAAW;gBAClB,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACjD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aACvC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS;YAC5E,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,EACF,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACtE;YACE,KAAK,EAAE,GAAG,EAAE,CAAC,0CAA0C,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,SAAS;YACjG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,YAAY,QAAQ,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,0BAA0B;SAClL,EACD,IAAI,CACL,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"picker.js","sourceRoot":"","sources":["../../src/ui/picker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/ui/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAQ3C;;;;;;;GAOG;AACH,qBAAa,QAAS,YAAW,SAAS;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,OAAO,EAAE,MAAM,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,QAAQ;IAGlC,UAAU,IAAI,IAAI;IAIlB,yEAAyE;IACzE,OAAO,CAAC,GAAG;IAWX,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAkBhC"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/ui/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAS3C;;;;;;;GAOG;AACH,qBAAa,QAAS,YAAW,SAAS;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,OAAO,EAAE,MAAM,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,QAAQ;IAGlC,UAAU,IAAI,IAAI;IAIlB,yEAAyE;IACzE,OAAO,CAAC,GAAG;IAWX,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CA4BhC"}