@agi-fans/dsh-tui 0.22.0 → 0.23.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 (279) hide show
  1. package/LICENSE +26 -0
  2. package/lib/CHANGELOG.md +199 -1
  3. package/lib/chrome/box.d.ts +1 -18
  4. package/lib/chrome/box.js +2 -45
  5. package/lib/chrome/box.js.map +1 -1
  6. package/lib/chrome/code-highlight.js +4 -4
  7. package/lib/chrome/code-highlight.js.map +1 -1
  8. package/lib/chrome/command-output.d.ts +0 -1
  9. package/lib/chrome/command-output.js +11 -5
  10. package/lib/chrome/command-output.js.map +1 -1
  11. package/lib/chrome/goal-bar.js +1 -1
  12. package/lib/chrome/goal-bar.js.map +1 -1
  13. package/lib/chrome/main-screen-renderer.js +4 -3
  14. package/lib/chrome/main-screen-renderer.js.map +1 -1
  15. package/lib/chrome/markdown.d.ts +3 -3
  16. package/lib/chrome/markdown.js +85 -36
  17. package/lib/chrome/markdown.js.map +1 -1
  18. package/lib/chrome/md-style.d.ts +5 -2
  19. package/lib/chrome/md-style.js +13 -4
  20. package/lib/chrome/md-style.js.map +1 -1
  21. package/lib/chrome/renderer.d.ts +37 -1
  22. package/lib/chrome/renderer.js.map +1 -1
  23. package/lib/chrome/status-line.d.ts +3 -3
  24. package/lib/chrome/status-line.js +5 -5
  25. package/lib/chrome/status-line.js.map +1 -1
  26. package/lib/chrome/theme.d.ts +8 -3
  27. package/lib/chrome/theme.js +51 -153
  28. package/lib/chrome/theme.js.map +1 -1
  29. package/lib/commands/auth-account.d.ts +9 -0
  30. package/lib/commands/auth-account.js +202 -0
  31. package/lib/commands/auth-account.js.map +1 -0
  32. package/lib/commands/auth.js +238 -414
  33. package/lib/commands/auth.js.map +1 -1
  34. package/lib/commands/diff.js +22 -16
  35. package/lib/commands/diff.js.map +1 -1
  36. package/lib/commands/export.d.ts +0 -1
  37. package/lib/commands/export.js +97 -32
  38. package/lib/commands/export.js.map +1 -1
  39. package/lib/commands/files.js +2 -8
  40. package/lib/commands/files.js.map +1 -1
  41. package/lib/commands/integrations.d.ts +12 -1
  42. package/lib/commands/integrations.js +120 -23
  43. package/lib/commands/integrations.js.map +1 -1
  44. package/lib/commands/jobs-browser.d.ts +3 -0
  45. package/lib/commands/jobs-browser.js +152 -0
  46. package/lib/commands/jobs-browser.js.map +1 -0
  47. package/lib/commands/jobs.d.ts +3 -14
  48. package/lib/commands/jobs.js +26 -18
  49. package/lib/commands/jobs.js.map +1 -1
  50. package/lib/commands/model.d.ts +3 -0
  51. package/lib/commands/model.js +197 -120
  52. package/lib/commands/model.js.map +1 -1
  53. package/lib/commands/open-external.d.ts +2 -0
  54. package/lib/commands/open-external.js +19 -0
  55. package/lib/commands/open-external.js.map +1 -0
  56. package/lib/commands/permission.js +65 -54
  57. package/lib/commands/permission.js.map +1 -1
  58. package/lib/commands/plugins.js +381 -139
  59. package/lib/commands/plugins.js.map +1 -1
  60. package/lib/commands/schedule-catalog.d.ts +12 -0
  61. package/lib/commands/schedule-catalog.js +41 -0
  62. package/lib/commands/schedule-catalog.js.map +1 -0
  63. package/lib/commands/schedule-history.d.ts +4 -0
  64. package/lib/commands/schedule-history.js +62 -0
  65. package/lib/commands/schedule-history.js.map +1 -0
  66. package/lib/commands/schedule.d.ts +12 -15
  67. package/lib/commands/schedule.js +220 -187
  68. package/lib/commands/schedule.js.map +1 -1
  69. package/lib/commands/session-configuration.d.ts +3 -0
  70. package/lib/commands/session-configuration.js +62 -28
  71. package/lib/commands/session-configuration.js.map +1 -1
  72. package/lib/commands/session.js +111 -66
  73. package/lib/commands/session.js.map +1 -1
  74. package/lib/commands/terminal.js +14 -8
  75. package/lib/commands/terminal.js.map +1 -1
  76. package/lib/definition.d.ts +112 -15
  77. package/lib/index.d.ts +1 -0
  78. package/lib/index.js +1 -0
  79. package/lib/index.js.map +1 -1
  80. package/lib/input/actions.d.ts +1 -1
  81. package/lib/input/actions.js +5 -2
  82. package/lib/input/actions.js.map +1 -1
  83. package/lib/input/composer-files.d.ts +2 -0
  84. package/lib/input/composer-files.js +13 -3
  85. package/lib/input/composer-files.js.map +1 -1
  86. package/lib/input/image-paste.d.ts +5 -12
  87. package/lib/input/image-paste.js +32 -28
  88. package/lib/input/image-paste.js.map +1 -1
  89. package/lib/input/key-test.d.ts +5 -0
  90. package/lib/input/key-test.js +19 -0
  91. package/lib/input/key-test.js.map +1 -0
  92. package/lib/input/keys.d.ts +2 -0
  93. package/lib/input/keys.js +4 -1
  94. package/lib/input/keys.js.map +1 -1
  95. package/lib/locale/index.d.ts +6 -0
  96. package/lib/locale/index.js +32 -0
  97. package/lib/locale/index.js.map +1 -0
  98. package/lib/locale/prompt.d.ts +4 -0
  99. package/lib/locale/prompt.js +24 -0
  100. package/lib/locale/prompt.js.map +1 -0
  101. package/lib/locale/zh.d.ts +1114 -0
  102. package/lib/locale/zh.js +1115 -0
  103. package/lib/locale/zh.js.map +1 -0
  104. package/lib/prompt-intents.d.ts +4 -0
  105. package/lib/prompt-intents.js +4 -0
  106. package/lib/prompt-intents.js.map +1 -1
  107. package/lib/runtime/account-settings.d.ts +18 -0
  108. package/lib/runtime/account-settings.js +241 -0
  109. package/lib/runtime/account-settings.js.map +1 -0
  110. package/lib/runtime/agent-profile.d.ts +3 -3
  111. package/lib/runtime/agent-profile.js +4 -4
  112. package/lib/runtime/agent-profile.js.map +1 -1
  113. package/lib/runtime/btw-policy.js +2 -1
  114. package/lib/runtime/btw-policy.js.map +1 -1
  115. package/lib/runtime/btw.js +1 -2
  116. package/lib/runtime/btw.js.map +1 -1
  117. package/lib/runtime/composer-images.d.ts +2 -2
  118. package/lib/runtime/composer-images.js +4 -4
  119. package/lib/runtime/composer-images.js.map +1 -1
  120. package/lib/runtime/composer-shell.js +27 -1
  121. package/lib/runtime/composer-shell.js.map +1 -1
  122. package/lib/runtime/file-browser.d.ts +19 -0
  123. package/lib/runtime/file-browser.js +291 -0
  124. package/lib/runtime/file-browser.js.map +1 -0
  125. package/lib/runtime/file-review.d.ts +6 -9
  126. package/lib/runtime/file-review.js +91 -7
  127. package/lib/runtime/file-review.js.map +1 -1
  128. package/lib/runtime/help-reader.d.ts +12 -0
  129. package/lib/runtime/help-reader.js +50 -0
  130. package/lib/runtime/help-reader.js.map +1 -0
  131. package/lib/runtime/human-interaction.js +1 -1
  132. package/lib/runtime/human-interaction.js.map +1 -1
  133. package/lib/runtime/model-catalog-editor.d.ts +12 -0
  134. package/lib/runtime/model-catalog-editor.js +215 -0
  135. package/lib/runtime/model-catalog-editor.js.map +1 -0
  136. package/lib/runtime/model-settings.d.ts +11 -0
  137. package/lib/runtime/model-settings.js +404 -0
  138. package/lib/runtime/model-settings.js.map +1 -0
  139. package/lib/runtime/plugin-settings.d.ts +4 -1
  140. package/lib/runtime/plugin-settings.js +164 -88
  141. package/lib/runtime/plugin-settings.js.map +1 -1
  142. package/lib/runtime/prompt-browser.d.ts +9 -0
  143. package/lib/runtime/prompt-browser.js +19 -0
  144. package/lib/runtime/prompt-browser.js.map +1 -0
  145. package/lib/runtime/provider-local.d.ts +27 -27
  146. package/lib/runtime/provider-local.js +1264 -308
  147. package/lib/runtime/provider-local.js.map +1 -1
  148. package/lib/runtime/reference-reader.d.ts +15 -0
  149. package/lib/runtime/reference-reader.js +78 -0
  150. package/lib/runtime/reference-reader.js.map +1 -0
  151. package/lib/runtime/runner.js +38 -29
  152. package/lib/runtime/runner.js.map +1 -1
  153. package/lib/runtime/session-runtime.js +1 -1
  154. package/lib/runtime/session-runtime.js.map +1 -1
  155. package/lib/runtime/settings-draft.d.ts +21 -0
  156. package/lib/runtime/settings-draft.js +166 -0
  157. package/lib/runtime/settings-draft.js.map +1 -0
  158. package/lib/runtime/settings-preferences.js +1 -1
  159. package/lib/runtime/settings-preferences.js.map +1 -1
  160. package/lib/runtime/startup-notices.d.ts +0 -1
  161. package/lib/runtime/startup-notices.js +35 -6
  162. package/lib/runtime/startup-notices.js.map +1 -1
  163. package/lib/runtime/subagent-model-selection.js +2 -1
  164. package/lib/runtime/subagent-model-selection.js.map +1 -1
  165. package/lib/runtime/subagent-settings.d.ts +14 -0
  166. package/lib/runtime/subagent-settings.js +288 -0
  167. package/lib/runtime/subagent-settings.js.map +1 -0
  168. package/lib/runtime/terminal-notifications.d.ts +3 -0
  169. package/lib/runtime/terminal-notifications.js +13 -8
  170. package/lib/runtime/terminal-notifications.js.map +1 -1
  171. package/lib/runtime/terminal-probe.d.ts +2 -0
  172. package/lib/runtime/terminal-probe.js +9 -0
  173. package/lib/runtime/terminal-probe.js.map +1 -1
  174. package/lib/runtime/tool-presentation.js.map +1 -1
  175. package/lib/runtime/tool-reader.d.ts +5 -0
  176. package/lib/runtime/tool-reader.js +27 -0
  177. package/lib/runtime/tool-reader.js.map +1 -0
  178. package/lib/runtime/web-settings.d.ts +14 -0
  179. package/lib/runtime/web-settings.js +339 -0
  180. package/lib/runtime/web-settings.js.map +1 -0
  181. package/lib/session/command-attachments.d.ts +17 -0
  182. package/lib/session/command-attachments.js +50 -0
  183. package/lib/session/command-attachments.js.map +1 -0
  184. package/lib/session/context-diagnostics.d.ts +16 -0
  185. package/lib/session/context-diagnostics.js +15 -0
  186. package/lib/session/context-diagnostics.js.map +1 -1
  187. package/lib/session/external-agents.d.ts +3 -1
  188. package/lib/session/external-agents.js +35 -10
  189. package/lib/session/external-agents.js.map +1 -1
  190. package/lib/session/generation-continuation.d.ts +11 -0
  191. package/lib/session/generation-continuation.js +34 -0
  192. package/lib/session/generation-continuation.js.map +1 -0
  193. package/lib/session/goal-controls.d.ts +5 -0
  194. package/lib/session/goal-controls.js +81 -0
  195. package/lib/session/goal-controls.js.map +1 -0
  196. package/lib/session/interaction-adapter.d.ts +7 -3
  197. package/lib/session/interaction-adapter.js +121 -49
  198. package/lib/session/interaction-adapter.js.map +1 -1
  199. package/lib/session/message-queue.d.ts +2 -0
  200. package/lib/session/message-queue.js +102 -17
  201. package/lib/session/message-queue.js.map +1 -1
  202. package/lib/session/pending-inputs.d.ts +30 -0
  203. package/lib/session/pending-inputs.js +183 -0
  204. package/lib/session/pending-inputs.js.map +1 -0
  205. package/lib/session/session-configuration.js +1 -1
  206. package/lib/session/session-configuration.js.map +1 -1
  207. package/lib/session/session-controller.d.ts +32 -13
  208. package/lib/session/session-controller.js +444 -98
  209. package/lib/session/session-controller.js.map +1 -1
  210. package/lib/session/subagent-roster.d.ts +1 -0
  211. package/lib/session/subagent-roster.js +16 -5
  212. package/lib/session/subagent-roster.js.map +1 -1
  213. package/lib/session/subagent-tracker.d.ts +2 -0
  214. package/lib/session/subagent-tracker.js +18 -0
  215. package/lib/session/subagent-tracker.js.map +1 -1
  216. package/lib/session/tui-settings.d.ts +9 -5
  217. package/lib/session/tui-settings.js +3 -1
  218. package/lib/session/tui-settings.js.map +1 -1
  219. package/lib/session/workflow-projection.d.ts +2 -1
  220. package/lib/session/workflow-projection.js +34 -4
  221. package/lib/session/workflow-projection.js.map +1 -1
  222. package/lib/views/autocomplete.d.ts +10 -7
  223. package/lib/views/autocomplete.js +44 -37
  224. package/lib/views/autocomplete.js.map +1 -1
  225. package/lib/views/context-overview.d.ts +4 -0
  226. package/lib/views/context-overview.js +43 -0
  227. package/lib/views/context-overview.js.map +1 -0
  228. package/lib/views/copy-targets.d.ts +6 -2
  229. package/lib/views/copy-targets.js +19 -14
  230. package/lib/views/copy-targets.js.map +1 -1
  231. package/lib/views/document-reader.d.ts +10 -1
  232. package/lib/views/document-reader.js +59 -5
  233. package/lib/views/document-reader.js.map +1 -1
  234. package/lib/views/event-views.js +29 -11
  235. package/lib/views/event-views.js.map +1 -1
  236. package/lib/views/file-actions.js +21 -0
  237. package/lib/views/file-actions.js.map +1 -1
  238. package/lib/views/file-browser.d.ts +98 -0
  239. package/lib/views/file-browser.js +120 -0
  240. package/lib/views/file-browser.js.map +1 -0
  241. package/lib/views/history-search.js +4 -4
  242. package/lib/views/history-search.js.map +1 -1
  243. package/lib/views/hotkey-format.d.ts +3 -2
  244. package/lib/views/hotkey-format.js +4 -3
  245. package/lib/views/hotkey-format.js.map +1 -1
  246. package/lib/views/hotkeys.js +10 -12
  247. package/lib/views/hotkeys.js.map +1 -1
  248. package/lib/views/list-view.js +16 -11
  249. package/lib/views/list-view.js.map +1 -1
  250. package/lib/views/prompt-selector.d.ts +23 -1
  251. package/lib/views/prompt-selector.js +123 -60
  252. package/lib/views/prompt-selector.js.map +1 -1
  253. package/lib/views/settings-list.d.ts +6 -1
  254. package/lib/views/settings-list.js +69 -46
  255. package/lib/views/settings-list.js.map +1 -1
  256. package/lib/views/tool-actions.d.ts +16 -0
  257. package/lib/views/tool-actions.js +29 -0
  258. package/lib/views/tool-actions.js.map +1 -0
  259. package/lib/views/trajectory-timeline.d.ts +5 -6
  260. package/lib/views/trajectory-timeline.js +25 -15
  261. package/lib/views/trajectory-timeline.js.map +1 -1
  262. package/lib/views/trajectory.d.ts +23 -2
  263. package/lib/views/trajectory.js +404 -186
  264. package/lib/views/trajectory.js.map +1 -1
  265. package/lib/views/transcript-render.d.ts +39 -15
  266. package/lib/views/transcript-render.js +406 -208
  267. package/lib/views/transcript-render.js.map +1 -1
  268. package/lib/views/transcript-types.d.ts +3 -2
  269. package/lib/views/transcript-types.js.map +1 -1
  270. package/lib/views/workflow.d.ts +16 -0
  271. package/lib/views/workflow.js +42 -0
  272. package/lib/views/workflow.js.map +1 -0
  273. package/package.json +61 -58
  274. package/lib/chrome/welcome-tips.d.ts +0 -23
  275. package/lib/chrome/welcome-tips.js +0 -24
  276. package/lib/chrome/welcome-tips.js.map +0 -1
  277. package/lib/session/steering.d.ts +0 -3
  278. package/lib/session/steering.js +0 -9
  279. package/lib/session/steering.js.map +0 -1
@@ -6,7 +6,7 @@ export function queuedMessages(agent, pending) {
6
6
  ...['next-step', 'next-turn'].flatMap(target => (target === 'next-step' ? agent.inbox.nextStep : agent.inbox.nextTurn)
7
7
  .filter(message => message.source.kind === 'user')
8
8
  .map(message => ({ key: `${target}:${message.id}`, id: message.id, target, text: blocksText(message.content), value: message }))),
9
- ...pending.list().map(({ id, submission }) => ({ key: `delivery:${id}`, id, target: 'delivery', text: submission.text, value: submission })),
9
+ ...pending.list().map(({ id, submission, recovered }) => ({ ...(recovered ? { recovered: true } : {}), key: `delivery:${id}`, id, target: 'delivery', text: submission.text, value: submission })),
10
10
  ];
11
11
  }
12
12
  /** Swap adjacent human entries atomically; internal messages remain owned by their plugins. */
@@ -33,20 +33,28 @@ export function editedQueuedMessage(message, text) {
33
33
  const { id: _id, role: _role, ...input } = message;
34
34
  return createUserMessage({ ...input, content: [...(text === '' ? [] : [{ type: 'text', text }]), ...attachments] });
35
35
  }
36
+ /** Replace text while preserving the relative order of the draft's attachments. */
37
+ function editedSubmission(original, text) {
38
+ if (text === original.text)
39
+ return original;
40
+ return { ...original, text, ...(original.segments === undefined ? {} : {
41
+ segments: [{ kind: 'text', text }, ...original.segments.filter(segment => segment.kind !== 'text')],
42
+ }) };
43
+ }
36
44
  function queueOptions(rows) {
37
45
  const ordinals = new Map();
38
46
  return rows.map(row => {
39
47
  const ordinal = (ordinals.get(row.target) ?? 0) + 1;
40
48
  ordinals.set(row.target, ordinal);
41
- const label = row.target === 'next-step' ? 'Guidance' : row.target === 'next-turn' ? 'Next turn' : 'Waiting';
49
+ const label = row.target === 'next-step' ? 'Steer · next step' : row.target === 'next-turn' ? 'Queue · next turn' : row.recovered ? 'Recovered · review before sending' : 'Sending · not yet accepted';
42
50
  const submission = row.target === 'delivery' ? row.value : undefined;
43
51
  const message = row.target === 'delivery' ? undefined : row.value;
44
52
  const images = submission?.images.length ?? message?.content.filter(block => block.type === 'image').length ?? 0;
45
53
  const files = submission?.files?.length ?? message?.content.filter(block => block.type === 'file').length ?? 0;
46
54
  const attachments = [images > 0 ? `${images} image${images === 1 ? '' : 's'}` : '', files > 0 ? `${files} file${files === 1 ? '' : 's'}` : ''].filter(Boolean).join(' · ');
47
- return { label: `${label} · ${ordinal} · ${truncateToWidth(row.text.replace(/\s+/gu, ' ').trim(), 120) || attachments || 'Empty message'}`, value: row.key,
55
+ return { badge: { label, tone: 'muted' }, label: `${ordinal} · ${truncateToWidth(row.text.replace(/\s+/gu, ' ').trim(), 120) || attachments || 'Empty message'}`, value: row.key,
48
56
  preview: row.text.length > 8192 ? row.text.slice(0, 8192) + '\n…' : row.text,
49
- description: attachments || (row.target === 'delivery' ? 'Waiting to queue' : row.target === 'next-step' ? 'Before the next model step' : 'After the current turn'), submitLabel: 'edit' };
57
+ description: attachments, submitLabel: 'edit' };
50
58
  });
51
59
  }
52
60
  export async function openMessageQueue(options) {
@@ -67,14 +75,19 @@ export async function openMessageQueue(options) {
67
75
  }
68
76
  return choices;
69
77
  };
70
- const answer = await tui.prompt({ title: 'Message Queue', question: 'Moves stay within Guidance, Next turn, or Waiting.',
71
- notify: false, onSuperseded: () => { superseded = true; }, options: refresh(), refreshOptions: refresh, presentation: 'card', filterable: true, allowCustom: false,
78
+ const initialOptions = refresh();
79
+ const recovered = rows.some(row => row.recovered);
80
+ const answer = await tui.prompt({ title: 'Message Queue',
81
+ ...(options.ownerLabel === undefined ? {} : { detail: options.ownerLabel }),
82
+ question: recovered ? 'Steer: next step · Queue: next turn · Recovered: Alt+R sends the selected input.' : 'Steer: next step · Queue: next turn · Sending: not yet accepted.',
83
+ localize: ['title', 'question', 'actions'],
84
+ notify: false, onSuperseded: () => { superseded = true; }, options: initialOptions, refreshOptions: refresh, presentation: 'card', filterable: true, allowCustom: false,
72
85
  ...(selected === undefined ? {} : { initialValue: selected }), emptyText: 'No pending messages.', submitLabel: 'edit', signal,
73
- actions: [{ key: 'Alt+D', label: 'delete', valuePrefix: 'delete:' }, { key: 'Alt+Up', label: 'move earlier', valuePrefix: 'up:' }, { key: 'Alt+Down', label: 'move later', valuePrefix: 'down:' }] });
86
+ actions: [...(recovered ? [{ key: 'Alt+R', label: 'send recovered', valuePrefix: 'release:' }] : []), { key: 'Alt+S', label: 'steer next step', valuePrefix: 'steer:' }, { key: 'Alt+D', label: 'withdraw', valuePrefix: 'delete:' }, { key: 'Alt+Up', label: 'move earlier', valuePrefix: 'up:' }, { key: 'Alt+Down', label: 'move later', valuePrefix: 'down:' }] });
74
87
  if (answer === null)
75
88
  return;
76
89
  check();
77
- const action = /^(delete|up|down):/u.exec(answer)?.[1];
90
+ const action = /^(release|steer|delete|up|down):/u.exec(answer)?.[1];
78
91
  const key = action === undefined ? answer : answer.slice(action.length + 1);
79
92
  const row = queuedMessages(agent, tui.pendingInputs).find(item => item.key === key);
80
93
  if (row === undefined) {
@@ -84,6 +97,68 @@ export async function openMessageQueue(options) {
84
97
  selected = key;
85
98
  let editDraft;
86
99
  try {
100
+ if (action === 'release') {
101
+ if (row.target !== 'delivery' || !row.recovered) {
102
+ tui.notice('Select a recovered input to send.');
103
+ continue;
104
+ }
105
+ tui.pendingInputs.update(row.id, { kind: 'release' });
106
+ return;
107
+ }
108
+ if (action === 'steer') {
109
+ if (row.target !== 'next-turn') {
110
+ tui.notice('Select an accepted Queue message to steer.');
111
+ continue;
112
+ }
113
+ if (agent.status !== 'running') {
114
+ tui.notice('Steering needs an active turn. The message stays queued.');
115
+ continue;
116
+ }
117
+ const message = row.value;
118
+ // Rehydrate before withdrawing so even a failed rollback can retain the complete input.
119
+ const draft = { ...await restore(message), literal: true };
120
+ check();
121
+ const index = agent.inbox.nextTurn.findIndex(item => item.id === message.id && item === message);
122
+ if (index < 0) {
123
+ tui.notice('That message is no longer pending.');
124
+ continue;
125
+ }
126
+ if (agent.status !== 'running') {
127
+ tui.notice('Steering needs an active turn. The message stays queued.');
128
+ continue;
129
+ }
130
+ const offset = agent.session.snapshotEvents().length;
131
+ try {
132
+ if (!agent.inbox.remove(message.id)) {
133
+ tui.notice('That message is no longer pending.');
134
+ continue;
135
+ }
136
+ check();
137
+ if (agent.status !== 'running')
138
+ throw new Error('Steering needs an active turn. The message stays queued.');
139
+ agent.steer(message);
140
+ }
141
+ catch (error) {
142
+ // A subscriber can throw after the append committed. Never queue an accepted message twice.
143
+ const accepted = agent.session.snapshotEvents().slice(offset).some(event => event.type === 'agent/inbox/spliced' && event.data.inserted.some(item => item.id === message.id));
144
+ const pending = [...agent.inbox.nextTurn, ...agent.inbox.nextStep].some(item => item.id === message.id);
145
+ if (!accepted && !pending) {
146
+ try {
147
+ agent.inbox.splice('next-turn', index, 0, [message]);
148
+ }
149
+ catch {
150
+ if (!agent.inbox.nextTurn.some(item => item.id === message.id)) {
151
+ tui.restoreInput(draft);
152
+ tui.notice('Could not steer or restore the queue entry. The message and attachments are now an unsent draft.', { level: 'error' });
153
+ return;
154
+ }
155
+ }
156
+ }
157
+ throw error;
158
+ }
159
+ selected = `next-step:${message.id}`;
160
+ continue;
161
+ }
87
162
  if (action === 'up' || action === 'down') {
88
163
  const direction = action === 'up' ? -1 : 1;
89
164
  if (row.target === 'delivery')
@@ -109,12 +184,18 @@ export async function openMessageQueue(options) {
109
184
  tui.notice('That message is no longer pending.');
110
185
  continue;
111
186
  }
112
- const text = await tui.prompt({ title: 'Edit Queued Message', question: 'Enter saves · Alt+Enter inserts a line · Esc cancels. Images and files are kept.',
187
+ const text = await tui.prompt({ title: 'Edit Queued Message', localize: ['title', 'question'],
188
+ ...(options.ownerLabel === undefined ? {} : { detail: options.ownerLabel }), question: 'Enter saves · Alt+Enter inserts a line · Esc cancels. Images and files are kept.',
113
189
  notify: false, initialInput: row.text, preserveWhitespace: true, allowCustom: true, signal,
190
+ onCancelDraft: input => {
191
+ // Session replacement aborts before changing draft scope. Rescue into the old session only.
192
+ if (signal.aborted && input !== row.text)
193
+ tui.restoreInput(editedSubmission(original, input));
194
+ },
114
195
  onSuperseded: input => {
115
196
  superseded = true;
116
197
  if (input !== row.text) {
117
- tui.restoreInput({ ...original, text: input });
198
+ tui.restoreInput(editedSubmission(original, input));
118
199
  tui.notice('Queue closed for a request for input. Your edit is an unsent draft; the queued message is unchanged.');
119
200
  }
120
201
  } });
@@ -123,12 +204,15 @@ export async function openMessageQueue(options) {
123
204
  return;
124
205
  continue;
125
206
  }
126
- check();
127
- const draft = { ...original, text };
207
+ const draft = editedSubmission(original, text);
128
208
  editDraft = draft;
209
+ check();
129
210
  let replaced;
130
- if (row.target === 'delivery')
211
+ if (row.target === 'delivery') {
212
+ if (text.trim() === '' && draft.images.length === 0 && !draft.files?.length)
213
+ throw new Error('Enter a message, or delete the queue entry.');
131
214
  replaced = tui.pendingInputs.update(row.id, { kind: 'replace', submission: draft });
215
+ }
132
216
  else {
133
217
  const replacement = editedQueuedMessage(row.value, text);
134
218
  replaced = agent.inbox.replace(row.value.id, replacement);
@@ -142,14 +226,15 @@ export async function openMessageQueue(options) {
142
226
  }
143
227
  }
144
228
  catch (error) {
145
- if (signal.aborted)
146
- throw error;
147
- assertActive();
148
229
  if (editDraft !== undefined) {
149
230
  tui.restoreInput(editDraft);
150
- tui.notice(`Could not save the queue edit; it is restored as an unsent draft. ${error instanceof Error ? error.message : String(error)}`, { level: 'error' });
231
+ if (!signal.aborted)
232
+ tui.notice(`Could not save the queue edit; it is restored as an unsent draft. ${error instanceof Error ? error.message : String(error)}`, { level: 'error' });
151
233
  return;
152
234
  }
235
+ if (signal.aborted)
236
+ throw error;
237
+ assertActive();
153
238
  tui.notice(error instanceof Error ? error.message : String(error), { level: 'error' });
154
239
  }
155
240
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../../src/session/message-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../../src/session/message-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { TuiSubmission } from '../definition.ts';
2
+ interface Receipt {
3
+ id: string;
4
+ sessionId: string;
5
+ messageId?: string;
6
+ recovered?: boolean;
7
+ }
8
+ interface PendingSession {
9
+ queued: TuiSubmission[];
10
+ newer: TuiSubmission[] | null;
11
+ sending: Set<TuiSubmission>;
12
+ fingerprint?: string;
13
+ damaged?: boolean;
14
+ }
15
+ export declare class PendingInputs {
16
+ #private;
17
+ private readonly root;
18
+ private readonly report;
19
+ constructor(root: string | undefined, report: (action: 'save' | 'restore', error: unknown) => void);
20
+ session(id: string): PendingSession;
21
+ bindInitial(sessionId: string): void;
22
+ receipt(submission: TuiSubmission): Receipt | undefined;
23
+ identify(submission: TuiSubmission, sessionId: string): Receipt;
24
+ take(submission: TuiSubmission, sessionId: string): void;
25
+ prepare(submission: TuiSubmission, messageId: string): void;
26
+ finish(submission: TuiSubmission): void;
27
+ reconcile(sessionId: string, accepted: ReadonlySet<string>): void;
28
+ flush(sessionId: string): void;
29
+ }
30
+ export {};
@@ -0,0 +1,183 @@
1
+ /** Session-scoped input recovery. Harness owns messages after admission. */
2
+ import { createHash, randomUUID } from 'node:crypto';
3
+ import { existsSync, rmSync } from 'node:fs';
4
+ import { join } from 'node:path';
5
+ import { readJsonFile, writeJsonAtomic } from "./json-file.js";
6
+ const object = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
7
+ const digest = (value) => createHash('sha256').update(value).digest('hex');
8
+ const ordinal = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
9
+ function decode(value) {
10
+ if (!object(value) || typeof value.text !== 'string' || !Array.isArray(value.images)
11
+ || value.literal !== undefined && typeof value.literal !== 'boolean'
12
+ || value.delivery !== undefined && value.delivery !== 'queue' && value.delivery !== 'steer')
13
+ throw new Error('Saved pending input is invalid.');
14
+ const images = value.images.map(image => {
15
+ if (!object(image) || typeof image.data !== 'string' || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u.test(image.data)
16
+ || !['image/png', 'image/jpeg', 'image/gif', 'image/webp'].includes(String(image.mediaType))
17
+ || image.name !== undefined && typeof image.name !== 'string'
18
+ || image.width !== undefined && (!ordinal(image.width) || image.width === 0)
19
+ || image.height !== undefined && (!ordinal(image.height) || image.height === 0))
20
+ throw new Error('Saved pending image is invalid.');
21
+ const data = new Uint8Array(Buffer.from(image.data, 'base64'));
22
+ if (typeof image.sha256 !== 'string' || digest(data) !== image.sha256)
23
+ throw new Error('Saved pending image is incomplete.');
24
+ const { sha256: _hash, ...metadata } = image;
25
+ return { ...metadata, data };
26
+ });
27
+ if (value.files !== undefined && (!Array.isArray(value.files) || value.files.some(file => !object(file)
28
+ || typeof file.attachmentId !== 'string' || typeof file.name !== 'string' || !ordinal(file.bytes))))
29
+ throw new Error('Saved pending file is invalid.');
30
+ const files = value.files;
31
+ if (value.segments !== undefined && (!Array.isArray(value.segments) || value.segments.some(segment => !object(segment)
32
+ || (segment.kind === 'text' ? typeof segment.text !== 'string' : segment.kind === 'image' || segment.kind === 'file'
33
+ ? !ordinal(segment.index) || segment.index >= (segment.kind === 'image' ? images.length : files?.length ?? 0) : true))))
34
+ throw new Error('Saved pending attachment order is invalid.');
35
+ return { text: value.text, images, ...(files === undefined ? {} : { files }),
36
+ ...(value.literal === undefined ? {} : { literal: value.literal }),
37
+ ...(value.delivery === undefined ? {} : { delivery: value.delivery }),
38
+ ...(value.segments === undefined ? {} : { segments: value.segments }) };
39
+ }
40
+ export class PendingInputs {
41
+ root;
42
+ report;
43
+ #sessions = new Map();
44
+ #receipts = new WeakMap();
45
+ #imageData = new WeakMap();
46
+ #versions = new WeakMap();
47
+ #serial = 0;
48
+ #saveError = false;
49
+ constructor(root, report) {
50
+ this.root = root;
51
+ this.report = report;
52
+ }
53
+ #path(id) {
54
+ return this.root === undefined ? undefined : join(this.root, createHash('sha256').update(id).digest('hex') + '.json');
55
+ }
56
+ session(id) {
57
+ const existing = this.#sessions.get(id);
58
+ if (existing !== undefined)
59
+ return existing;
60
+ const state = { queued: [], newer: null, sending: new Set() };
61
+ this.#sessions.set(id, state);
62
+ const path = this.#path(id);
63
+ if (path !== undefined && existsSync(path)) {
64
+ try {
65
+ const raw = readJsonFile(path);
66
+ if (!object(raw) || raw.version !== 1 || raw.session !== id || !Array.isArray(raw.entries))
67
+ throw new Error('Saved pending inputs are invalid.');
68
+ const identities = new Set();
69
+ const entries = raw.entries.map(entry => {
70
+ if (!object(entry) || typeof entry.id !== 'string' || entry.messageId !== undefined && typeof entry.messageId !== 'string')
71
+ throw new Error('Saved pending receipt is invalid.');
72
+ if (identities.has(entry.id))
73
+ throw new Error('Saved pending receipt is duplicated.');
74
+ identities.add(entry.id);
75
+ const submission = decode(entry.submission);
76
+ this.#receipts.set(submission, { id: entry.id, sessionId: id, recovered: true,
77
+ ...(entry.messageId === undefined ? {} : { messageId: entry.messageId }) });
78
+ return submission;
79
+ });
80
+ state.queued.push(...entries);
81
+ }
82
+ catch (error) {
83
+ state.damaged = true;
84
+ this.report('restore', error);
85
+ }
86
+ }
87
+ return state;
88
+ }
89
+ bindInitial(sessionId) {
90
+ const initial = this.#sessions.get('__default__');
91
+ if (initial === undefined)
92
+ return;
93
+ const target = this.session(sessionId);
94
+ target.queued.unshift(...initial.queued);
95
+ for (const submission of initial.queued)
96
+ this.identify(submission, '__default__').sessionId = sessionId;
97
+ initial.queued = [];
98
+ this.flush(sessionId);
99
+ this.flush('__default__');
100
+ }
101
+ receipt(submission) { return this.#receipts.get(submission); }
102
+ identify(submission, sessionId) {
103
+ let receipt = this.receipt(submission);
104
+ if (receipt === undefined) {
105
+ receipt = { id: randomUUID(), sessionId };
106
+ this.#receipts.set(submission, receipt);
107
+ }
108
+ return receipt;
109
+ }
110
+ take(submission, sessionId) {
111
+ this.identify(submission, sessionId);
112
+ this.session(sessionId).sending.add(submission);
113
+ this.flush(sessionId);
114
+ }
115
+ prepare(submission, messageId) {
116
+ const receipt = this.receipt(submission);
117
+ if (receipt === undefined)
118
+ return;
119
+ receipt.messageId = messageId;
120
+ this.flush(receipt.sessionId);
121
+ }
122
+ finish(submission) {
123
+ const receipt = this.receipt(submission);
124
+ if (receipt === undefined)
125
+ return;
126
+ this.session(receipt.sessionId).sending.delete(submission);
127
+ this.flush(receipt.sessionId);
128
+ }
129
+ reconcile(sessionId, accepted) {
130
+ const state = this.session(sessionId);
131
+ state.queued = state.queued.filter(submission => {
132
+ const receipt = this.receipt(submission);
133
+ return receipt?.messageId === undefined || !accepted.has(receipt.messageId);
134
+ });
135
+ this.flush(sessionId);
136
+ }
137
+ flush(sessionId) {
138
+ const state = this.session(sessionId);
139
+ const entries = [...state.sending, ...state.queued, ...(state.newer ?? [])].map(submission => {
140
+ const receipt = this.identify(submission, sessionId);
141
+ let version = this.#versions.get(submission);
142
+ if (version === undefined) {
143
+ version = ++this.#serial;
144
+ this.#versions.set(submission, version);
145
+ }
146
+ return { submission, receipt, version };
147
+ });
148
+ const fingerprint = entries.map(({ receipt, version }) => `${version}:${receipt.messageId ?? ''}`).join(',');
149
+ if (state.fingerprint === fingerprint || state.damaged && entries.length === 0)
150
+ return;
151
+ const path = this.#path(sessionId);
152
+ if (path === undefined) {
153
+ state.fingerprint = fingerprint;
154
+ return;
155
+ }
156
+ try {
157
+ if (entries.length === 0)
158
+ rmSync(path, { force: true });
159
+ else
160
+ writeJsonAtomic(path, { version: 1, session: sessionId, entries: entries.map(({ submission, receipt }) => ({
161
+ id: receipt.id, ...(receipt.messageId === undefined ? {} : { messageId: receipt.messageId }),
162
+ submission: { ...submission, images: submission.images.map(({ data, ...image }) => {
163
+ let encoded = this.#imageData.get(data);
164
+ if (encoded === undefined) {
165
+ encoded = { data: Buffer.from(data).toString('base64'), sha256: digest(data) };
166
+ this.#imageData.set(data, encoded);
167
+ }
168
+ return { ...image, ...encoded };
169
+ }) },
170
+ })) });
171
+ state.fingerprint = fingerprint;
172
+ state.damaged = false;
173
+ this.#saveError = false;
174
+ }
175
+ catch (error) {
176
+ if (!this.#saveError) {
177
+ this.#saveError = true;
178
+ this.report('save', error);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ //# sourceMappingURL=pending-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-inputs.js","sourceRoot":"","sources":["../../src/session/pending-inputs.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export function formatAgentPreset(id) {
28
28
  if (id === 'minimal')
29
29
  return 'Minimal';
30
30
  if (id === 'cordis')
31
- return 'Cordis';
31
+ return 'Creator';
32
32
  return id;
33
33
  }
34
34
  //# sourceMappingURL=session-configuration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-configuration.js","sourceRoot":"","sources":["../../src/session/session-configuration.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,yBAAyB,EAAgB,MAAM,0BAA0B,CAAA;AAElF;;;GAGG;AACH,SAAS,gCAAgC;IACtC,yBAAyC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACxE,CAAC;AAED,gCAAgC,EAAE,CAAA;AAElC,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACrD,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB;WACzE,KAAK,CAAC,IAAI,KAAK,iBAAiB;WAChC,KAAK,CAAC,IAAI,KAAK,YAAY;WAC3B,KAAK,CAAC,IAAI,KAAK,YAAY;WAC3B,KAAK,CAAC,IAAI,KAAK,mBAAmB;WAClC,KAAK,CAAC,IAAI,KAAK,WAAW;WAC1B,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,UAAU,CAAA;IACxC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAC/B,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACtC,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACpC,OAAO,EAAE,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"session-configuration.js","sourceRoot":"","sources":["../../src/session/session-configuration.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,yBAAyB,EAAgB,MAAM,0BAA0B,CAAA;AAElF;;;GAGG;AACH,SAAS,gCAAgC;IACtC,yBAAyC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACxE,CAAC;AAED,gCAAgC,EAAE,CAAA;AAElC,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACrD,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB;WACzE,KAAK,CAAC,IAAI,KAAK,iBAAiB;WAChC,KAAK,CAAC,IAAI,KAAK,YAAY;WAC3B,KAAK,CAAC,IAAI,KAAK,YAAY;WAC3B,KAAK,CAAC,IAAI,KAAK,mBAAmB;WAClC,KAAK,CAAC,IAAI,KAAK,WAAW;WAC1B,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,UAAU,CAAA;IACxC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IAC/B,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACtC,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACrC,OAAO,EAAE,CAAA;AACX,CAAC"}
@@ -11,7 +11,7 @@ import { type Agent, type ModelSelection } from '@deepseek-ai/dsh-agent';
11
11
  import type { AgentPreset } from '@deepseek-ai/dsh-agent-preset-registry';
12
12
  import { type ContentBlock, type LlmResolvedModelInfo, type UserMessage } from '@deepseek-ai/dsh-llm';
13
13
  import type { ImageAttachmentRef, SaveImageAttachment, StoredImageAttachment } from '@deepseek-ai/dsh-attachment';
14
- import type { CommandSubmitAttachment } from '@deepseek-ai/dsh-commands';
14
+ export { encodeCommandAttachments } from './command-attachments.ts';
15
15
  import type { PermissionSelection } from '@deepseek-ai/dsh-permission-presets/types';
16
16
  import type { PlanProjection } from '@deepseek-ai/dsh-plan-mode/types';
17
17
  import { type SkillSummary } from '@deepseek-ai/dsh-skill';
@@ -21,7 +21,7 @@ import { type SessionEvent } from '@deepseek-ai/dsh-session';
21
21
  import type { GoalProjection } from '@deepseek-ai/dsh-goal/types';
22
22
  import type { UserQuestionProjectionView } from '@deepseek-ai/dsh-user-questions';
23
23
  export { conversationTurns, type ConversationTurn } from './conversation-turns.ts';
24
- import type { TuiCommand, TuiRecentSession, TuiService, TuiSessionControls, TuiSessionStats, TuiSubmission, TuiInputImage } from '../definition.ts';
24
+ import type { TuiCommand, TuiRecentSession, TuiService, TuiSessionControls, TuiSessionStats, TuiSubmission, TuiQueueEditRequest, TuiInputImage } from '../definition.ts';
25
25
  import type { ContextDiagnostics } from './context-diagnostics.ts';
26
26
  /** Projection values consumed as one consistent snapshot when the units exist. */
27
27
  export interface TuiStatsProjection {
@@ -37,7 +37,10 @@ export interface TuiStatsProjection {
37
37
  sandboxMode?: 'read-only' | 'workspace-write' | 'danger-full-access' | null;
38
38
  }
39
39
  /** Present only the session controls whose owning Harness plugins are composed. */
40
- export declare function sessionControls(projection?: TuiStatsProjection): TuiSessionControls;
40
+ export declare function sessionControls(projection?: TuiStatsProjection, livePlan?: {
41
+ active: boolean;
42
+ pending?: boolean;
43
+ }): TuiSessionControls;
41
44
  /** Composer projection of a Harness model selection and its adapter default. */
42
45
  export declare function modelStatus(selection: ModelSelection, info?: Pick<LlmResolvedModelInfo, 'reasoning'>): {
43
46
  model: string;
@@ -62,7 +65,7 @@ export declare function recentSessionContent(events: readonly SessionEvent[]): {
62
65
  preview?: string;
63
66
  } | undefined;
64
67
  /** Convert the human-visible part of a skill catalog into slash commands. */
65
- export declare function userSkillCommands(skills: readonly SkillSummary[]): TuiCommand[];
68
+ export declare function userSkillCommands(skills: readonly SkillSummary[], reserved?: ReadonlySet<string>): TuiCommand[];
66
69
  interface SubmissionAttachmentStore {
67
70
  saveImages(inputs: readonly SaveImageAttachment[]): Promise<readonly ImageAttachmentRef[]>;
68
71
  }
@@ -76,44 +79,60 @@ export declare function createSubmissionMessage(submission: TuiSubmission, attac
76
79
  kind: "user";
77
80
  };
78
81
  } & Pick<UserMessage, "id" | "role">>;
79
- /** Encode composer drafts for `ctx.commands.execute`. */
80
- export declare function encodeCommandAttachments(images: readonly TuiInputImage[]): CommandSubmitAttachment[];
81
82
  /** Rehydrate one durable human inbox message into an editable composer draft. */
82
83
  export declare function restoreSubmissionMessage(message: UserMessage, attachments?: RestoreAttachmentStore): Promise<TuiSubmission>;
84
+ /** The live selection succeeded, but the profile default still needs saving. */
85
+ export declare class DefaultModelSaveError extends Error {
86
+ constructor(selection: ModelSelection, cause: unknown);
87
+ }
83
88
  /** Own one switchable top-level Agent and project it onto a TuiService. */
84
89
  export declare class SessionRuntime {
85
90
  #private;
86
91
  constructor(ctx: Context, tui: TuiService, options?: {
87
92
  stateDir?: string;
88
93
  });
94
+ /** Presentation requests from a replaced root must not survive into its successor. */
95
+ get interactionSignal(): AbortSignal;
89
96
  get agent(): Agent | undefined;
90
97
  /**
91
98
  * Interrupt the visible continuable child when one is inspected.
92
99
  * @returns true when this consumed the gesture so the parent turn stays running.
93
100
  */
94
101
  interruptVisible(): boolean;
102
+ /** Accept only live descendants of the active root for shared approval prompts. */
103
+ beginSubagentApproval(agent: Agent): {
104
+ label: string;
105
+ signal: AbortSignal;
106
+ finish(): void;
107
+ } | undefined;
95
108
  start(): Promise<void>;
96
- /** Submit one human composer value; active turns retain it as a later follow-up. */
109
+ /** Admit a complete composer value through the selected Harness inbox entry. */
97
110
  send(input: string | TuiSubmission, agent?: Agent): Promise<void>;
98
- openQueue(signal: AbortSignal, agent?: Agent): Promise<void>;
99
- /** Remove and rehydrate the newest durable human follow-up for queue browsing. */
100
- editLatestFollowup(agent?: Agent): Promise<TuiSubmission | undefined>;
111
+ /** Wake an eligible failed generation with empty retry input; never duplicate the original prompt. */
112
+ continueGeneration(agent?: Agent, expectedFailure?: number, signal?: AbortSignal): Promise<void>;
113
+ /** Explicitly resend the complete latest human message with a fresh Harness identity. */
114
+ retryLastPrompt(agent?: Agent, signal?: AbortSignal): Promise<boolean>;
115
+ openQueue(signal: AbortSignal, requestingAgent?: Agent): Promise<void>;
116
+ /** Inspect durable membership; only a currently running, owned local member can be opened. */
117
+ openWorkflow(id: string): Promise<void>;
118
+ /** Rehydrate before withdrawing so navigation or missing attachments leave the inbox intact. */
119
+ editLatestFollowup(request?: TuiQueueEditRequest): Promise<TuiSubmission | undefined>;
101
120
  /** Execute a plugin-owned slash command, falling back to user-invocable skills. */
102
- execute(line: string, signal: AbortSignal, images?: readonly TuiInputImage[]): Promise<boolean>;
121
+ execute(input: string | TuiSubmission, signal: AbortSignal, images?: readonly TuiInputImage[]): Promise<boolean>;
103
122
  /** Fail when a command invocation targets a stale or background Agent. */
104
123
  assertActive(agent: Agent): void;
105
124
  /** Shared local metadata document for Session Library and Tree actions. */
106
125
  get sessionLibraryPath(): string;
107
126
  /** Immutable recent-session view used by the resume command. */
108
127
  get recentSessions(): readonly TuiRecentSession[];
109
- /** Current model selection for the active Agent. */
128
+ /** Current model selection for the active Agent, read from its durable projection. */
110
129
  selection(agent?: Agent): ModelSelection;
111
130
  /** Replace the active Agent's selection, optionally persisting it as the next default. */
112
131
  changeSelection(agent: Agent, selection: ModelSelection, info?: LlmResolvedModelInfo, options?: {
113
132
  persist?: boolean;
114
133
  }): Promise<void>;
115
134
  /** Start a new top-level session with the current model selection. */
116
- newSession(agent: Agent): Promise<void>;
135
+ newSession(agent: Agent, presetId?: string): Promise<void>;
117
136
  /** Replace the active top-level session with one durable session. */
118
137
  resumeSession(agent: Agent, id: string, signal: AbortSignal): Promise<void>;
119
138
  /** Rename a live or durable top-level session through the public log-backed title service. */