@sagmans/dsh-tui 0.13.0 → 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 (485) 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 +16 -12
  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 +4 -4
  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 +4 -3
  151. package/lib/input/file-search.d.ts.map +1 -1
  152. package/lib/input/file-search.js +8 -5
  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.map +1 -1
  185. package/lib/input.js +3 -1
  186. package/lib/input.js.map +1 -1
  187. package/lib/install-skills.d.ts +5 -22
  188. package/lib/install-skills.d.ts.map +1 -1
  189. package/lib/install-skills.js +18 -18
  190. package/lib/install-skills.js.map +1 -1
  191. package/lib/jobs.d.ts +10 -5
  192. package/lib/jobs.d.ts.map +1 -1
  193. package/lib/jobs.js +39 -13
  194. package/lib/jobs.js.map +1 -1
  195. package/lib/keymaps.d.ts.map +1 -1
  196. package/lib/keymaps.js +2 -0
  197. package/lib/keymaps.js.map +1 -1
  198. package/lib/keys-command.d.ts +1 -1
  199. package/lib/keys-command.d.ts.map +1 -1
  200. package/lib/model-list.d.ts +0 -27
  201. package/lib/model-list.d.ts.map +1 -1
  202. package/lib/model-list.js +1 -1
  203. package/lib/model-list.js.map +1 -1
  204. package/lib/moshi.d.ts +13 -0
  205. package/lib/moshi.d.ts.map +1 -0
  206. package/lib/moshi.js +130 -0
  207. package/lib/moshi.js.map +1 -0
  208. package/lib/spacing.d.ts +0 -7
  209. package/lib/spacing.d.ts.map +1 -1
  210. package/lib/spacing.js +1 -1
  211. package/lib/spacing.js.map +1 -1
  212. package/lib/startup.d.ts +1 -1
  213. package/lib/startup.d.ts.map +1 -1
  214. package/lib/startup.js +9 -1
  215. package/lib/startup.js.map +1 -1
  216. package/lib/stash/lock.d.ts +1 -37
  217. package/lib/stash/lock.d.ts.map +1 -1
  218. package/lib/stash/lock.js +41 -35
  219. package/lib/stash/lock.js.map +1 -1
  220. package/lib/stash/paths.d.ts +8 -7
  221. package/lib/stash/paths.d.ts.map +1 -1
  222. package/lib/stash/paths.js +21 -17
  223. package/lib/stash/paths.js.map +1 -1
  224. package/lib/stash/private-fs.d.ts +14 -5
  225. package/lib/stash/private-fs.d.ts.map +1 -1
  226. package/lib/stash/private-fs.js +30 -8
  227. package/lib/stash/private-fs.js.map +1 -1
  228. package/lib/stash/schema.d.ts +3 -6
  229. package/lib/stash/schema.d.ts.map +1 -1
  230. package/lib/stash/schema.js +11 -9
  231. package/lib/stash/schema.js.map +1 -1
  232. package/lib/stash/store.d.ts +9 -40
  233. package/lib/stash/store.d.ts.map +1 -1
  234. package/lib/stash/store.js +26 -24
  235. package/lib/stash/store.js.map +1 -1
  236. package/lib/stash.d.ts +7 -11
  237. package/lib/stash.d.ts.map +1 -1
  238. package/lib/stash.js +18 -11
  239. package/lib/stash.js.map +1 -1
  240. package/lib/subagents.d.ts +9 -9
  241. package/lib/subagents.d.ts.map +1 -1
  242. package/lib/subagents.js +19 -18
  243. package/lib/subagents.js.map +1 -1
  244. package/lib/surface/appearance-preferences.d.ts.map +1 -1
  245. package/lib/surface/appearance-preferences.js +7 -0
  246. package/lib/surface/appearance-preferences.js.map +1 -1
  247. package/lib/surface/appearance.d.ts.map +1 -1
  248. package/lib/surface/appearance.js +7 -2
  249. package/lib/surface/appearance.js.map +1 -1
  250. package/lib/surface/background-work.d.ts +2 -0
  251. package/lib/surface/background-work.d.ts.map +1 -1
  252. package/lib/surface/background-work.js +45 -36
  253. package/lib/surface/background-work.js.map +1 -1
  254. package/lib/surface/commands.d.ts.map +1 -1
  255. package/lib/surface/commands.js +17 -9
  256. package/lib/surface/commands.js.map +1 -1
  257. package/lib/surface/modal-input.d.ts +3 -0
  258. package/lib/surface/modal-input.d.ts.map +1 -1
  259. package/lib/surface/modal-input.js +4 -1
  260. package/lib/surface/modal-input.js.map +1 -1
  261. package/lib/surface/model-choice.d.ts.map +1 -1
  262. package/lib/surface/model-choice.js +10 -8
  263. package/lib/surface/model-choice.js.map +1 -1
  264. package/lib/surface/plugin-actions.d.ts.map +1 -1
  265. package/lib/surface/plugin-actions.js +4 -0
  266. package/lib/surface/plugin-actions.js.map +1 -1
  267. package/lib/surface/preset-choice.d.ts.map +1 -1
  268. package/lib/surface/preset-choice.js +15 -17
  269. package/lib/surface/preset-choice.js.map +1 -1
  270. package/lib/surface/prompt-input.js +1 -1
  271. package/lib/surface/prompt-input.js.map +1 -1
  272. package/lib/surface/prompt-memory.d.ts +7 -6
  273. package/lib/surface/prompt-memory.d.ts.map +1 -1
  274. package/lib/surface/prompt-memory.js +3 -3
  275. package/lib/surface/session-lifecycle.d.ts +7 -1
  276. package/lib/surface/session-lifecycle.d.ts.map +1 -1
  277. package/lib/surface/session-lifecycle.js +17 -12
  278. package/lib/surface/session-lifecycle.js.map +1 -1
  279. package/lib/surface/session-picker.js +1 -1
  280. package/lib/surface/session-picker.js.map +1 -1
  281. package/lib/surface/session-view.d.ts +1 -1
  282. package/lib/surface/session-view.d.ts.map +1 -1
  283. package/lib/surface/session-view.js +4 -5
  284. package/lib/surface/session-view.js.map +1 -1
  285. package/lib/surface/staged-turns.d.ts.map +1 -1
  286. package/lib/surface/staged-turns.js +8 -4
  287. package/lib/surface/staged-turns.js.map +1 -1
  288. package/lib/surface/terminal-lifecycle.d.ts +1 -1
  289. package/lib/surface/terminal-lifecycle.d.ts.map +1 -1
  290. package/lib/surface/terminal-lifecycle.js +8 -5
  291. package/lib/surface/terminal-lifecycle.js.map +1 -1
  292. package/lib/terminal/bell.d.ts +0 -2
  293. package/lib/terminal/bell.d.ts.map +1 -1
  294. package/lib/terminal/bell.js +2 -1
  295. package/lib/terminal/bell.js.map +1 -1
  296. package/lib/terminal/clipboard.d.ts +4 -4
  297. package/lib/terminal/clipboard.js +4 -4
  298. package/lib/terminal/external-editor.d.ts +4 -60
  299. package/lib/terminal/external-editor.d.ts.map +1 -1
  300. package/lib/terminal/external-editor.js +28 -40
  301. package/lib/terminal/external-editor.js.map +1 -1
  302. package/lib/terminal/host-writes.d.ts +7 -18
  303. package/lib/terminal/host-writes.d.ts.map +1 -1
  304. package/lib/terminal/host-writes.js +9 -14
  305. package/lib/terminal/host-writes.js.map +1 -1
  306. package/lib/terminal/input.d.ts +6 -0
  307. package/lib/terminal/input.d.ts.map +1 -0
  308. package/lib/terminal/input.js +15 -0
  309. package/lib/terminal/input.js.map +1 -0
  310. package/lib/terminal/restore.d.ts +2 -1
  311. package/lib/terminal/restore.d.ts.map +1 -1
  312. package/lib/terminal/signals.d.ts +2 -1
  313. package/lib/terminal/signals.d.ts.map +1 -1
  314. package/lib/terminal/signals.js +1 -1
  315. package/lib/terminal/signals.js.map +1 -1
  316. package/lib/terminal/title.d.ts +1 -11
  317. package/lib/terminal/title.d.ts.map +1 -1
  318. package/lib/terminal/title.js +5 -4
  319. package/lib/terminal/title.js.map +1 -1
  320. package/lib/terminal/warning-screen.d.ts +2 -0
  321. package/lib/terminal/warning-screen.d.ts.map +1 -1
  322. package/lib/terminal/warning-screen.js +21 -3
  323. package/lib/terminal/warning-screen.js.map +1 -1
  324. package/lib/terminal-text/scan.d.ts +4 -5
  325. package/lib/terminal-text/scan.d.ts.map +1 -1
  326. package/lib/terminal-text/scan.js +16 -9
  327. package/lib/terminal-text/scan.js.map +1 -1
  328. package/lib/terminal-text/sgr.d.ts +4 -3
  329. package/lib/terminal-text/sgr.d.ts.map +1 -1
  330. package/lib/terminal-text/sgr.js +9 -14
  331. package/lib/terminal-text/sgr.js.map +1 -1
  332. package/lib/terminal-text.d.ts +7 -12
  333. package/lib/terminal-text.d.ts.map +1 -1
  334. package/lib/terminal-text.js +31 -28
  335. package/lib/terminal-text.js.map +1 -1
  336. package/lib/text.d.ts +8 -14
  337. package/lib/text.d.ts.map +1 -1
  338. package/lib/text.js +14 -15
  339. package/lib/text.js.map +1 -1
  340. package/lib/theme-capability.d.ts +3 -15
  341. package/lib/theme-capability.d.ts.map +1 -1
  342. package/lib/theme-capability.js +18 -15
  343. package/lib/theme-capability.js.map +1 -1
  344. package/lib/theme-defaults.d.ts +3 -57
  345. package/lib/theme-defaults.d.ts.map +1 -1
  346. package/lib/theme-defaults.js +25 -14
  347. package/lib/theme-defaults.js.map +1 -1
  348. package/lib/theme-files.d.ts +16 -32
  349. package/lib/theme-files.d.ts.map +1 -1
  350. package/lib/theme-files.js +43 -27
  351. package/lib/theme-files.js.map +1 -1
  352. package/lib/theme-resolver.d.ts +3 -3
  353. package/lib/theme-resolver.d.ts.map +1 -1
  354. package/lib/theme-resolver.js +9 -6
  355. package/lib/theme-resolver.js.map +1 -1
  356. package/lib/theme-schema.d.ts +7 -42
  357. package/lib/theme-schema.d.ts.map +1 -1
  358. package/lib/theme-schema.js +9 -11
  359. package/lib/theme-schema.js.map +1 -1
  360. package/lib/theme-settings.d.ts +19 -10
  361. package/lib/theme-settings.d.ts.map +1 -1
  362. package/lib/theme-settings.js +23 -17
  363. package/lib/theme-settings.js.map +1 -1
  364. package/lib/theme-tokens.d.ts +6 -12
  365. package/lib/theme-tokens.d.ts.map +1 -1
  366. package/lib/theme-tokens.js +2 -2
  367. package/lib/theme-tokens.js.map +1 -1
  368. package/lib/theme.d.ts +5 -10
  369. package/lib/theme.d.ts.map +1 -1
  370. package/lib/theme.js +11 -18
  371. package/lib/theme.js.map +1 -1
  372. package/lib/todo-guard.d.ts +8 -4
  373. package/lib/todo-guard.d.ts.map +1 -1
  374. package/lib/todo-guard.js +17 -6
  375. package/lib/todo-guard.js.map +1 -1
  376. package/lib/tokens.d.ts +0 -2
  377. package/lib/tokens.d.ts.map +1 -1
  378. package/lib/tokens.js +1 -1
  379. package/lib/tokens.js.map +1 -1
  380. package/lib/tool-display.d.ts +1 -13
  381. package/lib/tool-display.d.ts.map +1 -1
  382. package/lib/tool-display.js +4 -4
  383. package/lib/tool-display.js.map +1 -1
  384. package/lib/transcript/message-content.d.ts.map +1 -1
  385. package/lib/transcript/message-content.js +31 -9
  386. package/lib/transcript/message-content.js.map +1 -1
  387. package/lib/transcript/tool-calls.d.ts +9 -7
  388. package/lib/transcript/tool-calls.d.ts.map +1 -1
  389. package/lib/transcript/tool-calls.js +27 -20
  390. package/lib/transcript/tool-calls.js.map +1 -1
  391. package/lib/transcript.d.ts +10 -18
  392. package/lib/transcript.d.ts.map +1 -1
  393. package/lib/transcript.js +40 -28
  394. package/lib/transcript.js.map +1 -1
  395. package/lib/ui/copy.d.ts +5 -4
  396. package/lib/ui/copy.d.ts.map +1 -1
  397. package/lib/ui/copy.js +9 -6
  398. package/lib/ui/copy.js.map +1 -1
  399. package/lib/ui/diff.d.ts +0 -30
  400. package/lib/ui/diff.d.ts.map +1 -1
  401. package/lib/ui/diff.js +16 -9
  402. package/lib/ui/diff.js.map +1 -1
  403. package/lib/ui/dock.d.ts +4 -10
  404. package/lib/ui/dock.d.ts.map +1 -1
  405. package/lib/ui/dock.js +10 -14
  406. package/lib/ui/dock.js.map +1 -1
  407. package/lib/ui/editor.d.ts +4 -3
  408. package/lib/ui/editor.d.ts.map +1 -1
  409. package/lib/ui/editor.js +2 -2
  410. package/lib/ui/editor.js.map +1 -1
  411. package/lib/ui/frame.d.ts +4 -12
  412. package/lib/ui/frame.d.ts.map +1 -1
  413. package/lib/ui/frame.js +6 -6
  414. package/lib/ui/frame.js.map +1 -1
  415. package/lib/ui/gap.d.ts +0 -4
  416. package/lib/ui/gap.d.ts.map +1 -1
  417. package/lib/ui/gap.js +4 -3
  418. package/lib/ui/gap.js.map +1 -1
  419. package/lib/ui/gate-input.d.ts +3 -3
  420. package/lib/ui/gate-input.d.ts.map +1 -1
  421. package/lib/ui/gate-input.js +9 -9
  422. package/lib/ui/gate-input.js.map +1 -1
  423. package/lib/ui/layout.d.ts +1 -8
  424. package/lib/ui/layout.d.ts.map +1 -1
  425. package/lib/ui/layout.js +5 -3
  426. package/lib/ui/layout.js.map +1 -1
  427. package/lib/ui/markdown.d.ts +3 -5
  428. package/lib/ui/markdown.d.ts.map +1 -1
  429. package/lib/ui/markdown.js +18 -7
  430. package/lib/ui/markdown.js.map +1 -1
  431. package/lib/ui/mermaid.d.ts +0 -11
  432. package/lib/ui/mermaid.d.ts.map +1 -1
  433. package/lib/ui/mermaid.js +32 -17
  434. package/lib/ui/mermaid.js.map +1 -1
  435. package/lib/ui/picker-card.d.ts +4 -8
  436. package/lib/ui/picker-card.d.ts.map +1 -1
  437. package/lib/ui/picker-card.js +17 -15
  438. package/lib/ui/picker-card.js.map +1 -1
  439. package/lib/ui/picker.d.ts +10 -17
  440. package/lib/ui/picker.d.ts.map +1 -1
  441. package/lib/ui/picker.js +14 -8
  442. package/lib/ui/picker.js.map +1 -1
  443. package/lib/ui/stash-picker.d.ts +1 -10
  444. package/lib/ui/stash-picker.d.ts.map +1 -1
  445. package/lib/ui/stash-picker.js +4 -4
  446. package/lib/ui/stash-picker.js.map +1 -1
  447. package/lib/ui/status.d.ts +2 -19
  448. package/lib/ui/status.d.ts.map +1 -1
  449. package/lib/ui/status.js +15 -17
  450. package/lib/ui/status.js.map +1 -1
  451. package/lib/ui/view/document.d.ts +4 -1
  452. package/lib/ui/view/document.d.ts.map +1 -1
  453. package/lib/ui/view/document.js +15 -6
  454. package/lib/ui/view/document.js.map +1 -1
  455. package/lib/ui/view/gate-card.d.ts +2 -0
  456. package/lib/ui/view/gate-card.d.ts.map +1 -1
  457. package/lib/ui/view/gate-card.js +12 -10
  458. package/lib/ui/view/gate-card.js.map +1 -1
  459. package/lib/ui/view/tool-card.d.ts +7 -4
  460. package/lib/ui/view/tool-card.d.ts.map +1 -1
  461. package/lib/ui/view/tool-card.js +12 -17
  462. package/lib/ui/view/tool-card.js.map +1 -1
  463. package/lib/ui/view/transcript-message.d.ts +7 -7
  464. package/lib/ui/view/transcript-message.d.ts.map +1 -1
  465. package/lib/ui/view/transcript-message.js +19 -10
  466. package/lib/ui/view/transcript-message.js.map +1 -1
  467. package/lib/ui/view.d.ts +8 -8
  468. package/lib/ui/view.d.ts.map +1 -1
  469. package/lib/ui/view.js +11 -13
  470. package/lib/ui/view.js.map +1 -1
  471. package/lib/work.d.ts +13 -10
  472. package/lib/work.d.ts.map +1 -1
  473. package/lib/work.js +30 -8
  474. package/lib/work.js.map +1 -1
  475. package/package.json +11 -7
  476. package/presets/cordis.patch.yml +1 -0
  477. package/presets/minimal.patch.yml +1 -0
  478. package/presets/ptc.patch.yml +1 -0
  479. package/presets/standard.patch.yml +1 -0
  480. package/themes/deepseek-blue.yaml +38 -51
  481. package/themes/marine-static.yaml +27 -35
  482. package/themes/pine-slope.yaml +13 -11
  483. package/themes/polar-drift.yaml +6 -0
  484. package/themes/violet-orbit.yaml +14 -18
  485. package/themes/wine-thicket.yaml +13 -13
@@ -7,30 +7,13 @@
7
7
  * a report is best-effort, its failures are dropped, and the alternate screen
8
8
  * owns stdout.
9
9
  */
10
- import { type HerdrClient, type HerdrEnvironment } from './client.ts';
11
10
  import { type SessionStartReason } from './constants.ts';
12
11
  import { type DriverStatus } from './state.ts';
13
- export interface HerdrSessionInput {
12
+ interface HerdrSessionInput {
14
13
  readonly id: string;
15
14
  readonly cwd: string;
16
15
  readonly reason: SessionStartReason;
17
16
  }
18
- export interface HerdrReporterOptions {
19
- readonly client?: HerdrClient;
20
- readonly env?: HerdrEnvironment;
21
- readonly now?: () => number;
22
- readonly releaseSync?: () => void;
23
- /** The first retry wait; a test cannot wait a socket out. */
24
- readonly retryBaseMs?: number | undefined;
25
- /**
26
- * How often the pane checks that it still owns its row; zero stops checking.
27
- *
28
- * The wait only has to be short enough that a reader who looks at the picker
29
- * after a multiplexer restart sees the pane rather than nothing, and long
30
- * enough that an idle pane is not talking to itself.
31
- */
32
- readonly reclaimIntervalMs?: number | undefined;
33
- }
34
17
  export interface HerdrReporter {
35
18
  readonly enabled: boolean;
36
19
  /**
@@ -41,7 +24,7 @@ export interface HerdrReporter {
41
24
  * read as done between two turns of an agent that is still working.
42
25
  */
43
26
  driver(status: DriverStatus): void;
44
- /** Work the driven session still owns after its foreground driver settles. */
27
+ /** Driver settlement is not completion while delegated agents or jobs still run. */
45
28
  background(running: boolean): void;
46
29
  /**
47
30
  * A decision is waiting on the reader, under the key of the slot holding it.
@@ -66,24 +49,6 @@ export interface HerdrReporter {
66
49
  /** Release on process exit; returns the unregister function. */
67
50
  registerExitRelease(): () => void;
68
51
  }
69
- export declare function createHerdrReporter(options?: HerdrReporterOptions): HerdrReporter;
70
- /**
71
- * Release the pane's agent row synchronously.
72
- *
73
- * The process is leaving, so an awaited report would be dropped with the event
74
- * loop and Herdr would keep showing a state nothing owns any more — a pane that
75
- * reads as blocked forever is worse than one that reads as ordinary. The CLI is
76
- * the only channel that still works at this point.
77
- *
78
- * `seq` is what makes the release land, so it is required rather than optional:
79
- * Herdr sequences reports per source and treats a release that cannot beat them
80
- * as stale, which would leave the row of a process that is already gone.
81
- *
82
- * The binary Herdr exported is tried first and the one on `PATH` second: the
83
- * exported path names the release that started this pane, and a multiplexer
84
- * upgraded while the pane ran can take that file away. A release that could not
85
- * spawn is silent by design, so the fallback is the only thing standing between
86
- * an exit and a row that reads as a live agent forever.
87
- */
88
- export declare function releaseAgentSync(env: HerdrEnvironment, seq: number): void;
52
+ export declare function createHerdrReporter(): HerdrReporter;
53
+ export {};
89
54
  //# sourceMappingURL=reporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAcL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,8EAA8E;IAC9E,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAClC;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,wEAAwE;IACxE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kEAAkE;IAClE,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACvC,2DAA2D;IAC3D,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,gEAAgE;IAChE,WAAW,IAAI,IAAI,CAAA;IACnB,sEAAsE;IACtE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,gEAAgE;IAChE,mBAAmB,IAAI,MAAM,IAAI,CAAA;CAClC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAwQrF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAczE"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAcL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,YAAY,CAAA;AAEnB,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,oFAAoF;IACpF,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAClC;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,wEAAwE;IACxE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kEAAkE;IAClE,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACvC,2DAA2D;IAC3D,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,gEAAgE;IAChE,WAAW,IAAI,IAAI,CAAA;IACnB,sEAAsE;IACtE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,gEAAgE;IAChE,mBAAmB,IAAI,MAAM,IAAI,CAAA;CAClC;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAmQnD"}
@@ -11,21 +11,18 @@ import { spawnSync } from 'node:child_process';
11
11
  import { createHerdrClient } from "./client.js";
12
12
  import { EXIT_RELEASE_TIMEOUT_MS, FALLBACK_HERDR_BIN, HERDR_AGENT, HERDR_BIN_PATH_VAR, HERDR_ENV_FLAG, HERDR_ENV_VAR, HERDR_PANE_ID_VAR, HERDR_SOCKET_PATH_VAR, HERDR_SOURCE, METADATA_TOKENS, RECLAIM_INTERVAL_MS, RETRY_BASE_MS, RETRY_MAX_MS, } from "./constants.js";
13
13
  import { boundedMessage, createReportSequence, isReportChange, lifecycleReport, stateLabelFor, } from "./state.js";
14
- export function createHerdrReporter(options = {}) {
15
- const env = options.env ?? process.env;
16
- const client = options.client ?? createHerdrClient(env);
17
- const nextSeq = createReportSequence(options.now ?? Date.now);
14
+ export function createHerdrReporter() {
15
+ const env = process.env;
16
+ const client = createHerdrClient(env);
17
+ const nextSeq = createReportSequence();
18
18
  // A fresh sequence rides along: Herdr keeps the newest number per source and
19
19
  // drops a release that cannot beat the reports this pane already sent.
20
- const release = options.releaseSync ?? (() => releaseAgentSync(env, nextSeq()));
21
- const retryBaseMs = Math.max(1, options.retryBaseMs ?? RETRY_BASE_MS);
20
+ const release = () => releaseAgentSync(env, nextSeq());
22
21
  /**
23
- * The waits still owed, oldest first.
22
+ * Key waits by slot so replacements do not double-count a decision.
24
23
  *
25
- * A map keyed by the slot that opened the wait, so a slot taken over twice
26
- * holds one entry and gives it back once; the newest remaining wait is the one
27
- * that names the row, because the older ones are behind it in the reader's
28
- * queue rather than in front of it.
24
+ * Distinct slots retain insertion order; replacing a title keeps its slot
25
+ * in place. The last remaining slot in that order names the row.
29
26
  */
30
27
  const waits = new Map();
31
28
  let driverRunning = false;
@@ -76,7 +73,7 @@ export function createHerdrReporter(options = {}) {
76
73
  if (released || retryTimer !== undefined)
77
74
  return;
78
75
  retryAttempt += 1;
79
- const wait = Math.min(retryBaseMs * 2 ** (retryAttempt - 1), RETRY_MAX_MS);
76
+ const wait = Math.min(RETRY_BASE_MS * 2 ** (retryAttempt - 1), RETRY_MAX_MS);
80
77
  retryTimer = setTimeout(() => {
81
78
  retryTimer = undefined;
82
79
  flush();
@@ -180,10 +177,7 @@ export function createHerdrReporter(options = {}) {
180
177
  const startReclaim = () => {
181
178
  if (reclaimTimer !== undefined || released || !client.enabled)
182
179
  return;
183
- const interval = options.reclaimIntervalMs ?? RECLAIM_INTERVAL_MS;
184
- if (interval <= 0)
185
- return;
186
- reclaimTimer = setInterval(() => void reclaim(), interval);
180
+ reclaimTimer = setInterval(() => void reclaim(), RECLAIM_INTERVAL_MS);
187
181
  // Never a reason for the process to stay alive: the pane's exit is what
188
182
  // hands the row back.
189
183
  reclaimTimer.unref();
@@ -209,8 +203,8 @@ export function createHerdrReporter(options = {}) {
209
203
  reporter.publish();
210
204
  },
211
205
  unblock(key) {
212
- // A key nothing holds is not a wait that ended: dropping it keeps a slot
213
- // that was taken over from clearing the row the new owner still needs.
206
+ // Slot keys carry no owner identity: callers must avoid clearing a
207
+ // replacement wait when an older owner settles.
214
208
  waits.delete(key);
215
209
  reporter.publish();
216
210
  },
@@ -300,7 +294,7 @@ export function createHerdrReporter(options = {}) {
300
294
  * spawn is silent by design, so the fallback is the only thing standing between
301
295
  * an exit and a row that reads as a live agent forever.
302
296
  */
303
- export function releaseAgentSync(env, seq) {
297
+ function releaseAgentSync(env, seq) {
304
298
  const paneId = env[HERDR_PANE_ID_VAR];
305
299
  if (env[HERDR_ENV_VAR] !== HERDR_ENV_FLAG || paneId === undefined || env[HERDR_SOCKET_PATH_VAR] === undefined)
306
300
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/herdr/reporter.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,8 @@ export interface LifecycleReport {
49
49
  *
50
50
  * A wait outranks a running driver because an agent that is waiting on a
51
51
  * human is not making progress, and the wait is the only thing a reader
52
- * glancing at a wall of panes can still act on.
52
+ * glancing at a wall of panes can still act on. Background liveness keeps
53
+ * driver settlement from announcing completion while delegated work remains.
53
54
  */
54
55
  export declare function lifecycleReport(facts: LifecycleFacts): LifecycleReport;
55
56
  /**
@@ -75,7 +76,7 @@ export declare function stateLabelFor(report: LifecycleReport): string | undefin
75
76
  * inherited a conversation, the other returned to it.
76
77
  */
77
78
  export declare function sessionStartReason(input: SessionStartFacts): SessionStartReason;
78
- /** Whether a report would say something Herdr is not already showing. */
79
+ /** Suppress redundant pane updates when surface events leave state and message unchanged. */
79
80
  export declare function isReportChange(last: LifecycleReport | undefined, next: LifecycleReport): boolean;
80
81
  /**
81
82
  * Monotonic report sequence numbers, anchored at the moment each one goes out.
@@ -88,5 +89,5 @@ export declare function isReportChange(last: LifecycleReport | undefined, next:
88
89
  * keeps numbers moving forward anyway — a clock that steps backwards must not
89
90
  * hand Herdr a number it has already seen.
90
91
  */
91
- export declare function createReportSequence(now: () => number): () => number;
92
+ export declare function createReportSequence(): () => number;
92
93
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAML,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AAEvB,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAe7C;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQ7F;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAItE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGzE;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAG/E;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEhG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,MAAM,MAAM,CAMpE"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAML,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAA;AAEvB,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAe7C;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQ7F;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAItE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAGzE;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAG/E;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEhG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,MAAM,CAMnD"}
@@ -44,7 +44,8 @@ export function driverReportFor(payload, sessionId) {
44
44
  *
45
45
  * A wait outranks a running driver because an agent that is waiting on a
46
46
  * human is not making progress, and the wait is the only thing a reader
47
- * glancing at a wall of panes can still act on.
47
+ * glancing at a wall of panes can still act on. Background liveness keeps
48
+ * driver settlement from announcing completion while delegated work remains.
48
49
  */
49
50
  export function lifecycleReport(facts) {
50
51
  if (facts.blockedCount > 0)
@@ -75,7 +76,7 @@ export function stateLabelFor(report) {
75
76
  return undefined;
76
77
  return bounded(report.message, MAX_STATE_LABEL_CHARS);
77
78
  }
78
- /** One line of text, cut where this surface decides rather than where Herdr does. */
79
+ /** Keep tool titles readable in a sidebar row; bound them here so truncation retains the surface's ellipsis. */
79
80
  function bounded(text, limit) {
80
81
  const trimmed = text.replace(/\s+/gu, ' ').trim();
81
82
  return trimmed.length <= limit ? trimmed : `${trimmed.slice(0, limit - 1)}…`;
@@ -91,7 +92,7 @@ export function sessionStartReason(input) {
91
92
  return SESSION_START_REASONS.fork;
92
93
  return input.resumed ? SESSION_START_REASONS.resume : SESSION_START_REASONS.startup;
93
94
  }
94
- /** Whether a report would say something Herdr is not already showing. */
95
+ /** Suppress redundant pane updates when surface events leave state and message unchanged. */
95
96
  export function isReportChange(last, next) {
96
97
  return last === undefined || last.state !== next.state || last.message !== next.message;
97
98
  }
@@ -106,10 +107,10 @@ export function isReportChange(last, next) {
106
107
  * keeps numbers moving forward anyway — a clock that steps backwards must not
107
108
  * hand Herdr a number it has already seen.
108
109
  */
109
- export function createReportSequence(now) {
110
+ export function createReportSequence() {
110
111
  let sequence = 0;
111
112
  return () => {
112
- sequence = Math.max(sequence + 1, now() * SEQ_TIME_SCALE);
113
+ sequence = Math.max(sequence + 1, Date.now() * SEQ_TIME_SCALE);
113
114
  return sequence;
114
115
  };
115
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/herdr/state.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,4 @@
1
1
  import type { PresetDefinition } from '@deepseek-ai/dsh-agent-preset-registry';
2
- /**
3
- * The agent modes this bundle ships, read from the same files the harness's own
4
- * bundles declare.
5
- *
6
- * A mode names a selection, not a composition: the rows that make up an agent's
7
- * tools, prompt sections, skills, and planning belong to the bundle shipping
8
- * each of them, so a mode that listed them would mount plugins this bundle does
9
- * not own — a second registration of what the profile already composed. These
10
- * files therefore carry the preset declaration alone.
11
- *
12
- * The harness keeps one row per mode, and each surface bundle owns its own rows:
13
- * the browser bundle keeps them in its patch layer. A patch row here would be
14
- * mounted before any service exists, so the files travel with this package and
15
- * are parsed at the moment the roster row applies them to the hosting registry.
16
- */
17
- /** Modes this bundle ships, in the order the picker lists them. */
18
- export declare const PRESET_FILES: readonly ["standard", "ptc", "minimal", "cordis"];
19
2
  /**
20
3
  * Read every shipped mode.
21
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"preset-files.d.ts","sourceRoot":"","sources":["../../src/host/preset-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAG9E;;;;;;;;;;;;;;GAcG;AAEH,mEAAmE;AACnE,eAAO,MAAM,YAAY,mDAAoD,CAAA;AAK7E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,SAAS,gBAAgB,EAAE,CAQnE"}
1
+ {"version":3,"file":"preset-files.d.ts","sourceRoot":"","sources":["../../src/host/preset-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AA2B9E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,SAAS,gBAAgB,EAAE,CAWnE"}
@@ -9,7 +9,9 @@ import { load as parseYaml } from 'js-yaml';
9
9
  * tools, prompt sections, skills, and planning belong to the bundle shipping
10
10
  * each of them, so a mode that listed them would mount plugins this bundle does
11
11
  * not own — a second registration of what the profile already composed. These
12
- * files therefore carry the preset declaration alone.
12
+ * files therefore omit those profile-owned plugins. PTC alone includes tool
13
+ * presentation because tool form belongs to the preset mounting scope, not
14
+ * the session.
13
15
  *
14
16
  * The harness keeps one row per mode, and each surface bundle owns its own rows:
15
17
  * the browser bundle keeps them in its patch layer. A patch row here would be
@@ -17,7 +19,7 @@ import { load as parseYaml } from 'js-yaml';
17
19
  * are parsed at the moment the roster row applies them to the hosting registry.
18
20
  */
19
21
  /** Modes this bundle ships, in the order the picker lists them. */
20
- export const PRESET_FILES = ['standard', 'ptc', 'minimal', 'cordis'];
22
+ const PRESET_FILES = ['standard', 'ptc', 'minimal', 'cordis'];
21
23
  /** Where a packed install keeps them: beside `lib`, as the manifest declares. */
22
24
  const presetDirectory = new URL('../../presets/', import.meta.url);
23
25
  /**
@@ -30,6 +32,9 @@ const presetDirectory = new URL('../../presets/', import.meta.url);
30
32
  export function loadPresetDefinitions() {
31
33
  return PRESET_FILES.map((mode) => {
32
34
  const file = fileURLToPath(new URL(`${mode}.patch.yml`, presetDirectory));
35
+ // These package-owned declarations supply the roster, not user patch input.
36
+ // Require one row per file so missing or extra rows fail before modes mount;
37
+ // Cordis validates the extracted configs when the roster mounts the preset plugin.
33
38
  const document = parseYaml(readFileSync(file, 'utf8'));
34
39
  const rows = document.flatMap((entry) => entry?.insert ?? []);
35
40
  if (rows.length !== 1)
@@ -1 +1 @@
1
- {"version":3,"file":"preset-files.js","sourceRoot":"","sources":["../../src/host/preset-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAE3C;;;;;;;;;;;;;;GAcG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE7E,iFAAiF;AACjF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAA;QACjH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oCAAoC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAChG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,MAA0B,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"preset-files.js","sourceRoot":"","sources":["../../src/host/preset-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAE3C;;;;;;;;;;;;;;;;GAgBG;AAEH,mEAAmE;AACnE,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAEtE,iFAAiF;AACjF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA;QACzE,4EAA4E;QAC5E,6EAA6E;QAC7E,mFAAmF;QACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAA;QACjH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oCAAoC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAChG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,MAA0B,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -11,7 +11,7 @@ import type { Context } from '@deepseek-ai/cordis';
11
11
  * composition either publishes the roster or reports which service never arrived.
12
12
  */
13
13
  export declare const name = "tui-host-roster";
14
- /** The mode a session runs when nobody names one, as the shipped modes order them. */
14
+ /** Prefer program-mediated tool use for unnamed new sessions; picker order is independent. */
15
15
  export declare const DEFAULT_PRESET = "ptc";
16
16
  export declare function apply(ctx: Context): Promise<void>;
17
17
  //# sourceMappingURL=roster.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../../src/host/roster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,IAAI,oBAAoB,CAAA;AAErC,sFAAsF;AACtF,eAAO,MAAM,cAAc,QAAQ,CAAA;AAiBnC,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvD"}
1
+ {"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../../src/host/roster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,IAAI,oBAAoB,CAAA;AAErC,8FAA8F;AAC9F,eAAO,MAAM,cAAc,QAAQ,CAAA;AAiBnC,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvD"}
@@ -11,7 +11,7 @@ import { loadPresetDefinitions } from "./preset-files.js";
11
11
  * composition either publishes the roster or reports which service never arrived.
12
12
  */
13
13
  export const name = 'tui-host-roster';
14
- /** The mode a session runs when nobody names one, as the shipped modes order them. */
14
+ /** Prefer program-mediated tool use for unnamed new sessions; picker order is independent. */
15
15
  export const DEFAULT_PRESET = 'ptc';
16
16
  /**
17
17
  * Wait until a roster is really published.
@@ -29,8 +29,8 @@ function whenRosterIsUp(ctx) {
29
29
  }
30
30
  export async function apply(ctx) {
31
31
  const { default: registry } = await import('@deepseek-ai/dsh-agent-preset-registry');
32
- // The registry takes the fallback mode as its own config field and publishes its
33
- // service without the schema step a partial row config would need.
32
+ // Keep the fallback with the registry so its selected-default setting can
33
+ // override it. Cordis validates this config before the registry initializes.
34
34
  ctx.plugin(registry, { default: DEFAULT_PRESET });
35
35
  const { default: preset } = await import('@deepseek-ai/dsh-agent-preset');
36
36
  // A mode registers itself inside its own row's apply: awaiting them here is what
@@ -1 +1 @@
1
- {"version":3,"file":"roster.js","sourceRoot":"","sources":["../../src/host/roster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAErC,sFAAsF;AACtF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAA;AAEnC;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,GAAG,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAA;IACpF,iFAAiF;IACjF,mEAAmE;IACnE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;IACjD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;IACzE,iFAAiF;IACjF,gFAAgF;IAChF,oDAAoD;IACpD,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5F,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"roster.js","sourceRoot":"","sources":["../../src/host/roster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAErC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAA;AAEnC;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,GAAG,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAA;IACpF,0EAA0E;IAC1E,6EAA6E;IAC7E,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;IACjD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;IACzE,iFAAiF;IACjF,gFAAgF;IAChF,oDAAoD;IACpD,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5F,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC"}
@@ -4,11 +4,8 @@ import type { Context } from '@deepseek-ai/cordis';
4
4
  * time — the machinery behind creator mode.
5
5
  *
6
6
  * Only the Web bundle ships this row, so a terminal profile has to mount it to
7
- * offer that mode at all. The dependency is plain rather than an alias of its own
8
- * line: the runner is what reports the hosting runtime version to every row it
9
- * mounts, so a second copy of the package in a profile — which a per-line alias
10
- * exists to create — is what makes a host read itself as another release and
11
- * disable its own rows as incompatible.
7
+ * offer that mode at all. The plain dependency pins the runner to the supported
8
+ * harness release; it does not guarantee a single copy in a consumer profile.
12
9
  */
13
10
  export declare const name = "tui-host-runner";
14
11
  export declare function apply(ctx: Context): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,IAAI,oBAAoB,CAAA;AAErC,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;;GAOG;AAEH,eAAO,MAAM,IAAI,oBAAoB,CAAA;AAErC,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD"}
@@ -3,11 +3,8 @@
3
3
  * time — the machinery behind creator mode.
4
4
  *
5
5
  * Only the Web bundle ships this row, so a terminal profile has to mount it to
6
- * offer that mode at all. The dependency is plain rather than an alias of its own
7
- * line: the runner is what reports the hosting runtime version to every row it
8
- * mounts, so a second copy of the package in a profile — which a per-line alias
9
- * exists to create — is what makes a host read itself as another release and
10
- * disable its own rows as incompatible.
6
+ * offer that mode at all. The plain dependency pins the runner to the supported
7
+ * harness release; it does not guarantee a single copy in a consumer profile.
11
8
  */
12
9
  export const name = 'tui-host-runner';
13
10
  export async function apply(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAA;IAC/E,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAA;IAC/E,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACpB,CAAC"}
package/lib/identity.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { LauncherAgentIdentity } from '@deepseek-ai/dsh-agent-loop';
2
- /** A command line that cannot be resolved into one launch identity. */
2
+ /** Let startup report argument conflicts as CLI usage errors without treating unrelated failures as invalid arguments. */
3
3
  export declare class LaunchUsageError extends Error {
4
4
  }
5
- /** Resolved intent of the arguments dsh handed to this app. */
5
+ /** Separate argument validation from identity construction so startup rejects conflicts before publishing a session. */
6
6
  export interface LaunchIntent {
7
7
  /** Exact session id to resume, or empty for a fresh session. */
8
8
  readonly resumeId: string;
@@ -22,7 +22,10 @@ export declare function resolveLaunchIntent(input: {
22
22
  readonly resumeFlag: string | boolean | undefined;
23
23
  readonly newSession: boolean | undefined;
24
24
  }): LaunchIntent;
25
- /** Identity the agent-loop row would adopt when a profile configures one. */
25
+ /**
26
+ * Use the same fresh-session naming convention as /new and forks; the UUID
27
+ * distinguishes conversations. Resuming must preserve the supplied lookup key.
28
+ */
26
29
  export declare function identityOf(intent: LaunchIntent, uuid: string): LauncherAgentIdentity;
27
30
  /** Profile the surface is installed into; only used for the resume hint. */
28
31
  export declare const PROFILE_NAME = "tui";
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAExE,uEAAuE;AACvE,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,GAAG,YAAY,CAuBf;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAIpF;AAED,4EAA4E;AAC5E,eAAO,MAAM,YAAY,QAAQ,CAAA;AAEjC,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAQxE,0HAA0H;AAC1H,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C,wHAAwH;AACxH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,GAAG,YAAY,CAuBf;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAIpF;AAED,4EAA4E;AAC5E,eAAO,MAAM,YAAY,QAAQ,CAAA;AASjC,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrE"}
package/lib/identity.js CHANGED
@@ -1,5 +1,10 @@
1
1
  import { SessionId } from '@deepseek-ai/dsh-session';
2
- /** A command line that cannot be resolved into one launch identity. */
2
+ import { escapeTerminalText } from "./terminal-text.js";
3
+ const HINT_TEXT_OPTIONS = { tab: 'keep' };
4
+ const SHELL_WORD = /^[A-Za-z0-9_./:-]+$/u;
5
+ const SHELL_QUOTE = "'";
6
+ const SHELL_QUOTE_ESCAPE = "'\\''";
7
+ /** Let startup report argument conflicts as CLI usage errors without treating unrelated failures as invalid arguments. */
3
8
  export class LaunchUsageError extends Error {
4
9
  }
5
10
  /**
@@ -33,7 +38,10 @@ export function resolveLaunchIntent(input) {
33
38
  resumePicker: resumeId === '' && (mode === 'resume' || input.resumeFlag !== undefined),
34
39
  };
35
40
  }
36
- /** Identity the agent-loop row would adopt when a profile configures one. */
41
+ /**
42
+ * Use the same fresh-session naming convention as /new and forks; the UUID
43
+ * distinguishes conversations. Resuming must preserve the supplied lookup key.
44
+ */
37
45
  export function identityOf(intent, uuid) {
38
46
  return intent.resumeId === ''
39
47
  ? { id: SessionId(`tui-session-${uuid}`), resume: false }
@@ -41,8 +49,15 @@ export function identityOf(intent, uuid) {
41
49
  }
42
50
  /** Profile the surface is installed into; only used for the resume hint. */
43
51
  export const PROFILE_NAME = 'tui';
52
+ /** Pasted recovery commands must retain identity tokens rather than interpreting them as shell syntax. */
53
+ function hintToken(value) {
54
+ // Quoting already protects whitespace; tab expansion would change the identity being resumed.
55
+ const text = escapeTerminalText(value, HINT_TEXT_OPTIONS);
56
+ return SHELL_WORD.test(text) ? text : `${SHELL_QUOTE}${text.replaceAll(SHELL_QUOTE, SHELL_QUOTE_ESCAPE)}${SHELL_QUOTE}`;
57
+ }
44
58
  /** Line printed after the terminal is handed back, so the session is recoverable. */
45
59
  export function resumeHint(sessionId, profile) {
46
- return `To resume this session: dsh --profile ${profile} --resume=${sessionId}`;
60
+ // Launch arguments and stored identities must not regain terminal privileges in the shell-facing hint.
61
+ return `To resume this session: dsh --profile ${hintToken(profile)} --resume=${hintToken(sessionId)}`;
47
62
  }
48
63
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGpD,uEAAuE;AACvE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAU9C;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAKnC;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACrC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,IAAI,uBAAuB,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACrF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACtE,MAAM,IAAI,gBAAgB,CAAC,wEAAwE,CAAC,CAAA;IACtG,CAAC;IACD,IAAI,UAAU,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,gBAAgB,CAAC,+CAA+C,CAAC,CAAA;IAC7E,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1D,MAAM,eAAe,GAAG,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAA;IAChG,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,eAAe,EAAE,CAAC;QACjD,MAAM,IAAI,gBAAgB,CAAC,2DAA2D,CAAC,CAAA;IACzF,CAAC;IACD,OAAO;QACL,QAAQ;QACR,iFAAiF;QACjF,YAAY,EAAE,QAAQ,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC;KACvF,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,MAAoB,EAAE,IAAY;IAC3D,OAAO,MAAM,CAAC,QAAQ,KAAK,EAAE;QAC3B,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;QACzD,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACtD,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAA;AAEjC,qFAAqF;AACrF,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,OAAe;IAC3D,OAAO,yCAAyC,OAAO,aAAa,SAAS,EAAE,CAAA;AACjF,CAAC"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export declare const name = "tui";
10
10
  * mounts: the host row that provides it applies only once the harness's settings
11
11
  * exist, which is after `agents` and `tools` come up, so without it here the
12
12
  * surface would refuse to build against a roster that is simply not up yet.
13
+ * `tuiKeymaps` must exist before appearance captures its catalog and observer;
14
+ * otherwise the surface mounts without the addon keyboard the profile supplies.
13
15
  */
14
16
  export declare const inject: string[];
15
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAgCpC,eAAO,MAAM,IAAI,QAAQ,CAAA;AAEzB;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,UAA0D,CAAA;AAoB7E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CA6azD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAgCpC,eAAO,MAAM,IAAI,QAAQ,CAAA;AAEzB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,UAA0D,CAAA;AAE7E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAwczD"}