dsh-input-traffic 0.2.6 → 0.2.7

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.
package/README.en.md CHANGED
@@ -15,6 +15,10 @@
15
15
 
16
16
  A cordis client plugin assembled via the `dsh plugin` command and a bundle patch — no dsh source changes, no PR required.
17
17
 
18
+ > 💡 **Why "Freeze session" is recommended**: DeepSeek moved to **peak/off-peak billing** on 2026-08-17 — the peak window (Beijing time 09:00-12:00, 14:00-18:00) costs **2×** the off-peak rate (all other hours, including lunch, night, weekends and holidays). If a long-running session spans the expensive window, manually freezing pauses API consumption and resuming off-peak can save up to **50%**.
19
+ >
20
+ > **Suggested pairing for now**: use it together with a **reminder** plugin (e.g. [dsh-notify](https://github.com/zhengjy01/dsh-notify), desktop notifications when it is time to freeze/resume) and a **billing/usage** plugin (e.g. [dsh-deepseek-usage](https://github.com/yyb16yyb-hub/dsh-deepseek-usage), [dsh-cost-tracker](https://github.com/yflmq001/dsh-cost-tracker), [dsh-billing-balance](https://github.com/YZz-S/dsh-billing-balance), to verify actual spend around a freeze) — a "remind → freeze → resume off-peak → verify" saving loop.
21
+
18
22
  ## What it does
19
23
 
20
24
  - **Three tiers coexist**: while the agent is busy, every input lands in a waiting area first, then you choose when it enters the conversation — no longer a single "interrupt" or a single "queue":
@@ -55,7 +59,11 @@ Layout sketch of the waiting area and the freeze button in a session page:
55
59
 
56
60
  > Why red is cancel + remove + resend: the harness inbox rejects inserting a message that is already pending; steering the original message after an interrupt would be rejected and strand the message (see FAQ).
57
61
 
58
- ## Session freeze / resume (peak-hour pause)
62
+ ## Session freeze / resume (peak-hour pause) ⭐ Recommended
63
+
64
+ > **Cost-saving role**: this is the plugin's **core recommended feature** for DeepSeek's peak/off-peak billing (effective 2026-08-17) — the peak window (09:00-12:00, 14:00-18:00) costs double, off-peak is half price. Freezing pauses non-urgent work until off-peak hours, directly avoiding the expensive window; long-running sessions can save up to half the cost.
65
+ >
66
+ > **Suggested pairing**: a **reminder** plugin (e.g. [dsh-notify](https://github.com/zhengjy01/dsh-notify)) notifies you to freeze/resume when entering or leaving the peak window; a **billing/usage** plugin (e.g. [dsh-deepseek-usage](https://github.com/yyb16yyb-hub/dsh-deepseek-usage), [dsh-cost-tracker](https://github.com/yflmq001/dsh-cost-tracker), [dsh-billing-balance](https://github.com/YZz-S/dsh-billing-balance)) verifies the actual spend around a freeze.
59
67
 
60
68
  The "Freeze session / Resume session" button on the composer's right (beside the send button) pauses API consumption near DeepSeek peak pricing hours:
61
69
 
@@ -149,7 +157,7 @@ npm run lint:fix # auto-fix what can be fixed
149
157
  - 🔴 Red = interrupt — stop the current action, the message is processed right away;
150
158
  - 🟢 Green = keep queued (the default); on an already-steered message, green revokes it back to the queue;
151
159
  3. Reorder / re-edit: use move up/down, "Edit in composer", or the multi-line inline editor (Enter saves, Shift+Enter newline);
152
- 4. Near peak hours: press "Freeze session" on the composer's right; the session pauses after the current turn; press "Resume session" during off-peak hours to continue.
160
+ 4. **Cost-saving key (recommended)**: near the peak window (09:00-12:00, 14:00-18:00), press "Freeze session" on the composer's right; the session pauses after the current turn, avoiding the expensive window; press "Resume session" off-peak to continue. Pair with reminder / billing plugins (see "Recommended" above).
153
161
 
154
162
  ## FAQ
155
163
 
package/README.md CHANGED
@@ -15,6 +15,10 @@
15
15
 
16
16
  无需修改 dsh 源码、无需提 PR:`dsh plugin` 命令组装 + bundle patch 装配的 cordis client 插件。
17
17
 
18
+ > 💡 **为什么推荐「冻结会话」**:DeepSeek 已于 2026-08-17 实行**峰谷计费**——高峰时段(北京时间 9:00-12:00、14:00-18:00)单价为闲时(其余时段,含午间、夜间、周末与节假日)的 **2 倍**。长跑型会话若跨越高价窗口,手动冻结暂停 API 消耗、错峰再恢复,费用最多可省 **50%**。
19
+ >
20
+ > **目前建议搭配**:配合**一般提醒**插件(如 [dsh-notify](https://github.com/zhengjy01/dsh-notify),到点桌面提醒「该冻结/该恢复」)与**计费统计**插件(如 [dsh-deepseek-usage](https://github.com/yyb16yyb-hub/dsh-deepseek-usage)、[dsh-cost-tracker](https://github.com/yflmq001/dsh-cost-tracker)、[dsh-billing-balance](https://github.com/YZz-S/dsh-billing-balance),核对冻结前后的实际花费),形成「提醒 → 冻结 → 错峰恢复 → 对账」的省钱闭环。
21
+
18
22
  ## 它能做什么
19
23
 
20
24
  - **三档插入并存**:智能体忙碌时,每一条输入都先进入等待区,再按需选择何时进入对话——不再只有一个"打断"或只有一个"排队":
@@ -55,7 +59,11 @@
55
59
 
56
60
  > 红色为什么是 cancel + remove + resend:harness 的 inbox 禁止重复插入同一条消息,打断后直接 steer 会被拒绝导致消息滞留(详见「常见问题」)。
57
61
 
58
- ## 会话冻结 / 恢复(高峰期暂停)
62
+ ## 会话冻结 / 恢复(高峰期暂停)⭐ 推荐
63
+
64
+ > **省钱定位**:这是本插件面向 DeepSeek 峰谷计费(2026-08-17 生效)的**核心推荐功能**——高峰时段(9:00-12:00、14:00-18:00)单价翻倍、闲时半价。手动冻结把不紧急的生成「暂停」到闲时再恢复,直接规避高价窗口,长跑型会话最多省一半费用。
65
+ >
66
+ > **建议搭配**:**一般提醒**插件(如 [dsh-notify](https://github.com/zhengjy01/dsh-notify))在进入/离开高峰时段时提醒你手动冻结/恢复;**计费统计**插件(如 [dsh-deepseek-usage](https://github.com/yyb16yyb-hub/dsh-deepseek-usage)、[dsh-cost-tracker](https://github.com/yflmq001/dsh-cost-tracker)、[dsh-billing-balance](https://github.com/YZz-S/dsh-billing-balance))在冻结前后核对实际花费。
59
67
 
60
68
  输入框右侧(发送按钮旁)的「冻结会话 / 恢复会话」按钮,用于即将进入 DeepSeek 高峰收费时段时暂停 API 消耗:
61
69
 
@@ -111,7 +119,7 @@ dsh web
111
119
  npm install --legacy-peer-deps # @deepseek-ai client 包链在 npm 上不完整,仅装工具链
112
120
  npm run build # tsc(lib/types)+ tsdown(lib/index.js + lib/client.js)
113
121
  node examples/verify-assembly.mjs # 12 项装配断言
114
- npm test # 36 项 vitest 组件测试
122
+ npm test # 45 项 vitest 组件测试
115
123
  npm run lint # ESLint(src + tests,flat config)
116
124
  npm run verify # 一体化门禁:lint + test + build + verify-assembly
117
125
  ```
@@ -149,7 +157,7 @@ npm run lint:fix # 自动修复可修复项
149
157
  - 🔴 红色 = 打断——立即中断当前动作,消息随后被处理;
150
158
  - 🟢 绿色 = 保持排队(当前默认态);对已插话的消息点绿 = 收回排队;
151
159
  3. 需要调整顺序 / 修改内容:用上移下移、打回输入框编辑或多行编辑(Enter 保存、Shift+Enter 换行);
152
- 4. 邻近高峰时段:点击输入框右侧「冻结会话」,当前轮次完成后自动暂停;非高价时间点「恢复会话」继续。
160
+ 4. **省钱关键(推荐)**:邻近高峰时段(9:00-12:00、14:00-18:00)点击输入框右侧「冻结会话」,当前轮次完成后自动暂停,避开高价窗口;闲时点「恢复会话」继续。可配合提醒 / 计费统计插件使用(见上文「推荐」)。
153
161
 
154
162
  ## 常见问题
155
163
 
package/lib/client.js CHANGED
@@ -205,42 +205,42 @@ window.__ModuleLoader__.load({
205
205
  document.head.appendChild(tag);
206
206
  }
207
207
  var steer_queue_dock_module_css_default = {
208
+ "badge": "cev0eq_badge",
209
+ "editor": "cev0eq_editor",
210
+ "panel": "cev0eq_panel",
211
+ "freeze": "cev0eq_freeze",
212
+ "header": "cev0eq_header",
208
213
  "count": "cev0eq_count",
209
- "action": "cev0eq_action",
210
- "actions": "cev0eq_actions",
214
+ "dot": "cev0eq_dot",
211
215
  "tier": "cev0eq_tier",
216
+ "chevron": "cev0eq_chevron",
217
+ "clearLabel": "cev0eq_clearLabel",
218
+ "tierNow": "cev0eq_tierNow",
219
+ "steeringList": "cev0eq_steeringList",
220
+ "row": "cev0eq_row",
221
+ "frozenMark": "cev0eq_frozenMark",
212
222
  "tierLater": "cev0eq_tierLater",
223
+ "actions": "cev0eq_actions",
224
+ "dock": "cev0eq_dock",
225
+ "clear": "cev0eq_clear",
213
226
  "tierNext": "cev0eq_tierNext",
214
- "chevron": "cev0eq_chevron",
215
- "clearCancel": "cev0eq_clearCancel",
216
- "frozenRow": "cev0eq_frozenRow",
217
- "frozenList": "cev0eq_frozenList",
227
+ "frozenBanner": "cev0eq_frozenBanner",
228
+ "action": "cev0eq_action",
229
+ "badgeNow": "cev0eq_badgeNow",
218
230
  "toolbar": "cev0eq_toolbar",
219
- "freeze": "cev0eq_freeze",
220
- "badge": "cev0eq_badge",
221
- "header": "cev0eq_header",
222
- "toolbarActions": "cev0eq_toolbarActions",
223
- "badgeNext": "cev0eq_badgeNext",
224
- "editor": "cev0eq_editor",
225
- "lead": "cev0eq_lead",
226
- "badgeLabel": "cev0eq_badgeLabel",
231
+ "list": "cev0eq_list",
227
232
  "clearConfirm": "cev0eq_clearConfirm",
228
- "dock": "cev0eq_dock",
229
- "badgeNow": "cev0eq_badgeNow",
230
233
  "preview": "cev0eq_preview",
231
- "panel": "cev0eq_panel",
232
- "frozenBanner": "cev0eq_frozenBanner",
233
- "row": "cev0eq_row",
234
- "steeringList": "cev0eq_steeringList",
235
- "clearLabel": "cev0eq_clearLabel",
236
- "tierNow": "cev0eq_tierNow",
237
- "badgeLater": "cev0eq_badgeLater",
238
- "dot": "cev0eq_dot",
239
- "list": "cev0eq_list",
234
+ "badgeLabel": "cev0eq_badgeLabel",
240
235
  "plan": "cev0eq_plan",
241
- "frozenMark": "cev0eq_frozenMark",
236
+ "clearCancel": "cev0eq_clearCancel",
242
237
  "rowDragOver": "cev0eq_rowDragOver",
243
- "clear": "cev0eq_clear"
238
+ "toolbarActions": "cev0eq_toolbarActions",
239
+ "lead": "cev0eq_lead",
240
+ "frozenList": "cev0eq_frozenList",
241
+ "badgeNext": "cev0eq_badgeNext",
242
+ "badgeLater": "cev0eq_badgeLater",
243
+ "frozenRow": "cev0eq_frozenRow"
244
244
  };
245
245
  //#endregion
246
246
  //#region src/client/steer-queue-dock.tsx
@@ -1198,15 +1198,15 @@ window.__ModuleLoader__.load({
1198
1198
  * Freeze/resume toggle for the peak-hour scenario.
1199
1199
  * @param props - slot props; the session snapshot drives the detach list.
1200
1200
  */
1201
- function FreezeButton({ session, updateQueue, cancel, send, notify, t }) {
1201
+ function FreezeButton({ session, updateQueue, cancel, send, sendSteer, notify, t }) {
1202
1202
  const { frozen } = (0, react.useSyncExternalStore)(freezeStore.subscribe, freezeStore.getSnapshot);
1203
1203
  const freeze = async () => {
1204
- const queued = session.queue.filter((row) => row.placement === "queued");
1205
- const pending = queued.flatMap((row) => row.text === null ? [] : [{
1204
+ const rows = session.queue.filter((row) => row.placement === "queued" || row.placement === "steering");
1205
+ const pending = rows.flatMap((row) => row.text === null ? [] : [{
1206
1206
  text: row.text,
1207
- tier: "queue"
1207
+ tier: row.placement === "steering" ? "safe_point" : "queue"
1208
1208
  }]);
1209
- await Promise.all(queued.map((row) => updateQueue(row.id, { kind: "remove" }).catch(() => void 0)));
1209
+ await Promise.all(rows.map((row) => updateQueue(row.id, { kind: "remove" }).catch(() => void 0)));
1210
1210
  freezeStore.set({
1211
1211
  frozen: true,
1212
1212
  pending
@@ -1221,7 +1221,8 @@ window.__ModuleLoader__.load({
1221
1221
  try {
1222
1222
  for (const entry of pending) {
1223
1223
  if (entry.tier === "force") await cancel();
1224
- await send(entry.text);
1224
+ if (entry.tier === "safe_point") await sendSteer(entry.text);
1225
+ else await send(entry.text);
1225
1226
  }
1226
1227
  } catch {
1227
1228
  notify("error", t("steer.resumeFailed"));
@@ -1255,6 +1256,30 @@ window.__ModuleLoader__.load({
1255
1256
  const CONVERSATION_SETTINGS_NAMESPACE = "ui-conversation";
1256
1257
  /** Busy-Enter field inside that namespace; the plugin pins it to queue. */
1257
1258
  const BUSY_ENTER_FIELD = "busyEnter";
1259
+ /**
1260
+ * Deliver one plain-text message into the session's next step. The exposed
1261
+ * conversation `send` verb only queues into the next turn, so resume steers
1262
+ * through the session face's steer-mode prompt instead (no harness change).
1263
+ * @param ctx - root context (resolves the session face behind the scope).
1264
+ * @param actx - agent-scoped context of the owning session.
1265
+ * @param text - message text to deliver.
1266
+ */
1267
+ function steerPrompt(ctx, actx, text) {
1268
+ const session = ctx.sessions.sessionOf(actx);
1269
+ if (session === void 0) return Promise.reject(/* @__PURE__ */ new Error("steer resume: session scope unavailable"));
1270
+ return session.prompt([{
1271
+ type: "text",
1272
+ text
1273
+ }], "steer").then((result) => {
1274
+ if (!result.ok) {
1275
+ const error = result.error ?? {
1276
+ code: "unknown",
1277
+ message: "steer prompt rejected"
1278
+ };
1279
+ throw new Error(`conversation.sendSteer failed: ${error.code}: ${error.message}`);
1280
+ }
1281
+ });
1282
+ }
1258
1283
  /** Services required by the browser half. */
1259
1284
  const inject = [
1260
1285
  "slots",
@@ -1289,6 +1314,7 @@ window.__ModuleLoader__.load({
1289
1314
  updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
1290
1315
  cancel: () => conversation.cancel(),
1291
1316
  send: (text) => conversation.send(text),
1317
+ sendSteer: (text) => steerPrompt(ctx, actx, text),
1292
1318
  setDraft: (text) => {
1293
1319
  conversation.input.for(actx).actions.setDraft(text);
1294
1320
  },
@@ -1312,6 +1338,7 @@ window.__ModuleLoader__.load({
1312
1338
  updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
1313
1339
  cancel: () => conversation.cancel(),
1314
1340
  send: (text) => conversation.send(text),
1341
+ sendSteer: (text) => steerPrompt(ctx, actx, text),
1315
1342
  setDraft: (text) => {
1316
1343
  conversation.input.for(actx).actions.setDraft(text);
1317
1344
  },
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","names":["useMemo","useState","useRef","useSyncExternalStore","useId","css","IconQueueOutline14","IconChevronDownOutline14","IconChevronUpOutline14","Tooltip","IconTrashOutline16","IconCheckOutline16","IconCloseOutline16","IconEditOutline16","IconRightUpOutline16","useSyncExternalStore","css"],"sources":["src/client/locales.ts","src/client/freeze-store.ts","src/client/steer-queue-dock.tsx","src/client/freeze-button.tsx","src/client/hide-enter-row.tsx","src/client/index.ts"],"sourcesContent":["/** `steer` namespace dictionaries. */\r\n\r\n/** Dictionary namespace owned by this plugin. */\r\nexport const NS = 'steer'\r\n\r\n/** Simplified Chinese dictionary (the key-set source of truth). */\r\nexport const zh = {\r\n 'queue.count': '{n} 条排队消息',\r\n 'queue.edit': '编辑排队消息',\r\n 'queue.edit.unsupported': '包含非文本内容,暂不支持编辑',\r\n 'queue.save': '保存排队消息',\r\n 'queue.cancelEdit': '取消编辑',\r\n 'queue.remove': '删除排队消息',\r\n 'queue.removeFailed': '删除失败:这条消息可能已经开始发送。',\r\n 'queue.editFailed': '编辑失败:这条消息可能已经开始发送。',\r\n 'queue.editFailed.pulledBack': '编辑失败,内容已退回主输入框,请确认后重新发送。',\r\n 'steer.inflight': '{n} 条正在插入',\r\n 'steer.now': '打断并输入',\r\n 'steer.now.aria': '红色:打断当前动作并立即输入',\r\n 'steer.now.unsupported': '包含非文本内容,暂不支持打断',\r\n 'steer.nowFailed': '打断失败,请重试。',\r\n 'steer.next': '插话发送',\r\n 'steer.next.aria': '黄色:当前动作结束后插入输入',\r\n 'steer.nextFailed': '插话发送失败,请重试。',\r\n 'steer.later': '排队到下一轮',\r\n 'steer.later.aria': '绿色:排队,上一轮输入的动作都结束后再处理',\r\n 'steer.revoke': '收回排队',\r\n 'steer.revoke.aria': '绿色:撤销插入,收回排队(下一轮处理)',\r\n 'steer.revoke.unsupported': '包含非文本内容,暂不支持收回',\r\n 'steer.revokeFailed': '收回排队失败,请重试。',\r\n 'steer.moveUp': '上移',\r\n 'steer.moveDown': '下移',\r\n 'steer.reorder.unsupported': '包含非文本内容,暂不支持排序',\r\n 'steer.reorderFailed': '调整顺序失败,请重试。',\r\n 'steer.reorderStale': '队列已变化,本次排序已取消,请重试。',\r\n 'steer.dragReorder': '拖动调整顺序',\r\n 'steer.pullBack': '打回输入框编辑',\r\n 'steer.pullBack.unsupported': '包含非文本内容,暂不支持打回编辑',\r\n 'steer.pullBack.composerBusy': '主输入框已有内容,请先发送或清空后再打回',\r\n 'steer.pullBackFailed': '打回输入框失败,请重试。',\r\n 'steer.badge.now': '打断中',\r\n 'steer.badge.next': '插话中',\r\n 'steer.badge.later': '排队',\r\n 'steer.unavailable.running': '仅运行中可规划',\r\n 'steer.clear': '取消并清空',\r\n 'steer.clear.confirm': '确认清空?',\r\n 'steer.clear.cancel': '取消清空',\r\n 'steer.clear.aria': '取消当前执行并清空全部排队消息',\r\n 'steer.clearFailed': '取消并清空失败,请重试。',\r\n 'steer.freeze': '冻结会话',\r\n 'steer.resume': '恢复会话',\r\n 'steer.frozen': '已冻结:当前轮次完成后暂停,排队消息将在恢复后继续',\r\n 'steer.frozenBadge': '已冻结',\r\n 'steer.freezeFailed': '冻结失败,请重试。',\r\n 'steer.resumeFailed': '恢复失败,请重试。',\r\n} satisfies Record<string, string>\r\n\r\n/** English dictionary (keys mirror zh). */\r\nexport const en: Record<keyof typeof zh, string> = {\r\n 'queue.count': '{n} queued messages',\r\n 'queue.edit': 'Edit queued message',\r\n 'queue.edit.unsupported': 'Contains non-text content; editing is unsupported',\r\n 'queue.save': 'Save queued message',\r\n 'queue.cancelEdit': 'Cancel edit',\r\n 'queue.remove': 'Remove queued message',\r\n 'queue.removeFailed': 'Remove failed: the message may have started sending.',\r\n 'queue.editFailed': 'Edit failed: the message may have started sending.',\r\n 'queue.editFailed.pulledBack': 'Edit failed; the content was moved back to the composer, please review and resend.',\r\n 'steer.inflight': '{n} inserting',\r\n 'steer.now': 'Interrupt and send',\r\n 'steer.now.aria': 'Red: interrupt the running action and send now',\r\n 'steer.now.unsupported': 'Contains non-text content; interrupting is unsupported',\r\n 'steer.nowFailed': 'Interrupt failed, please retry.',\r\n 'steer.next': 'Send after action',\r\n 'steer.next.aria': 'Yellow: insert after the current action finishes',\r\n 'steer.nextFailed': 'Steering failed, please retry.',\r\n 'steer.later': 'Queue for next turn',\r\n 'steer.later.aria': 'Green: queue; processed after all previously steered actions finish',\r\n 'steer.revoke': 'Pull back to queue',\r\n 'steer.revoke.aria': 'Green: revoke the insertion and queue for the next turn',\r\n 'steer.revoke.unsupported': 'Contains non-text content; revoking is unsupported',\r\n 'steer.revokeFailed': 'Revoke failed, please retry.',\r\n 'steer.moveUp': 'Move up',\r\n 'steer.moveDown': 'Move down',\r\n 'steer.reorder.unsupported': 'Contains non-text content; reordering is unsupported',\r\n 'steer.reorderFailed': 'Reorder failed, please retry.',\r\n 'steer.reorderStale': 'The queue changed; this reorder was cancelled, please retry.',\r\n 'steer.dragReorder': 'Drag to reorder',\r\n 'steer.pullBack': 'Edit in composer',\r\n 'steer.pullBack.unsupported': 'Contains non-text content; pulling back is unsupported',\r\n 'steer.pullBack.composerBusy': 'The composer already has content; send or clear it first',\r\n 'steer.pullBackFailed': 'Pull back failed, please retry.',\r\n 'steer.badge.now': 'interrupting',\r\n 'steer.badge.next': 'steering',\r\n 'steer.badge.later': 'queued',\r\n 'steer.unavailable.running': 'Planning requires a running session',\r\n 'steer.clear': 'Cancel and clear',\r\n 'steer.clear.confirm': 'Confirm clear?',\r\n 'steer.clear.cancel': 'Cancel clearing',\r\n 'steer.clear.aria': 'Cancel the current run and clear all queued messages',\r\n 'steer.clearFailed': 'Cancel and clear failed, please retry.',\r\n 'steer.freeze': 'Freeze session',\r\n 'steer.resume': 'Resume session',\r\n 'steer.frozen': 'Frozen: the current turn finishes, then the queue pauses until resumed',\r\n 'steer.frozenBadge': 'frozen',\r\n 'steer.freezeFailed': 'Freeze failed, please retry.',\r\n 'steer.resumeFailed': 'Resume failed, please retry.',\r\n}\r\n\r\n/** Dictionary key union. */\r\nexport type SteerKey = keyof typeof zh\r\n","/**\r\n * Session-freeze store shared by the composer freeze button (the control)\r\n * and the steering dock (the banner/disabled states).\r\n *\r\n * The queue is fully decoupled from freezing: freezing only stops the agent\n * from consuming the queue (the detached entries are preserved here so the\r\n * driver finds no pending work and stops). While frozen the entries stay\r\n * fully editable — text, order and the planned insertion tier (now/next/\r\n * later) can all change; resume re-submits the queue honoring those tiers.\r\n */\r\n\r\n/** Insertion tier planned for one detached queued message. */\r\nexport type FrozenTier = 'queue' | 'safe_point' | 'force'\r\n\r\n/** One detached queued message with its planned insertion tier. */\r\nexport interface FrozenEntry {\r\n text: string\r\n tier: FrozenTier\r\n}\r\n\r\nexport interface FreezeState {\r\n frozen: boolean\r\n /** Detached queued messages in FIFO order, each with a planned tier. */\r\n pending: readonly FrozenEntry[]\r\n}\r\n\r\nconst listeners = new Set<() => void>()\r\nlet state: FreezeState = { frozen: false, pending: [] }\r\n\r\n/** Minimal snapshot store (no runtime dependency, stable identity per mount). */\r\nexport const freezeStore = {\r\n getSnapshot(): FreezeState {\r\n return state\r\n },\r\n subscribe(listener: () => void): () => void {\r\n listeners.add(listener)\r\n return () => { listeners.delete(listener) }\r\n },\r\n set(next: FreezeState): void {\r\n state = next\r\n for (const listener of listeners) listener()\r\n },\r\n}\r\n\r\n/** Reset for tests. */\r\nexport function resetFreezeStore(): void {\r\n state = { frozen: false, pending: [] }\r\n for (const listener of listeners) listener()\r\n}\r\n\r\n/** Append one queued message while frozen (new input lands in the detached queue). */\r\nexport function pushPending(text: string, tier: FrozenTier = 'queue'): void {\r\n state = { ...state, pending: [...state.pending, { text, tier }] }\r\n emit()\r\n}\r\n\r\n/** Edit one detached queued message's text in place. */\r\nexport function updatePendingAt(index: number, text: string): void {\r\n const pending = [...state.pending]\r\n if (index < 0 || index >= pending.length) return\r\n const entry = pending[index]\r\n if (entry === undefined) return\r\n pending[index] = { ...entry, text }\r\n state = { ...state, pending }\r\n emit()\r\n}\r\n\r\n/** Change one detached queued message's planned insertion tier. */\r\nexport function setTierAt(index: number, tier: FrozenTier): void {\r\n const pending = [...state.pending]\r\n if (index < 0 || index >= pending.length) return\r\n const entry = pending[index]\r\n if (entry === undefined) return\r\n pending[index] = { ...entry, tier }\r\n state = { ...state, pending }\r\n emit()\r\n}\r\n\r\n/** Remove one detached queued message. */\r\nexport function removePendingAt(index: number): void {\r\n if (index < 0 || index >= state.pending.length) return\r\n state = { ...state, pending: state.pending.filter((_, i) => i !== index) }\r\n emit()\r\n}\r\n\r\n/** Move one detached queued message to a new position (reorder while frozen). */\r\nexport function movePending(from: number, to: number): void {\r\n if (from === to) return\r\n const pending = [...state.pending]\r\n const [moved] = pending.splice(from, 1)\r\n if (moved === undefined) return\r\n pending.splice(to, 0, moved)\r\n state = { ...state, pending }\r\n emit()\r\n}\r\n\r\nfunction emit(): void {\r\n for (const listener of listeners) listener()\r\n}\r\n","/**\r\n * Three-tier steering queue dock: the shadowing replacement for the official\r\n * `conversation.input.dock` entry (same cell id `queue`, priority -1, so the\r\n * lower priority wins and the official QueueDock never renders while this\r\n * plugin is mounted).\r\n *\r\n * Every queued row carries three planning buttons:\r\n * - green (later, the default state): the row already queues for the next\r\n * turn —plain Enter keeps feeding rows here; pressing green on a row that\r\n * was already steered (yellow) revokes the insertion and pulls it back to\r\n * later (the yellow flow is reversible);\r\n * - yellow (next): strict-steer the row into the running turn, consumed at\r\n * the next step boundary (after the current action finishes);\r\n * - red (now): cancel the running turn, then remove the row and re-send its\r\n * text as a fresh message —the re-send arms the harness wake latch (the\r\n * converged driver restarts) and the interrupted input is processed as the\r\n * next turn's input. A plain steer after cancel would re-insert a message\r\n * that is already pending in next-turn and the inbox rejects it.\r\n *\r\n * The toolbar also exposes a queue-level \"cancel and clear\" that stops the\r\n * current run and removes every queued row, plus a session-level\r\n * freeze/resume toggle for the peak-hour scenario: freeze stops the current\r\n * run while preserving the queue (keepInbox), resume re-arms the driver by\r\n * re-sending the first queued row so the preserved work continues.\r\n */\r\nimport { useEffect, useId, useMemo, useRef, useState, useSyncExternalStore } from 'react'\r\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\n// Type-only: the conversation slot/contract declarations (module augmentation\r\n// for the SlotMap and the session standard kit). No value import crosses the\r\n// plugin boundary.\r\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\r\nimport {\r\n IconCheckOutline16, IconChevronDownOutline14, IconChevronUpOutline14, IconCloseOutline16,\r\n IconEditOutline16, IconQueueOutline14, IconRightUpOutline16, IconTrashOutline16, Tooltip,\r\n} from '@deepseek-ai/dsh-client-ui-primitives'\r\nimport { freezeStore, setTierAt, updatePendingAt, removePendingAt, movePending } from './freeze-store.ts'\r\nimport css from './steer-queue-dock.module.css'\r\n\r\n/** One mutation accepted by the conversation queue verb. */\r\nexport type SteerQueueAction =\r\n | { kind: 'edit'; content: readonly { type: 'text'; text: string }[] }\r\n | { kind: 'remove' }\r\n | { kind: 'steer' }\r\n\r\n/** Busy marker for a whole-queue rebuild (reorder); locks every row action. */\r\nconst REORDER_MARK = '__reorder__'\r\n\r\n/** localStorage key for the manual collapse state (dsh-queue-plus parity). */\r\nconst COLLAPSE_KEY = 'dsh-input-traffic:collapsed'\r\n\r\n/** Queue operations injected by the session-scoped registration. */\r\nexport interface SteerQueueDockInjected {\r\n updateQueue: (itemId: string, action: SteerQueueAction) => Promise<void>\r\n /** Cancel the current turn while preserving the pending queue. */\r\n cancel: () => Promise<void>\r\n /** Re-send one plain-text message as a queued follow-up (the revoke path). */\r\n send: (text: string) => Promise<void>\r\n /** Back-fill the composer draft (the pull-back-to-composer edit path). */\r\n setDraft: (text: string) => void\r\n notify: (level: 'info' | 'error', text: string) => void\r\n}\r\n\r\n/** Full props of a dock entry: InputZone owner share + session standard kit + global seat + the locale seat. */\r\nexport type SteerQueueDockProps = PropsRuntime<'conversation.input.dock'> & SteerQueueDockInjected & PropsLocale<'steer'>\r\n\r\n/** The planning tier of one queued row. */\r\nexport type SteerTier = 'now' | 'next' | 'later'\r\n\r\n/**\r\n * Resolve the action sequence for one planning button press. Pure so the\r\n * button wiring and its tests share one truth.\r\n * @param tier - the pressed planning tier.\r\n * @returns the queue mutation (red re-uses a steer-shaped action for the\r\n * yellow branch; the red branch performs cancel + remove + resend instead).\r\n */\r\nexport function planActionFor(tier: SteerTier): { action: SteerQueueAction; interruptFirst: boolean } {\r\n if (tier === 'later') return { action: { kind: 'steer' }, interruptFirst: false }\r\n // Yellow steers only; red cancels the running turn first, then steers.\r\n return { action: { kind: 'steer' }, interruptFirst: tier === 'now' }\r\n}\r\n\r\n/**\r\n * Project the tier badge of one inbox row from its placement. Pure so the\r\n * row rendering and its tests share one truth.\r\n * @param placement - the inbox projection placement.\r\n * @returns the tier badge, or null for non-visible context rows.\r\n */\r\nexport function badgeFor(placement: 'queued' | 'steering' | 'context'): SteerTier | null {\r\n if (placement === 'steering') return 'next'\r\n if (placement === 'queued') return 'later'\r\n return null\r\n}\r\n\r\n/**\r\n * Auto-grow one edit textarea to its content. The CSS max-height caps the\r\n * growth; beyond it the textarea scrolls internally. Height is reset first so\r\n * shrink (deleting lines) also tracks the content.\r\n * @param el - the textarea to resize in place.\r\n */\r\nexport function resizeEditor(el: HTMLTextAreaElement): void {\r\n el.style.height = 'auto'\r\n el.style.height = `${el.scrollHeight}px`\r\n}\r\n\r\n/**\r\n * Queue strip with three-tier planning: one item renders directly; multiple\r\n * items default to a collapsible count header; an empty queue renders nothing.\r\n */\r\nexport function SteerQueueDock({ useSession, input, updateQueue, cancel, send, setDraft, notify, t }: SteerQueueDockProps) {\r\n const inbox = useSession(s => s.queue)\r\n const queue = useMemo(() => inbox.filter(row => row.placement === 'queued'), [inbox])\r\n const steering = useMemo(() => inbox.filter(row => row.placement === 'steering'), [inbox])\r\n const running = useSession(s => s.running)\r\n const queueMutable = useSession(s => s.subagent === null)\r\n const [editing, setEditing] = useState<{ id: string; text: string } | null>(null)\r\n const [busy, setBusy] = useState<string | null>(null)\r\n const [clearing, setClearing] = useState(false)\r\n // Two-step clear confirmation: the first click arms the prompt, the second\r\n // executes; arming auto-reverts after a few seconds (no native confirm).\r\n const [confirmClear, setConfirmClear] = useState(false)\r\n const confirmTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\r\n // Drag-and-drop reorder source index and the current drop-target row.\r\n const dragIndex = useRef<number | null>(null)\r\n const [dragOver, setDragOver] = useState<number | null>(null)\r\n // Collapse state persists across mounts (dsh-queue-plus parity).\r\n const [collapsed, setCollapsed] = useState(() => {\r\n try {\r\n const v = localStorage.getItem(COLLAPSE_KEY)\r\n return v === null ? true : v === '1'\r\n } catch {\r\n return true\r\n }\r\n })\r\n // Session-level freeze lives in the composer-right control; the dock reads\r\n // the shared store for the banner and inert states. While frozen the\r\n // detached queue is rendered here (read-only) so the waiting area stays\r\n // visible — freezing only pauses the running behavior, it must not hide\r\n // the queued messages.\r\n const { frozen, pending: frozenPending } = useSyncExternalStore(freezeStore.subscribe, freezeStore.getSnapshot)\r\n const listId = useId()\r\n // The edit textarea; grown to its content on entry and on every input.\r\n const editorRef = useRef<HTMLTextAreaElement>(null)\r\n\r\n useEffect(() => {\r\n if (queue.length === 0 && !collapsed) setCollapsed(true)\r\n // Frozen-row edits use a `frozen:` id that never exists in the dsh queue;\r\n // skip the stale-check for them so the detached queue stays editable.\r\n if (editing !== null && !editing.id.startsWith('frozen:') && (!queueMutable || !queue.some(row => row.id === editing.id))) setEditing(null)\r\n }, [collapsed, editing, queue, queueMutable])\r\n\r\n // Persist the manual collapse state; clear the confirm timer on unmount.\r\n useEffect(() => {\r\n try {\r\n localStorage.setItem(COLLAPSE_KEY, collapsed ? '1' : '0')\r\n } catch {\r\n /* storage unavailable: in-memory only */\r\n }\r\n }, [collapsed])\r\n useEffect(() => () => {\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n }, [])\r\n\r\n // Grow the editor to its full content when a row enters edit mode.\r\n const editingId = editing?.id\r\n useEffect(() => {\r\n if (editingId === undefined) return\r\n const el = editorRef.current\r\n if (el !== null) resizeEditor(el)\r\n }, [editingId])\r\n\r\n // The dock stays mounted while the agent runs (the freeze entry must be\r\n // reachable before any message queues), while any row is pending, and while\r\n // the session is frozen (the detached queue stays visible).\r\n if (queue.length === 0 && steering.length === 0 && !running && !frozen) return null\r\n\r\n const interactionActive = queueMutable && (editing !== null || busy !== null || clearing)\r\n const expanded = !collapsed || interactionActive\r\n const listVisible = queue.length === 1 || expanded\r\n const planDisabled = !queueMutable || !running || frozen\r\n const nothingPending = queue.length === 0 && steering.length === 0\r\n // Reordering rebuilds the queue by re-sending texts; non-text rows cannot\r\n // be re-sent, so sorting is disabled while any such row is queued.\r\n const reorderUnsupported = queue.some(row => row.text === null)\r\n // Pull-back-to-composer is only offered when the composer draft is empty:\r\n // the pulled message back-fills the draft, so an occupied composer would be\r\n // overwritten. Steered (yellow/red) rows never offer it — once inserted,\r\n // they are not deeply re-edited.\r\n const composerEmpty = input.draft.trim() === ''\r\n\r\n const applyAction = async (\r\n itemId: string,\r\n action: SteerQueueAction,\r\n failure: string,\r\n ): Promise<boolean> => {\r\n setBusy(itemId)\r\n try {\r\n await updateQueue(itemId, action)\r\n return true\r\n } catch {\r\n notify('error', failure)\r\n return false\r\n } finally {\r\n setBusy(current => current === itemId ? null : current)\r\n }\r\n }\r\n\r\n const saveEdit = async (): Promise<void> => {\r\n if (editing === null || editing.text.trim() === '') return\r\n const itemId = editing.id\r\n const text = editing.text\r\n setBusy(itemId)\r\n try {\r\n await updateQueue(itemId, { kind: 'edit', content: [{ type: 'text', text }] })\r\n setEditing(null)\r\n } catch {\r\n // The edit failed (the agent may have claimed the row mid-edit): fall\r\n // back to the composer so the edited content is never lost. Only when\r\n // the composer is free — an occupied draft must not be overwritten.\r\n if (input.draft.trim() === '') {\r\n setDraft(text)\r\n setEditing(null)\r\n notify('error', t('queue.editFailed.pulledBack'))\r\n } else {\r\n notify('error', t('queue.editFailed'))\r\n }\r\n } finally {\r\n setBusy(current => current === itemId ? null : current)\r\n }\r\n }\r\n\r\n const steerRow = async (row: { id: string; text: string | null }, tier: Exclude<SteerTier, 'later'>): Promise<void> => {\r\n setBusy(row.id)\r\n try {\r\n if (tier === 'now') {\r\n // Interrupt, then re-submit: cancel stops the current run (keepInbox),\r\n // the row is removed so its identity cannot collide, and re-sending\r\n // the text arms the harness wake latch (the converged driver restarts\r\n // and processes it as the next turn's input). A plain steer after\r\n // cancel would re-insert a message already pending in next-turn and\r\n // the inbox rejects the duplicate.\r\n await cancel()\r\n await updateQueue(row.id, { kind: 'remove' })\r\n if (row.text !== null) await send(row.text)\r\n } else {\r\n await updateQueue(row.id, { kind: 'steer' })\r\n }\r\n } catch {\r\n notify('error', tier === 'now' ? t('steer.nowFailed') : t('steer.nextFailed'))\r\n } finally {\r\n setBusy(current => current === row.id ? null : current)\r\n }\r\n }\r\n\r\n /**\r\n * Revoke a steered (yellow) or interrupting (red) row back to later: remove\r\n * the admitted row and re-send its text as a queued follow-up, so it lands\r\n * in next-turn again (the yellow flow is reversible).\r\n */\r\n const revokeToLater = async (row: { id: string; text: string | null }): Promise<void> => {\r\n if (row.text === null) return\r\n setBusy(row.id)\r\n try {\r\n await updateQueue(row.id, { kind: 'remove' })\r\n await send(row.text)\r\n } catch {\r\n notify('error', t('steer.revokeFailed'))\r\n } finally {\r\n setBusy(current => current === row.id ? null : current)\r\n }\r\n }\r\n\r\n /**\r\n * Rebuild the queue in a new order: remove every queued row, then re-send\r\n * the texts sequentially so the agent's next-turn list matches the new\r\n * order. Concurrency protection (dsh-queue-plus parity): if a remove fails\r\n * with queue-item-not-found, the agent already claimed that row — the\r\n * rebuild stops immediately and nothing is re-sent, so the changed queue\r\n * is never scrambled.\r\n */\r\n const rebuildQueue = async (rows: readonly { id: string; text: string | null }[], next: readonly { id: string; text: string | null }[]): Promise<void> => {\r\n setBusy(REORDER_MARK)\r\n try {\r\n for (const row of rows) {\r\n try {\r\n await updateQueue(row.id, { kind: 'remove' })\r\n } catch (error) {\r\n if (error instanceof Error && error.message.includes('queue-item-not-found')) {\r\n notify('error', t('steer.reorderStale'))\r\n return\r\n }\r\n throw error\r\n }\r\n }\r\n for (const row of next) {\r\n if (row.text !== null) await send(row.text)\r\n }\r\n } catch {\r\n notify('error', t('steer.reorderFailed'))\r\n } finally {\r\n setBusy(null)\r\n }\r\n }\r\n\r\n /**\r\n * Move one queued row up/down in the FIFO order (arrow buttons).\r\n */\r\n const reorder = async (rowId: string, delta: -1 | 1): Promise<void> => {\r\n const rows = queue\r\n const index = rows.findIndex(row => row.id === rowId)\r\n const target = index + delta\r\n if (index < 0 || target < 0 || target >= rows.length) return\r\n const next = [...rows]\r\n const swapped = next[index] as typeof next[number]\r\n next[index] = next[target] as typeof next[number]\r\n next[target] = swapped\r\n if (next.some(row => row.text === null)) {\r\n notify('error', t('steer.reorder.unsupported'))\r\n return\r\n }\r\n await rebuildQueue(rows, next)\r\n }\r\n\r\n /**\r\n * Move one row to an absolute position (drag-and-drop drop handler).\r\n */\r\n const reorderTo = async (fromIndex: number, toIndex: number): Promise<void> => {\r\n if (fromIndex === toIndex) return\r\n const rows = queue\r\n if (rows[fromIndex] === undefined || rows[toIndex] === undefined) return\r\n const next = [...rows]\r\n const [moved] = next.splice(fromIndex, 1)\r\n if (moved === undefined) return\r\n next.splice(toIndex, 0, moved)\r\n if (next.some(row => row.text === null)) {\r\n notify('error', t('steer.reorder.unsupported'))\r\n return\r\n }\r\n await rebuildQueue(rows, next)\r\n }\r\n\r\n /** Arm or execute the two-step clear confirmation. */\r\n const armClear = (): void => {\r\n if (confirmClear) {\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n setConfirmClear(false)\r\n void clearAll()\r\n return\r\n }\r\n setConfirmClear(true)\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n confirmTimer.current = setTimeout(() => setConfirmClear(false), 3000)\r\n }\r\n\r\n /** Abort the armed clear confirmation (the explicit cancel button). */\r\n const cancelClear = (): void => {\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n setConfirmClear(false)\r\n }\r\n\r\n /** Save an in-place edit of one detached (frozen) queued message. */\r\n const saveFrozenEdit = async (index: number): Promise<void> => {\r\n if (editing === null) return\r\n const text = editing.text.trim()\r\n if (text === '') {\r\n setEditing(null)\r\n return\r\n }\r\n updatePendingAt(index, text)\r\n setEditing(null)\r\n }\r\n\r\n /**\r\n * Pull one queued row back into the composer draft for editing: the text\r\n * back-fills the input box and the row leaves the queue; the user edits and\r\n * resubmits it as a fresh message.\r\n */\r\n const pullBackToComposer = async (row: { id: string; text: string | null }): Promise<void> => {\r\n if (row.text === null) return\r\n setDraft(row.text)\r\n setBusy(row.id)\r\n try {\r\n await updateQueue(row.id, { kind: 'remove' })\r\n } catch {\r\n notify('error', t('steer.pullBackFailed'))\r\n } finally {\r\n setBusy(current => current === row.id ? null : current)\r\n }\r\n }\r\n\r\n const clearAll = async (): Promise<void> => {\r\n setClearing(true)\r\n // Cancel the current run and clear every pending row (queued and\r\n // steering alike). Removal races the agent claiming rows;\r\n // item-not-found is a normal convergence and must not surface.\r\n const pending = [...queue, ...steering]\r\n try {\r\n await cancel()\r\n await Promise.all(pending.map(row =>\r\n updateQueue(row.id, { kind: 'remove' }).catch(() => undefined),\r\n ))\r\n } catch {\r\n notify('error', t('steer.clearFailed'))\r\n } finally {\r\n setClearing(false)\r\n }\r\n }\r\n\r\n return (\r\n <div className={css.dock} data-steer-dock=\"\">\r\n <div className={css.panel}>\r\n <div className={css.toolbar}>\r\n <button\r\n type=\"button\"\r\n className={css.header}\r\n aria-controls={listId}\r\n aria-expanded={expanded}\r\n disabled={queue.length <= 1 || interactionActive}\r\n onClick={() => { setCollapsed(value => !value) }}\r\n >\r\n <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>\r\n {queue.length > 0 && (\r\n <span className={css.count}>{t('queue.count', { n: queue.length })}</span>\r\n )}\r\n {queue.length > 1 && (\r\n <span className={css.chevron} aria-hidden>\r\n {expanded ? <IconChevronDownOutline14 /> : <IconChevronUpOutline14 />}\r\n </span>\r\n )}\r\n </button>\r\n <div className={css.toolbarActions}>\r\n {confirmClear && (\r\n <button\r\n type=\"button\"\r\n className={css.clearCancel}\r\n aria-label={t('steer.clear.cancel')}\r\n disabled={clearing || busy !== null || nothingPending}\r\n onClick={cancelClear}\r\n >\r\n <span className={css.clearLabel}>{t('steer.clear.cancel')}</span>\r\n </button>\r\n )}\r\n <Tooltip label={confirmClear ? t('steer.clear.confirm') : t('steer.clear')} side=\"top\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.clear} ${confirmClear ? css.clearConfirm : ''}`}\r\n aria-label={confirmClear ? t('steer.clear.confirm') : t('steer.clear')}\r\n disabled={clearing || busy !== null || nothingPending}\r\n onClick={armClear}\r\n >\r\n <IconTrashOutline16 size={14} />\r\n <span className={css.clearLabel}>{confirmClear ? t('steer.clear.confirm') : t('steer.clear')}</span>\r\n </button>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n {frozen && (\r\n <div className={css.frozenBanner} role=\"status\">\r\n {t('steer.frozen')}\r\n </div>\r\n )}\r\n {/* While frozen the queue is detached into the shared store: render it\r\n here so the waiting area never disappears. The detached rows stay\r\n fully editable (edit / remove / reorder) — freezing only pauses\r\n the running behavior, it must not lock the queue. */}\r\n {frozen && frozenPending.length > 0 && (\r\n <ul className={css.frozenList} data-testid=\"frozen-list\">\r\n {frozenPending.map((entry, i) => {\r\n const editingFrozen = editing?.id === `frozen:${i}`\r\n const text = entry.text\r\n return (\r\n <li\r\n key={i}\r\n className={`${css.frozenRow} ${dragOver === i && frozen ? css.rowDragOver : ''}`}\r\n data-tier={entry.tier === 'force' ? 'now' : entry.tier === 'safe_point' ? 'next' : 'later'}\r\n data-editing={editingFrozen ? '' : undefined}\r\n draggable={!editingFrozen}\r\n title={!editingFrozen ? t('steer.dragReorder') : undefined}\r\n onDragStart={(event) => {\r\n if (editingFrozen) return\r\n dragIndex.current = i\r\n event.dataTransfer.effectAllowed = 'move'\r\n // Some engines only start HTML5 drag once data is set.\r\n event.dataTransfer.setData('text/plain', String(i))\r\n }}\r\n onDragOver={(event) => {\r\n if (dragIndex.current === null) return\r\n event.preventDefault()\r\n setDragOver(i)\r\n }}\r\n onDrop={(event) => {\r\n event.preventDefault()\r\n const from = dragIndex.current\r\n dragIndex.current = null\r\n setDragOver(null)\r\n if (from !== null) movePending(from, i)\r\n }}\r\n onDragEnd={() => {\r\n dragIndex.current = null\r\n setDragOver(null)\r\n }}\r\n >\r\n <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>\r\n <SteerBadge tier={entry.tier === 'force' ? 'now' : entry.tier === 'safe_point' ? 'next' : 'later'} t={t} />\r\n {editingFrozen\r\n ? (\r\n <textarea\r\n ref={editorRef}\r\n autoFocus\r\n className={css.editor}\r\n aria-label={t('queue.edit')}\r\n rows={1}\r\n value={editing?.text ?? text}\r\n onChange={(event) => { setEditing({ id: `frozen:${i}`, text: event.currentTarget.value }) }}\r\n onInput={(event) => { resizeEditor(event.currentTarget) }}\r\n onKeyDown={(event) => {\r\n if (event.key === 'Escape') {\r\n setEditing(null)\r\n return\r\n }\r\n if (event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing) {\r\n event.preventDefault()\r\n void saveFrozenEdit(i)\r\n }\r\n }}\r\n />\r\n )\r\n : <span className={css.preview}>{text}</span>}\r\n <div className={css.actions}>\r\n {editingFrozen ? (\r\n <>\r\n <Tooltip label={t('queue.save')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.save')}\r\n disabled={editing === null || editing.text.trim() === ''}\r\n onClick={() => { void saveFrozenEdit(i) }}\r\n >\r\n <IconCheckOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.cancelEdit')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.cancelEdit')}\r\n onClick={() => { setEditing(null) }}\r\n >\r\n <IconCloseOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n </>\r\n ) : (\r\n <>\r\n <Tooltip label={t('steer.moveUp')} side=\"bottom\" delayMs={500} disabled={i === 0}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveUp')}\r\n disabled={i === 0}\r\n onClick={() => movePending(i, i - 1)}\r\n >\r\n <IconChevronUpOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.moveDown')} side=\"bottom\" delayMs={500} disabled={i === frozenPending.length - 1}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveDown')}\r\n disabled={i === frozenPending.length - 1}\r\n onClick={() => movePending(i, i + 1)}\r\n >\r\n <IconChevronDownOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.edit')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.edit')}\r\n onClick={() => { setEditing({ id: `frozen:${i}`, text }) }}\r\n >\r\n <IconEditOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.remove')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.remove')}\r\n onClick={() => removePendingAt(i)}\r\n >\r\n <IconTrashOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n {/* Planned insertion tier: freezing pauses consumption,\r\n it must not lock the tier planning of each row. */}\r\n <span className={css.plan} role=\"group\" aria-label={t('steer.later.aria')}>\r\n <Tooltip label={t('steer.now')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNow}`}\r\n aria-label={t('steer.now')}\r\n aria-pressed={entry.tier === 'force' || undefined}\r\n onClick={() => setTierAt(i, 'force')}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.next')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNext}`}\r\n aria-label={t('steer.next')}\r\n aria-pressed={entry.tier === 'safe_point' || undefined}\r\n onClick={() => setTierAt(i, 'safe_point')}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.later')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierLater}`}\r\n aria-label={t('steer.later')}\r\n aria-pressed={entry.tier === 'queue' || undefined}\r\n onClick={() => setTierAt(i, 'queue')}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n </span>\r\n </>\r\n )}\r\n </div>\r\n <span className={css.frozenMark}>{t('steer.frozenBadge')}</span>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n )}\r\n <ul id={listId} className={css.list} hidden={!listVisible}>\r\n {listVisible && queue.map((row, index) => (\r\n <li\r\n key={row.id}\r\n className={`${css.row} ${dragOver === index ? css.rowDragOver : ''}`}\r\n data-tier={badgeFor('queued') ?? undefined}\r\n data-editing={editing?.id === row.id ? '' : undefined}\r\n draggable={queueMutable && !reorderUnsupported && busy === null && !frozen}\r\n title={queueMutable && !reorderUnsupported && busy === null && !frozen ? t('steer.dragReorder') : undefined}\r\n onDragStart={(event) => {\r\n dragIndex.current = index\r\n event.dataTransfer.effectAllowed = 'move'\r\n // Some engines only start HTML5 drag once data is set.\r\n event.dataTransfer.setData('text/plain', String(index))\r\n }}\r\n onDragOver={(event) => {\r\n if (dragIndex.current === null) return\r\n event.preventDefault()\r\n setDragOver(index)\r\n }}\r\n onDrop={(event) => {\r\n event.preventDefault()\r\n const from = dragIndex.current\r\n dragIndex.current = null\r\n setDragOver(null)\r\n if (from !== null) void reorderTo(from, index)\r\n }}\r\n onDragEnd={() => {\r\n dragIndex.current = null\r\n setDragOver(null)\r\n }}\r\n >\r\n {queue.length === 1 && <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>}\r\n <SteerBadge tier={badgeFor('queued')} t={t} />\r\n {editing?.id === row.id\r\n ? (\r\n <textarea\r\n ref={editorRef}\r\n autoFocus\r\n className={css.editor}\r\n aria-label={t('queue.edit')}\r\n rows={1}\r\n value={editing.text}\r\n onChange={(event) => { setEditing({ id: row.id, text: event.currentTarget.value }) }}\r\n onInput={(event) => { resizeEditor(event.currentTarget) }}\r\n onKeyDown={(event) => {\r\n if (event.key === 'Escape') {\r\n setEditing(null)\r\n return\r\n }\r\n // Plain Enter saves; Shift+Enter keeps editing (newline).\r\n if (event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing) {\r\n event.preventDefault()\r\n void saveEdit()\r\n }\r\n }}\r\n />\r\n )\r\n : <span className={css.preview}>{row.preview}</span>}\r\n {queueMutable && <div className={css.actions}>\r\n {editing?.id === row.id\r\n ? (\r\n <>\r\n <Tooltip label={t('queue.save')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.save')}\r\n disabled={busy !== null || editing.text.trim() === ''}\r\n onClick={() => { void saveEdit() }}\r\n >\r\n <IconCheckOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.cancelEdit')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.cancelEdit')}\r\n disabled={busy !== null}\r\n onClick={() => { setEditing(null) }}\r\n >\r\n <IconCloseOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n </>\r\n )\r\n : (\r\n <>\r\n <Tooltip label={t('steer.moveUp')} side=\"bottom\" delayMs={500} disabled={frozen || reorderUnsupported}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveUp')}\r\n title={reorderUnsupported ? t('steer.reorder.unsupported') : undefined}\r\n disabled={busy !== null || frozen || reorderUnsupported}\r\n onClick={() => { void reorder(row.id, -1) }}\r\n >\r\n <IconChevronUpOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.moveDown')} side=\"bottom\" delayMs={500} disabled={frozen || reorderUnsupported}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveDown')}\r\n title={reorderUnsupported ? t('steer.reorder.unsupported') : undefined}\r\n disabled={busy !== null || frozen || reorderUnsupported}\r\n onClick={() => { void reorder(row.id, 1) }}\r\n >\r\n <IconChevronDownOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.pullBack')} side=\"bottom\" delayMs={500} disabled={row.text === null || !composerEmpty}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.pullBack')}\r\n title={row.text === null ? t('steer.pullBack.unsupported') : !composerEmpty ? t('steer.pullBack.composerBusy') : undefined}\r\n disabled={busy !== null || frozen || row.text === null || !composerEmpty}\r\n onClick={() => { void pullBackToComposer(row) }}\r\n >\r\n <IconRightUpOutline16 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.edit')} side=\"bottom\" delayMs={500} disabled={row.text === null}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.edit')}\r\n title={row.text === null ? t('queue.edit.unsupported') : undefined}\r\n disabled={busy !== null || row.text === null}\r\n onClick={() => {\r\n if (row.text !== null) setEditing({ id: row.id, text: row.text })\r\n }}\r\n >\r\n <IconEditOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.remove')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.remove')}\r\n disabled={busy !== null}\r\n onClick={() => {\r\n void applyAction(row.id, { kind: 'remove' }, t('queue.removeFailed'))\r\n }}\r\n >\r\n <IconTrashOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <span className={css.plan} role=\"group\" aria-label={t('steer.later.aria')}>\r\n <Tooltip label={t('steer.now')} side=\"bottom\" delayMs={500} disabled={planDisabled || row.text === null}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNow}`}\r\n aria-label={t('steer.now')}\r\n title={planDisabled ? t('steer.unavailable.running') : row.text === null ? t('steer.now.unsupported') : undefined}\r\n disabled={busy !== null || planDisabled || row.text === null}\r\n onClick={() => { void steerRow(row, 'now') }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.next')} side=\"bottom\" delayMs={500} disabled={planDisabled}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNext}`}\r\n aria-label={t('steer.next')}\r\n title={planDisabled ? t('steer.unavailable.running') : undefined}\r\n disabled={busy !== null || planDisabled}\r\n onClick={() => { void steerRow(row, 'next') }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.later')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierLater}`}\r\n aria-label={t('steer.later')}\r\n aria-pressed\r\n disabled={busy !== null || clearing}\r\n onClick={() => {\r\n // Later is the default queue state; pressing it\r\n // keeps the row queued (no-op by design).\r\n }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n </span>\r\n </>\r\n )}\r\n </div>}\r\n </li>\r\n ))}\r\n </ul>\r\n {steering.length > 0 && (\r\n <ul className={css.steeringList} data-steering-list=\"\">\r\n {steering.map(row => (\r\n <li key={row.id} className={css.row} data-tier={badgeFor('steering') ?? undefined}>\r\n <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>\r\n <SteerBadge tier={badgeFor('steering')} t={t} />\r\n <span className={css.preview}>{row.preview}</span>\r\n <div className={css.actions}>\r\n <Tooltip label={t('steer.revoke')} side=\"bottom\" delayMs={500} disabled={row.text === null}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierLater}`}\r\n aria-label={t('steer.revoke')}\r\n title={row.text === null ? t('steer.revoke.unsupported') : undefined}\r\n disabled={busy !== null || row.text === null || frozen}\r\n onClick={() => { void revokeToLater(row) }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n </div>\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n/** Badge label keys per tier. */\r\nconst BADGE_KEYS: Record<SteerTier, string> = {\r\n now: 'steer.badge.now',\r\n next: 'steer.badge.next',\r\n later: 'steer.badge.later',\r\n}\r\n\r\n/** Badge tint classes per tier (present at bundle time; typed through the css-modules declaration). */\r\nconst BADGE_CLASSES: Record<SteerTier, string> = {\r\n now: css.badgeNow as string,\r\n next: css.badgeNext as string,\r\n later: css.badgeLater as string,\r\n}\r\n\r\n/** One row's tier badge: colored dot + label; context rows render nothing. */\r\nfunction SteerBadge({ tier, t }: { tier: SteerTier | null; t: SteerQueueDockProps['t'] }) {\r\n if (tier === null) return null\r\n return (\r\n <span className={`${css.badge} ${BADGE_CLASSES[tier]}`} data-badge={tier}>\r\n <span className={css.dot} aria-hidden />\r\n <span className={css.badgeLabel}>{t(BADGE_KEYS[tier])}</span>\r\n </span>\r\n )\r\n}\r\n","/**\r\n * Session freeze/resume control, mounted in the composer's right tool row\r\n * (`conversation.input.right`) so it is reachable before anything queues.\r\n *\r\n * Peak-hour pause semantics: freeze does NOT interrupt the running turn —it\r\n * finishes naturally. The queued messages are detached (removed, preserved in\r\n * the shared store), so the driver finds no pending work and stops after the\r\n * current turn. Resume re-submits the preserved texts, waking the driver and\r\n * continuing the queue.\r\n */\r\nimport { useSyncExternalStore } from 'react'\r\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\r\nimport { freezeStore } from './freeze-store.ts'\r\nimport type { SteerQueueDockInjected } from './steer-queue-dock.tsx'\r\nimport css from './freeze-button.module.css'\r\n\r\n/** Full props of the composer-right entry: InputZone owner share + injected verbs + locale seat. */\r\nexport type FreezeButtonProps = PropsRuntime<'conversation.input.right'> & SteerQueueDockInjected & PropsLocale<'steer'>\r\n\r\n/**\r\n * Freeze/resume toggle for the peak-hour scenario.\r\n * @param props - slot props; the session snapshot drives the detach list.\r\n */\r\nexport function FreezeButton({ session, updateQueue, cancel, send, notify, t }: FreezeButtonProps) {\r\n const { frozen } = useSyncExternalStore(freezeStore.subscribe, freezeStore.getSnapshot)\r\n\r\n const freeze = async (): Promise<void> => {\r\n const queued = session.queue.filter(row => row.placement === 'queued')\r\n // Preserve plain-text copies; non-text rows cannot be re-sent and are\r\n // released by the freeze (documented limitation).\r\n const pending = queued.flatMap(row => row.text === null ? [] : [{ text: row.text, tier: 'queue' as const }])\r\n // Detach every queued row: the running turn finishes naturally, then the\r\n // driver finds no pending work and stops.\r\n await Promise.all(queued.map(row =>\r\n updateQueue(row.id, { kind: 'remove' }).catch(() => undefined),\r\n ))\r\n freezeStore.set({ frozen: true, pending })\r\n }\r\n\r\n const resume = async (): Promise<void> => {\r\n const pending = freezeStore.getSnapshot().pending\r\n freezeStore.set({ frozen: false, pending: [] })\r\n try {\r\n // Re-submit the preserved queue in FIFO order honoring each entry's\r\n // planned insertion tier: a force (red) entry interrupts the current\r\n // run first so it is consumed immediately; safe_point/later entries\r\n // flow through the wake-and-continue chain.\r\n for (const entry of pending) {\r\n if (entry.tier === 'force') await cancel()\r\n await send(entry.text)\r\n }\r\n } catch {\r\n notify('error', t('steer.resumeFailed'))\r\n }\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={css.freeze}\r\n aria-label={frozen ? t('steer.resume') : t('steer.freeze')}\r\n aria-pressed={frozen || undefined}\r\n title={frozen ? t('steer.frozen') : undefined}\r\n onClick={() => {\r\n if (frozen) void resume()\r\n else void freeze()\r\n }}\r\n >\r\n <span className={css.label}>{frozen ? t('steer.resume') : t('steer.freeze')}</span>\r\n </button>\r\n )\r\n}\r\n","/**\r\n * Busy-Enter row hiding: shadows the official `settings.general.item` entry\r\n * `composer-enter` (same cell id, priority -1) so the lower priority wins and\r\n * the official \"繁忙时 Enter 键行为\" row never renders while this plugin is\r\n * mounted.\r\n *\r\n * The behavior itself is taken over by the plugin: plain Enter stays\r\n * queue-later (green), the planning dock owns yellow/red, and the plugin apply\r\n * pins `ui-conversation.busyEnter` to `queue` so no stale preference can\r\n * leak through the hidden row.\r\n */\r\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\r\n\r\n/** Full props of a settings-row entry (unused: the row renders nothing). */\r\nexport type HideEnterRowProps = PropsRuntime<'settings.general.item'> & PropsLocale<'steer'>\r\n\r\n/** Render nothing: the official busy-Enter row is hidden while mounted. */\r\nexport function HideEnterRow(_props: HideEnterRowProps): null {\r\n return null\r\n}\r\n","/**\r\n * dsh-input-traffic —browser half.\r\n *\r\n * The whole takeover lives here:\r\n * 1. registers the `steer` dictionaries;\r\n * 2. pins `ui-conversation.busyEnter` to `queue` (plain Enter = green later)\r\n * so the hidden official row cannot leak a stale queue/steer preference;\r\n * 3. shadows the official queue dock (`conversation.input.dock` cell id\r\n * `queue`, priority -1) with the three-tier planning strip;\r\n * 4. shadows the official busy-Enter settings row (`settings.general.item`\r\n * cell id `composer-enter`, priority -1) with a null render.\r\n *\r\n * All @deepseek-ai/* imports are type-only: collaboration happens through\r\n * cordis services and slot registration only (client bundle purity).\r\n */\r\nimport type { ClientContext, SessionId } from '@deepseek-ai/dsh-client-runtime/client'\r\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\r\nimport type {} from '@deepseek-ai/dsh-client-ui-settings/client'\r\nimport type { IConversation } from '@deepseek-ai/dsh-client-ui-conversation/client'\r\nimport { NS, en, zh } from './locales.ts'\r\nimport { SteerQueueDock } from './steer-queue-dock.tsx'\r\nimport type { SteerQueueDockInjected } from './steer-queue-dock.tsx'\r\nimport { FreezeButton } from './freeze-button.tsx'\r\nimport { HideEnterRow } from './hide-enter-row.tsx'\r\n\r\n/** Durable conversation settings namespace owned by ui-conversation. */\r\nconst CONVERSATION_SETTINGS_NAMESPACE = 'ui-conversation'\r\n\r\n/** Busy-Enter field inside that namespace; the plugin pins it to queue. */\r\nconst BUSY_ENTER_FIELD = 'busyEnter'\r\n\r\n/** Services required by the browser half. */\r\nexport const inject = ['slots', 'locale', 'sessions', 'conversation', 'settingsScope']\r\n\r\n/**\r\n * Client plugin body: dictionaries, busy-Enter pinning, and the two slot\r\n * shadowings.\r\n * @param ctx - client root context.\r\n */\r\nexport function apply(ctx: ClientContext): void {\r\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-input-traffic: dictionaries')\r\n\r\n // Take over the busy-Enter behavior: plain Enter stays queue-later while\r\n // the official row is hidden. Pinning here also repairs a persisted `steer`\r\n // preference that would otherwise keep working invisibly behind the hidden\r\n // row. Best-effort: a memory-mode host simply accepts it locally.\r\n const conversationSettings = ctx.settingsScope.bind<{ busyEnter: 'queue' | 'steer' }>({\r\n namespace: CONVERSATION_SETTINGS_NAMESPACE,\r\n })\r\n void conversationSettings.set(BUSY_ENTER_FIELD, 'queue')\r\n\r\n // Shadow the official queue dock with the three-tier planning strip.\r\n ctx.slots.inject('conversation.input.dock', () => ctx.slots.register({\r\n name: 'conversation.input.dock',\r\n id: 'queue',\r\n order: 20,\r\n priority: -1,\r\n locale: NS,\r\n inject: (sessionId: SessionId): SteerQueueDockInjected => {\r\n const actx = ctx.sessions.scope(sessionId)\r\n if (actx === undefined) throw new Error(`steer dock: session \"${sessionId}\" resolved no scope`)\r\n const conversation = actx.get<IConversation>('conversation')\r\n if (conversation === undefined) throw new Error('steer dock: conversation service unavailable')\r\n return {\r\n updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),\r\n cancel: () => conversation.cancel(),\r\n send: (text) => conversation.send(text),\r\n setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text) },\r\n notify: (level, text) => { conversation.input.for(actx).notify(level, text) },\r\n }\r\n },\r\n }, SteerQueueDock))\r\n\r\n // Composer-right freeze/resume control (reachable before anything queues).\r\n ctx.slots.inject('conversation.input.right', () => ctx.slots.register({\r\n name: 'conversation.input.right',\r\n id: 'steer-freeze',\r\n order: 30,\r\n locale: NS,\r\n inject: (sessionId: SessionId): SteerQueueDockInjected => {\r\n const actx = ctx.sessions.scope(sessionId)\r\n if (actx === undefined) throw new Error(`steer freeze: session \"${sessionId}\" resolved no scope`)\r\n const conversation = actx.get<IConversation>('conversation')\r\n if (conversation === undefined) throw new Error('steer freeze: conversation service unavailable')\r\n return {\r\n updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),\r\n cancel: () => conversation.cancel(),\r\n send: (text) => conversation.send(text),\r\n setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text) },\r\n notify: (level, text) => { conversation.input.for(actx).notify(level, text) },\r\n }\r\n },\r\n }, FreezeButton))\r\n\r\n // Hide the official busy-Enter settings row (null render wins the cell).\r\n ctx.slots.inject('settings.general.item', () => ctx.slots.register({\r\n name: 'settings.general.item',\r\n id: 'composer-enter',\r\n order: 20,\r\n priority: -1,\r\n locale: NS,\r\n }, HideEnterRow))\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"client.js","names":["useMemo","useState","useRef","useSyncExternalStore","useId","css","IconQueueOutline14","IconChevronDownOutline14","IconChevronUpOutline14","Tooltip","IconTrashOutline16","IconCheckOutline16","IconCloseOutline16","IconEditOutline16","IconRightUpOutline16","useSyncExternalStore","css"],"sources":["src/client/locales.ts","src/client/freeze-store.ts","src/client/steer-queue-dock.tsx","src/client/freeze-button.tsx","src/client/hide-enter-row.tsx","src/client/index.ts"],"sourcesContent":["/** `steer` namespace dictionaries. */\r\n\r\n/** Dictionary namespace owned by this plugin. */\r\nexport const NS = 'steer'\r\n\r\n/** Simplified Chinese dictionary (the key-set source of truth). */\r\nexport const zh = {\r\n 'queue.count': '{n} 条排队消息',\r\n 'queue.edit': '编辑排队消息',\r\n 'queue.edit.unsupported': '包含非文本内容,暂不支持编辑',\r\n 'queue.save': '保存排队消息',\r\n 'queue.cancelEdit': '取消编辑',\r\n 'queue.remove': '删除排队消息',\r\n 'queue.removeFailed': '删除失败:这条消息可能已经开始发送。',\r\n 'queue.editFailed': '编辑失败:这条消息可能已经开始发送。',\r\n 'queue.editFailed.pulledBack': '编辑失败,内容已退回主输入框,请确认后重新发送。',\r\n 'steer.inflight': '{n} 条正在插入',\r\n 'steer.now': '打断并输入',\r\n 'steer.now.aria': '红色:打断当前动作并立即输入',\r\n 'steer.now.unsupported': '包含非文本内容,暂不支持打断',\r\n 'steer.nowFailed': '打断失败,请重试。',\r\n 'steer.next': '插话发送',\r\n 'steer.next.aria': '黄色:当前动作结束后插入输入',\r\n 'steer.nextFailed': '插话发送失败,请重试。',\r\n 'steer.later': '排队到下一轮',\r\n 'steer.later.aria': '绿色:排队,上一轮输入的动作都结束后再处理',\r\n 'steer.revoke': '收回排队',\r\n 'steer.revoke.aria': '绿色:撤销插入,收回排队(下一轮处理)',\r\n 'steer.revoke.unsupported': '包含非文本内容,暂不支持收回',\r\n 'steer.revokeFailed': '收回排队失败,请重试。',\r\n 'steer.moveUp': '上移',\r\n 'steer.moveDown': '下移',\r\n 'steer.reorder.unsupported': '包含非文本内容,暂不支持排序',\r\n 'steer.reorderFailed': '调整顺序失败,请重试。',\r\n 'steer.reorderStale': '队列已变化,本次排序已取消,请重试。',\r\n 'steer.dragReorder': '拖动调整顺序',\r\n 'steer.pullBack': '打回输入框编辑',\r\n 'steer.pullBack.unsupported': '包含非文本内容,暂不支持打回编辑',\r\n 'steer.pullBack.composerBusy': '主输入框已有内容,请先发送或清空后再打回',\r\n 'steer.pullBackFailed': '打回输入框失败,请重试。',\r\n 'steer.badge.now': '打断中',\r\n 'steer.badge.next': '插话中',\r\n 'steer.badge.later': '排队',\r\n 'steer.unavailable.running': '仅运行中可规划',\r\n 'steer.clear': '取消并清空',\r\n 'steer.clear.confirm': '确认清空?',\r\n 'steer.clear.cancel': '取消清空',\r\n 'steer.clear.aria': '取消当前执行并清空全部排队消息',\r\n 'steer.clearFailed': '取消并清空失败,请重试。',\r\n 'steer.freeze': '冻结会话',\r\n 'steer.resume': '恢复会话',\r\n 'steer.frozen': '已冻结:当前轮次完成后暂停,排队消息将在恢复后继续',\r\n 'steer.frozenBadge': '已冻结',\r\n 'steer.freezeFailed': '冻结失败,请重试。',\r\n 'steer.resumeFailed': '恢复失败,请重试。',\r\n} satisfies Record<string, string>\r\n\r\n/** English dictionary (keys mirror zh). */\r\nexport const en: Record<keyof typeof zh, string> = {\r\n 'queue.count': '{n} queued messages',\r\n 'queue.edit': 'Edit queued message',\r\n 'queue.edit.unsupported': 'Contains non-text content; editing is unsupported',\r\n 'queue.save': 'Save queued message',\r\n 'queue.cancelEdit': 'Cancel edit',\r\n 'queue.remove': 'Remove queued message',\r\n 'queue.removeFailed': 'Remove failed: the message may have started sending.',\r\n 'queue.editFailed': 'Edit failed: the message may have started sending.',\r\n 'queue.editFailed.pulledBack': 'Edit failed; the content was moved back to the composer, please review and resend.',\r\n 'steer.inflight': '{n} inserting',\r\n 'steer.now': 'Interrupt and send',\r\n 'steer.now.aria': 'Red: interrupt the running action and send now',\r\n 'steer.now.unsupported': 'Contains non-text content; interrupting is unsupported',\r\n 'steer.nowFailed': 'Interrupt failed, please retry.',\r\n 'steer.next': 'Send after action',\r\n 'steer.next.aria': 'Yellow: insert after the current action finishes',\r\n 'steer.nextFailed': 'Steering failed, please retry.',\r\n 'steer.later': 'Queue for next turn',\r\n 'steer.later.aria': 'Green: queue; processed after all previously steered actions finish',\r\n 'steer.revoke': 'Pull back to queue',\r\n 'steer.revoke.aria': 'Green: revoke the insertion and queue for the next turn',\r\n 'steer.revoke.unsupported': 'Contains non-text content; revoking is unsupported',\r\n 'steer.revokeFailed': 'Revoke failed, please retry.',\r\n 'steer.moveUp': 'Move up',\r\n 'steer.moveDown': 'Move down',\r\n 'steer.reorder.unsupported': 'Contains non-text content; reordering is unsupported',\r\n 'steer.reorderFailed': 'Reorder failed, please retry.',\r\n 'steer.reorderStale': 'The queue changed; this reorder was cancelled, please retry.',\r\n 'steer.dragReorder': 'Drag to reorder',\r\n 'steer.pullBack': 'Edit in composer',\r\n 'steer.pullBack.unsupported': 'Contains non-text content; pulling back is unsupported',\r\n 'steer.pullBack.composerBusy': 'The composer already has content; send or clear it first',\r\n 'steer.pullBackFailed': 'Pull back failed, please retry.',\r\n 'steer.badge.now': 'interrupting',\r\n 'steer.badge.next': 'steering',\r\n 'steer.badge.later': 'queued',\r\n 'steer.unavailable.running': 'Planning requires a running session',\r\n 'steer.clear': 'Cancel and clear',\r\n 'steer.clear.confirm': 'Confirm clear?',\r\n 'steer.clear.cancel': 'Cancel clearing',\r\n 'steer.clear.aria': 'Cancel the current run and clear all queued messages',\r\n 'steer.clearFailed': 'Cancel and clear failed, please retry.',\r\n 'steer.freeze': 'Freeze session',\r\n 'steer.resume': 'Resume session',\r\n 'steer.frozen': 'Frozen: the current turn finishes, then the queue pauses until resumed',\r\n 'steer.frozenBadge': 'frozen',\r\n 'steer.freezeFailed': 'Freeze failed, please retry.',\r\n 'steer.resumeFailed': 'Resume failed, please retry.',\r\n}\r\n\r\n/** Dictionary key union. */\r\nexport type SteerKey = keyof typeof zh\r\n","/**\r\n * Session-freeze store shared by the composer freeze button (the control)\r\n * and the steering dock (the banner/disabled states).\r\n *\r\n * The queue is fully decoupled from freezing: freezing only stops the agent\n * from consuming the queue (the detached entries are preserved here so the\r\n * driver finds no pending work and stops). While frozen the entries stay\r\n * fully editable — text, order and the planned insertion tier (now/next/\r\n * later) can all change; resume re-submits the queue honoring those tiers.\r\n */\r\n\r\n/** Insertion tier planned for one detached queued message. */\r\nexport type FrozenTier = 'queue' | 'safe_point' | 'force'\r\n\r\n/** One detached queued message with its planned insertion tier. */\r\nexport interface FrozenEntry {\r\n text: string\r\n tier: FrozenTier\r\n}\r\n\r\nexport interface FreezeState {\r\n frozen: boolean\r\n /** Detached queued messages in FIFO order, each with a planned tier. */\r\n pending: readonly FrozenEntry[]\r\n}\r\n\r\nconst listeners = new Set<() => void>()\r\nlet state: FreezeState = { frozen: false, pending: [] }\r\n\r\n/** Minimal snapshot store (no runtime dependency, stable identity per mount). */\r\nexport const freezeStore = {\r\n getSnapshot(): FreezeState {\r\n return state\r\n },\r\n subscribe(listener: () => void): () => void {\r\n listeners.add(listener)\r\n return () => { listeners.delete(listener) }\r\n },\r\n set(next: FreezeState): void {\r\n state = next\r\n for (const listener of listeners) listener()\r\n },\r\n}\r\n\r\n/** Reset for tests. */\r\nexport function resetFreezeStore(): void {\r\n state = { frozen: false, pending: [] }\r\n for (const listener of listeners) listener()\r\n}\r\n\r\n/** Append one queued message while frozen (new input lands in the detached queue). */\r\nexport function pushPending(text: string, tier: FrozenTier = 'queue'): void {\r\n state = { ...state, pending: [...state.pending, { text, tier }] }\r\n emit()\r\n}\r\n\r\n/** Edit one detached queued message's text in place. */\r\nexport function updatePendingAt(index: number, text: string): void {\r\n const pending = [...state.pending]\r\n if (index < 0 || index >= pending.length) return\r\n const entry = pending[index]\r\n if (entry === undefined) return\r\n pending[index] = { ...entry, text }\r\n state = { ...state, pending }\r\n emit()\r\n}\r\n\r\n/** Change one detached queued message's planned insertion tier. */\r\nexport function setTierAt(index: number, tier: FrozenTier): void {\r\n const pending = [...state.pending]\r\n if (index < 0 || index >= pending.length) return\r\n const entry = pending[index]\r\n if (entry === undefined) return\r\n pending[index] = { ...entry, tier }\r\n state = { ...state, pending }\r\n emit()\r\n}\r\n\r\n/** Remove one detached queued message. */\r\nexport function removePendingAt(index: number): void {\r\n if (index < 0 || index >= state.pending.length) return\r\n state = { ...state, pending: state.pending.filter((_, i) => i !== index) }\r\n emit()\r\n}\r\n\r\n/** Move one detached queued message to a new position (reorder while frozen). */\r\nexport function movePending(from: number, to: number): void {\r\n if (from === to) return\r\n const pending = [...state.pending]\r\n const [moved] = pending.splice(from, 1)\r\n if (moved === undefined) return\r\n pending.splice(to, 0, moved)\r\n state = { ...state, pending }\r\n emit()\r\n}\r\n\r\nfunction emit(): void {\r\n for (const listener of listeners) listener()\r\n}\r\n","/**\r\n * Three-tier steering queue dock: the shadowing replacement for the official\r\n * `conversation.input.dock` entry (same cell id `queue`, priority -1, so the\r\n * lower priority wins and the official QueueDock never renders while this\r\n * plugin is mounted).\r\n *\r\n * Every queued row carries three planning buttons:\r\n * - green (later, the default state): the row already queues for the next\r\n * turn —plain Enter keeps feeding rows here; pressing green on a row that\r\n * was already steered (yellow) revokes the insertion and pulls it back to\r\n * later (the yellow flow is reversible);\r\n * - yellow (next): strict-steer the row into the running turn, consumed at\r\n * the next step boundary (after the current action finishes);\r\n * - red (now): cancel the running turn, then remove the row and re-send its\r\n * text as a fresh message —the re-send arms the harness wake latch (the\r\n * converged driver restarts) and the interrupted input is processed as the\r\n * next turn's input. A plain steer after cancel would re-insert a message\r\n * that is already pending in next-turn and the inbox rejects it.\r\n *\r\n * The toolbar also exposes a queue-level \"cancel and clear\" that stops the\r\n * current run and removes every queued row, plus a session-level\r\n * freeze/resume toggle for the peak-hour scenario: freeze stops the current\r\n * run while preserving the queue (keepInbox), resume re-arms the driver by\r\n * re-sending the first queued row so the preserved work continues.\r\n */\r\nimport { useEffect, useId, useMemo, useRef, useState, useSyncExternalStore } from 'react'\r\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\n// Type-only: the conversation slot/contract declarations (module augmentation\r\n// for the SlotMap and the session standard kit). No value import crosses the\r\n// plugin boundary.\r\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\r\nimport {\r\n IconCheckOutline16, IconChevronDownOutline14, IconChevronUpOutline14, IconCloseOutline16,\r\n IconEditOutline16, IconQueueOutline14, IconRightUpOutline16, IconTrashOutline16, Tooltip,\r\n} from '@deepseek-ai/dsh-client-ui-primitives'\r\nimport { freezeStore, setTierAt, updatePendingAt, removePendingAt, movePending } from './freeze-store.ts'\r\nimport css from './steer-queue-dock.module.css'\r\n\r\n/** One mutation accepted by the conversation queue verb. */\r\nexport type SteerQueueAction =\r\n | { kind: 'edit'; content: readonly { type: 'text'; text: string }[] }\r\n | { kind: 'remove' }\r\n | { kind: 'steer' }\r\n\r\n/** Busy marker for a whole-queue rebuild (reorder); locks every row action. */\r\nconst REORDER_MARK = '__reorder__'\r\n\r\n/** localStorage key for the manual collapse state (dsh-queue-plus parity). */\r\nconst COLLAPSE_KEY = 'dsh-input-traffic:collapsed'\r\n\r\n/** Queue operations injected by the session-scoped registration. */\r\nexport interface SteerQueueDockInjected {\r\n updateQueue: (itemId: string, action: SteerQueueAction) => Promise<void>\r\n /** Cancel the current turn while preserving the pending queue. */\r\n cancel: () => Promise<void>\r\n /** Re-send one plain-text message as a queued follow-up (the revoke path). */\r\n send: (text: string) => Promise<void>\r\n /** Re-deliver one plain-text message into the next step (the resume steer path). */\r\n sendSteer: (text: string) => Promise<void>\r\n /** Back-fill the composer draft (the pull-back-to-composer edit path). */\r\n setDraft: (text: string) => void\r\n notify: (level: 'info' | 'error', text: string) => void\r\n}\r\n\r\n/** Full props of a dock entry: InputZone owner share + session standard kit + global seat + the locale seat. */\r\nexport type SteerQueueDockProps = PropsRuntime<'conversation.input.dock'> & SteerQueueDockInjected & PropsLocale<'steer'>\r\n\r\n/** The planning tier of one queued row. */\r\nexport type SteerTier = 'now' | 'next' | 'later'\r\n\r\n/**\r\n * Resolve the action sequence for one planning button press. Pure so the\r\n * button wiring and its tests share one truth.\r\n * @param tier - the pressed planning tier.\r\n * @returns the queue mutation (red re-uses a steer-shaped action for the\r\n * yellow branch; the red branch performs cancel + remove + resend instead).\r\n */\r\nexport function planActionFor(tier: SteerTier): { action: SteerQueueAction; interruptFirst: boolean } {\r\n if (tier === 'later') return { action: { kind: 'steer' }, interruptFirst: false }\r\n // Yellow steers only; red cancels the running turn first, then steers.\r\n return { action: { kind: 'steer' }, interruptFirst: tier === 'now' }\r\n}\r\n\r\n/**\r\n * Project the tier badge of one inbox row from its placement. Pure so the\r\n * row rendering and its tests share one truth.\r\n * @param placement - the inbox projection placement.\r\n * @returns the tier badge, or null for non-visible context rows.\r\n */\r\nexport function badgeFor(placement: 'queued' | 'steering' | 'context'): SteerTier | null {\r\n if (placement === 'steering') return 'next'\r\n if (placement === 'queued') return 'later'\r\n return null\r\n}\r\n\r\n/**\r\n * Auto-grow one edit textarea to its content. The CSS max-height caps the\r\n * growth; beyond it the textarea scrolls internally. Height is reset first so\r\n * shrink (deleting lines) also tracks the content.\r\n * @param el - the textarea to resize in place.\r\n */\r\nexport function resizeEditor(el: HTMLTextAreaElement): void {\r\n el.style.height = 'auto'\r\n el.style.height = `${el.scrollHeight}px`\r\n}\r\n\r\n/**\r\n * Queue strip with three-tier planning: one item renders directly; multiple\r\n * items default to a collapsible count header; an empty queue renders nothing.\r\n */\r\nexport function SteerQueueDock({ useSession, input, updateQueue, cancel, send, setDraft, notify, t }: SteerQueueDockProps) {\r\n const inbox = useSession(s => s.queue)\r\n const queue = useMemo(() => inbox.filter(row => row.placement === 'queued'), [inbox])\r\n const steering = useMemo(() => inbox.filter(row => row.placement === 'steering'), [inbox])\r\n const running = useSession(s => s.running)\r\n const queueMutable = useSession(s => s.subagent === null)\r\n const [editing, setEditing] = useState<{ id: string; text: string } | null>(null)\r\n const [busy, setBusy] = useState<string | null>(null)\r\n const [clearing, setClearing] = useState(false)\r\n // Two-step clear confirmation: the first click arms the prompt, the second\r\n // executes; arming auto-reverts after a few seconds (no native confirm).\r\n const [confirmClear, setConfirmClear] = useState(false)\r\n const confirmTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\r\n // Drag-and-drop reorder source index and the current drop-target row.\r\n const dragIndex = useRef<number | null>(null)\r\n const [dragOver, setDragOver] = useState<number | null>(null)\r\n // Collapse state persists across mounts (dsh-queue-plus parity).\r\n const [collapsed, setCollapsed] = useState(() => {\r\n try {\r\n const v = localStorage.getItem(COLLAPSE_KEY)\r\n return v === null ? true : v === '1'\r\n } catch {\r\n return true\r\n }\r\n })\r\n // Session-level freeze lives in the composer-right control; the dock reads\r\n // the shared store for the banner and inert states. While frozen the\r\n // detached queue is rendered here (read-only) so the waiting area stays\r\n // visible — freezing only pauses the running behavior, it must not hide\r\n // the queued messages.\r\n const { frozen, pending: frozenPending } = useSyncExternalStore(freezeStore.subscribe, freezeStore.getSnapshot)\r\n const listId = useId()\r\n // The edit textarea; grown to its content on entry and on every input.\r\n const editorRef = useRef<HTMLTextAreaElement>(null)\r\n\r\n useEffect(() => {\r\n if (queue.length === 0 && !collapsed) setCollapsed(true)\r\n // Frozen-row edits use a `frozen:` id that never exists in the dsh queue;\r\n // skip the stale-check for them so the detached queue stays editable.\r\n if (editing !== null && !editing.id.startsWith('frozen:') && (!queueMutable || !queue.some(row => row.id === editing.id))) setEditing(null)\r\n }, [collapsed, editing, queue, queueMutable])\r\n\r\n // Persist the manual collapse state; clear the confirm timer on unmount.\r\n useEffect(() => {\r\n try {\r\n localStorage.setItem(COLLAPSE_KEY, collapsed ? '1' : '0')\r\n } catch {\r\n /* storage unavailable: in-memory only */\r\n }\r\n }, [collapsed])\r\n useEffect(() => () => {\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n }, [])\r\n\r\n // Grow the editor to its full content when a row enters edit mode.\r\n const editingId = editing?.id\r\n useEffect(() => {\r\n if (editingId === undefined) return\r\n const el = editorRef.current\r\n if (el !== null) resizeEditor(el)\r\n }, [editingId])\r\n\r\n // The dock stays mounted while the agent runs (the freeze entry must be\r\n // reachable before any message queues), while any row is pending, and while\r\n // the session is frozen (the detached queue stays visible).\r\n if (queue.length === 0 && steering.length === 0 && !running && !frozen) return null\r\n\r\n const interactionActive = queueMutable && (editing !== null || busy !== null || clearing)\r\n const expanded = !collapsed || interactionActive\r\n const listVisible = queue.length === 1 || expanded\r\n const planDisabled = !queueMutable || !running || frozen\r\n const nothingPending = queue.length === 0 && steering.length === 0\r\n // Reordering rebuilds the queue by re-sending texts; non-text rows cannot\r\n // be re-sent, so sorting is disabled while any such row is queued.\r\n const reorderUnsupported = queue.some(row => row.text === null)\r\n // Pull-back-to-composer is only offered when the composer draft is empty:\r\n // the pulled message back-fills the draft, so an occupied composer would be\r\n // overwritten. Steered (yellow/red) rows never offer it — once inserted,\r\n // they are not deeply re-edited.\r\n const composerEmpty = input.draft.trim() === ''\r\n\r\n const applyAction = async (\r\n itemId: string,\r\n action: SteerQueueAction,\r\n failure: string,\r\n ): Promise<boolean> => {\r\n setBusy(itemId)\r\n try {\r\n await updateQueue(itemId, action)\r\n return true\r\n } catch {\r\n notify('error', failure)\r\n return false\r\n } finally {\r\n setBusy(current => current === itemId ? null : current)\r\n }\r\n }\r\n\r\n const saveEdit = async (): Promise<void> => {\r\n if (editing === null || editing.text.trim() === '') return\r\n const itemId = editing.id\r\n const text = editing.text\r\n setBusy(itemId)\r\n try {\r\n await updateQueue(itemId, { kind: 'edit', content: [{ type: 'text', text }] })\r\n setEditing(null)\r\n } catch {\r\n // The edit failed (the agent may have claimed the row mid-edit): fall\r\n // back to the composer so the edited content is never lost. Only when\r\n // the composer is free — an occupied draft must not be overwritten.\r\n if (input.draft.trim() === '') {\r\n setDraft(text)\r\n setEditing(null)\r\n notify('error', t('queue.editFailed.pulledBack'))\r\n } else {\r\n notify('error', t('queue.editFailed'))\r\n }\r\n } finally {\r\n setBusy(current => current === itemId ? null : current)\r\n }\r\n }\r\n\r\n const steerRow = async (row: { id: string; text: string | null }, tier: Exclude<SteerTier, 'later'>): Promise<void> => {\r\n setBusy(row.id)\r\n try {\r\n if (tier === 'now') {\r\n // Interrupt, then re-submit: cancel stops the current run (keepInbox),\r\n // the row is removed so its identity cannot collide, and re-sending\r\n // the text arms the harness wake latch (the converged driver restarts\r\n // and processes it as the next turn's input). A plain steer after\r\n // cancel would re-insert a message already pending in next-turn and\r\n // the inbox rejects the duplicate.\r\n await cancel()\r\n await updateQueue(row.id, { kind: 'remove' })\r\n if (row.text !== null) await send(row.text)\r\n } else {\r\n await updateQueue(row.id, { kind: 'steer' })\r\n }\r\n } catch {\r\n notify('error', tier === 'now' ? t('steer.nowFailed') : t('steer.nextFailed'))\r\n } finally {\r\n setBusy(current => current === row.id ? null : current)\r\n }\r\n }\r\n\r\n /**\r\n * Revoke a steered (yellow) or interrupting (red) row back to later: remove\r\n * the admitted row and re-send its text as a queued follow-up, so it lands\r\n * in next-turn again (the yellow flow is reversible).\r\n */\r\n const revokeToLater = async (row: { id: string; text: string | null }): Promise<void> => {\r\n if (row.text === null) return\r\n setBusy(row.id)\r\n try {\r\n await updateQueue(row.id, { kind: 'remove' })\r\n await send(row.text)\r\n } catch {\r\n notify('error', t('steer.revokeFailed'))\r\n } finally {\r\n setBusy(current => current === row.id ? null : current)\r\n }\r\n }\r\n\r\n /**\r\n * Rebuild the queue in a new order: remove every queued row, then re-send\r\n * the texts sequentially so the agent's next-turn list matches the new\r\n * order. Concurrency protection (dsh-queue-plus parity): if a remove fails\r\n * with queue-item-not-found, the agent already claimed that row — the\r\n * rebuild stops immediately and nothing is re-sent, so the changed queue\r\n * is never scrambled.\r\n */\r\n const rebuildQueue = async (rows: readonly { id: string; text: string | null }[], next: readonly { id: string; text: string | null }[]): Promise<void> => {\r\n setBusy(REORDER_MARK)\r\n try {\r\n for (const row of rows) {\r\n try {\r\n await updateQueue(row.id, { kind: 'remove' })\r\n } catch (error) {\r\n if (error instanceof Error && error.message.includes('queue-item-not-found')) {\r\n notify('error', t('steer.reorderStale'))\r\n return\r\n }\r\n throw error\r\n }\r\n }\r\n for (const row of next) {\r\n if (row.text !== null) await send(row.text)\r\n }\r\n } catch {\r\n notify('error', t('steer.reorderFailed'))\r\n } finally {\r\n setBusy(null)\r\n }\r\n }\r\n\r\n /**\r\n * Move one queued row up/down in the FIFO order (arrow buttons).\r\n */\r\n const reorder = async (rowId: string, delta: -1 | 1): Promise<void> => {\r\n const rows = queue\r\n const index = rows.findIndex(row => row.id === rowId)\r\n const target = index + delta\r\n if (index < 0 || target < 0 || target >= rows.length) return\r\n const next = [...rows]\r\n const swapped = next[index] as typeof next[number]\r\n next[index] = next[target] as typeof next[number]\r\n next[target] = swapped\r\n if (next.some(row => row.text === null)) {\r\n notify('error', t('steer.reorder.unsupported'))\r\n return\r\n }\r\n await rebuildQueue(rows, next)\r\n }\r\n\r\n /**\r\n * Move one row to an absolute position (drag-and-drop drop handler).\r\n */\r\n const reorderTo = async (fromIndex: number, toIndex: number): Promise<void> => {\r\n if (fromIndex === toIndex) return\r\n const rows = queue\r\n if (rows[fromIndex] === undefined || rows[toIndex] === undefined) return\r\n const next = [...rows]\r\n const [moved] = next.splice(fromIndex, 1)\r\n if (moved === undefined) return\r\n next.splice(toIndex, 0, moved)\r\n if (next.some(row => row.text === null)) {\r\n notify('error', t('steer.reorder.unsupported'))\r\n return\r\n }\r\n await rebuildQueue(rows, next)\r\n }\r\n\r\n /** Arm or execute the two-step clear confirmation. */\r\n const armClear = (): void => {\r\n if (confirmClear) {\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n setConfirmClear(false)\r\n void clearAll()\r\n return\r\n }\r\n setConfirmClear(true)\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n confirmTimer.current = setTimeout(() => setConfirmClear(false), 3000)\r\n }\r\n\r\n /** Abort the armed clear confirmation (the explicit cancel button). */\r\n const cancelClear = (): void => {\r\n if (confirmTimer.current !== null) clearTimeout(confirmTimer.current)\r\n setConfirmClear(false)\r\n }\r\n\r\n /** Save an in-place edit of one detached (frozen) queued message. */\r\n const saveFrozenEdit = async (index: number): Promise<void> => {\r\n if (editing === null) return\r\n const text = editing.text.trim()\r\n if (text === '') {\r\n setEditing(null)\r\n return\r\n }\r\n updatePendingAt(index, text)\r\n setEditing(null)\r\n }\r\n\r\n /**\r\n * Pull one queued row back into the composer draft for editing: the text\r\n * back-fills the input box and the row leaves the queue; the user edits and\r\n * resubmits it as a fresh message.\r\n */\r\n const pullBackToComposer = async (row: { id: string; text: string | null }): Promise<void> => {\r\n if (row.text === null) return\r\n setDraft(row.text)\r\n setBusy(row.id)\r\n try {\r\n await updateQueue(row.id, { kind: 'remove' })\r\n } catch {\r\n notify('error', t('steer.pullBackFailed'))\r\n } finally {\r\n setBusy(current => current === row.id ? null : current)\r\n }\r\n }\r\n\r\n const clearAll = async (): Promise<void> => {\r\n setClearing(true)\r\n // Cancel the current run and clear every pending row (queued and\r\n // steering alike). Removal races the agent claiming rows;\r\n // item-not-found is a normal convergence and must not surface.\r\n const pending = [...queue, ...steering]\r\n try {\r\n await cancel()\r\n await Promise.all(pending.map(row =>\r\n updateQueue(row.id, { kind: 'remove' }).catch(() => undefined),\r\n ))\r\n } catch {\r\n notify('error', t('steer.clearFailed'))\r\n } finally {\r\n setClearing(false)\r\n }\r\n }\r\n\r\n return (\r\n <div className={css.dock} data-steer-dock=\"\">\r\n <div className={css.panel}>\r\n <div className={css.toolbar}>\r\n <button\r\n type=\"button\"\r\n className={css.header}\r\n aria-controls={listId}\r\n aria-expanded={expanded}\r\n disabled={queue.length <= 1 || interactionActive}\r\n onClick={() => { setCollapsed(value => !value) }}\r\n >\r\n <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>\r\n {queue.length > 0 && (\r\n <span className={css.count}>{t('queue.count', { n: queue.length })}</span>\r\n )}\r\n {queue.length > 1 && (\r\n <span className={css.chevron} aria-hidden>\r\n {expanded ? <IconChevronDownOutline14 /> : <IconChevronUpOutline14 />}\r\n </span>\r\n )}\r\n </button>\r\n <div className={css.toolbarActions}>\r\n {confirmClear && (\r\n <button\r\n type=\"button\"\r\n className={css.clearCancel}\r\n aria-label={t('steer.clear.cancel')}\r\n disabled={clearing || busy !== null || nothingPending}\r\n onClick={cancelClear}\r\n >\r\n <span className={css.clearLabel}>{t('steer.clear.cancel')}</span>\r\n </button>\r\n )}\r\n <Tooltip label={confirmClear ? t('steer.clear.confirm') : t('steer.clear')} side=\"top\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.clear} ${confirmClear ? css.clearConfirm : ''}`}\r\n aria-label={confirmClear ? t('steer.clear.confirm') : t('steer.clear')}\r\n disabled={clearing || busy !== null || nothingPending}\r\n onClick={armClear}\r\n >\r\n <IconTrashOutline16 size={14} />\r\n <span className={css.clearLabel}>{confirmClear ? t('steer.clear.confirm') : t('steer.clear')}</span>\r\n </button>\r\n </Tooltip>\r\n </div>\r\n </div>\r\n {frozen && (\r\n <div className={css.frozenBanner} role=\"status\">\r\n {t('steer.frozen')}\r\n </div>\r\n )}\r\n {/* While frozen the queue is detached into the shared store: render it\r\n here so the waiting area never disappears. The detached rows stay\r\n fully editable (edit / remove / reorder) — freezing only pauses\r\n the running behavior, it must not lock the queue. */}\r\n {frozen && frozenPending.length > 0 && (\r\n <ul className={css.frozenList} data-testid=\"frozen-list\">\r\n {frozenPending.map((entry, i) => {\r\n const editingFrozen = editing?.id === `frozen:${i}`\r\n const text = entry.text\r\n return (\r\n <li\r\n key={i}\r\n className={`${css.frozenRow} ${dragOver === i && frozen ? css.rowDragOver : ''}`}\r\n data-tier={entry.tier === 'force' ? 'now' : entry.tier === 'safe_point' ? 'next' : 'later'}\r\n data-editing={editingFrozen ? '' : undefined}\r\n draggable={!editingFrozen}\r\n title={!editingFrozen ? t('steer.dragReorder') : undefined}\r\n onDragStart={(event) => {\r\n if (editingFrozen) return\r\n dragIndex.current = i\r\n event.dataTransfer.effectAllowed = 'move'\r\n // Some engines only start HTML5 drag once data is set.\r\n event.dataTransfer.setData('text/plain', String(i))\r\n }}\r\n onDragOver={(event) => {\r\n if (dragIndex.current === null) return\r\n event.preventDefault()\r\n setDragOver(i)\r\n }}\r\n onDrop={(event) => {\r\n event.preventDefault()\r\n const from = dragIndex.current\r\n dragIndex.current = null\r\n setDragOver(null)\r\n if (from !== null) movePending(from, i)\r\n }}\r\n onDragEnd={() => {\r\n dragIndex.current = null\r\n setDragOver(null)\r\n }}\r\n >\r\n <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>\r\n <SteerBadge tier={entry.tier === 'force' ? 'now' : entry.tier === 'safe_point' ? 'next' : 'later'} t={t} />\r\n {editingFrozen\r\n ? (\r\n <textarea\r\n ref={editorRef}\r\n autoFocus\r\n className={css.editor}\r\n aria-label={t('queue.edit')}\r\n rows={1}\r\n value={editing?.text ?? text}\r\n onChange={(event) => { setEditing({ id: `frozen:${i}`, text: event.currentTarget.value }) }}\r\n onInput={(event) => { resizeEditor(event.currentTarget) }}\r\n onKeyDown={(event) => {\r\n if (event.key === 'Escape') {\r\n setEditing(null)\r\n return\r\n }\r\n if (event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing) {\r\n event.preventDefault()\r\n void saveFrozenEdit(i)\r\n }\r\n }}\r\n />\r\n )\r\n : <span className={css.preview}>{text}</span>}\r\n <div className={css.actions}>\r\n {editingFrozen ? (\r\n <>\r\n <Tooltip label={t('queue.save')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.save')}\r\n disabled={editing === null || editing.text.trim() === ''}\r\n onClick={() => { void saveFrozenEdit(i) }}\r\n >\r\n <IconCheckOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.cancelEdit')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.cancelEdit')}\r\n onClick={() => { setEditing(null) }}\r\n >\r\n <IconCloseOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n </>\r\n ) : (\r\n <>\r\n <Tooltip label={t('steer.moveUp')} side=\"bottom\" delayMs={500} disabled={i === 0}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveUp')}\r\n disabled={i === 0}\r\n onClick={() => movePending(i, i - 1)}\r\n >\r\n <IconChevronUpOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.moveDown')} side=\"bottom\" delayMs={500} disabled={i === frozenPending.length - 1}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveDown')}\r\n disabled={i === frozenPending.length - 1}\r\n onClick={() => movePending(i, i + 1)}\r\n >\r\n <IconChevronDownOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.edit')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.edit')}\r\n onClick={() => { setEditing({ id: `frozen:${i}`, text }) }}\r\n >\r\n <IconEditOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.remove')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.remove')}\r\n onClick={() => removePendingAt(i)}\r\n >\r\n <IconTrashOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n {/* Planned insertion tier: freezing pauses consumption,\r\n it must not lock the tier planning of each row. */}\r\n <span className={css.plan} role=\"group\" aria-label={t('steer.later.aria')}>\r\n <Tooltip label={t('steer.now')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNow}`}\r\n aria-label={t('steer.now')}\r\n aria-pressed={entry.tier === 'force' || undefined}\r\n onClick={() => setTierAt(i, 'force')}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.next')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNext}`}\r\n aria-label={t('steer.next')}\r\n aria-pressed={entry.tier === 'safe_point' || undefined}\r\n onClick={() => setTierAt(i, 'safe_point')}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.later')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierLater}`}\r\n aria-label={t('steer.later')}\r\n aria-pressed={entry.tier === 'queue' || undefined}\r\n onClick={() => setTierAt(i, 'queue')}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n </span>\r\n </>\r\n )}\r\n </div>\r\n <span className={css.frozenMark}>{t('steer.frozenBadge')}</span>\r\n </li>\r\n )\r\n })}\r\n </ul>\r\n )}\r\n <ul id={listId} className={css.list} hidden={!listVisible}>\r\n {listVisible && queue.map((row, index) => (\r\n <li\r\n key={row.id}\r\n className={`${css.row} ${dragOver === index ? css.rowDragOver : ''}`}\r\n data-tier={badgeFor('queued') ?? undefined}\r\n data-editing={editing?.id === row.id ? '' : undefined}\r\n draggable={queueMutable && !reorderUnsupported && busy === null && !frozen}\r\n title={queueMutable && !reorderUnsupported && busy === null && !frozen ? t('steer.dragReorder') : undefined}\r\n onDragStart={(event) => {\r\n dragIndex.current = index\r\n event.dataTransfer.effectAllowed = 'move'\r\n // Some engines only start HTML5 drag once data is set.\r\n event.dataTransfer.setData('text/plain', String(index))\r\n }}\r\n onDragOver={(event) => {\r\n if (dragIndex.current === null) return\r\n event.preventDefault()\r\n setDragOver(index)\r\n }}\r\n onDrop={(event) => {\r\n event.preventDefault()\r\n const from = dragIndex.current\r\n dragIndex.current = null\r\n setDragOver(null)\r\n if (from !== null) void reorderTo(from, index)\r\n }}\r\n onDragEnd={() => {\r\n dragIndex.current = null\r\n setDragOver(null)\r\n }}\r\n >\r\n {queue.length === 1 && <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>}\r\n <SteerBadge tier={badgeFor('queued')} t={t} />\r\n {editing?.id === row.id\r\n ? (\r\n <textarea\r\n ref={editorRef}\r\n autoFocus\r\n className={css.editor}\r\n aria-label={t('queue.edit')}\r\n rows={1}\r\n value={editing.text}\r\n onChange={(event) => { setEditing({ id: row.id, text: event.currentTarget.value }) }}\r\n onInput={(event) => { resizeEditor(event.currentTarget) }}\r\n onKeyDown={(event) => {\r\n if (event.key === 'Escape') {\r\n setEditing(null)\r\n return\r\n }\r\n // Plain Enter saves; Shift+Enter keeps editing (newline).\r\n if (event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing) {\r\n event.preventDefault()\r\n void saveEdit()\r\n }\r\n }}\r\n />\r\n )\r\n : <span className={css.preview}>{row.preview}</span>}\r\n {queueMutable && <div className={css.actions}>\r\n {editing?.id === row.id\r\n ? (\r\n <>\r\n <Tooltip label={t('queue.save')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.save')}\r\n disabled={busy !== null || editing.text.trim() === ''}\r\n onClick={() => { void saveEdit() }}\r\n >\r\n <IconCheckOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.cancelEdit')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.cancelEdit')}\r\n disabled={busy !== null}\r\n onClick={() => { setEditing(null) }}\r\n >\r\n <IconCloseOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n </>\r\n )\r\n : (\r\n <>\r\n <Tooltip label={t('steer.moveUp')} side=\"bottom\" delayMs={500} disabled={frozen || reorderUnsupported}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveUp')}\r\n title={reorderUnsupported ? t('steer.reorder.unsupported') : undefined}\r\n disabled={busy !== null || frozen || reorderUnsupported}\r\n onClick={() => { void reorder(row.id, -1) }}\r\n >\r\n <IconChevronUpOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.moveDown')} side=\"bottom\" delayMs={500} disabled={frozen || reorderUnsupported}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.moveDown')}\r\n title={reorderUnsupported ? t('steer.reorder.unsupported') : undefined}\r\n disabled={busy !== null || frozen || reorderUnsupported}\r\n onClick={() => { void reorder(row.id, 1) }}\r\n >\r\n <IconChevronDownOutline14 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.pullBack')} side=\"bottom\" delayMs={500} disabled={row.text === null || !composerEmpty}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('steer.pullBack')}\r\n title={row.text === null ? t('steer.pullBack.unsupported') : !composerEmpty ? t('steer.pullBack.composerBusy') : undefined}\r\n disabled={busy !== null || frozen || row.text === null || !composerEmpty}\r\n onClick={() => { void pullBackToComposer(row) }}\r\n >\r\n <IconRightUpOutline16 />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.edit')} side=\"bottom\" delayMs={500} disabled={row.text === null}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.edit')}\r\n title={row.text === null ? t('queue.edit.unsupported') : undefined}\r\n disabled={busy !== null || row.text === null}\r\n onClick={() => {\r\n if (row.text !== null) setEditing({ id: row.id, text: row.text })\r\n }}\r\n >\r\n <IconEditOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('queue.remove')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={css.action}\r\n aria-label={t('queue.remove')}\r\n disabled={busy !== null}\r\n onClick={() => {\r\n void applyAction(row.id, { kind: 'remove' }, t('queue.removeFailed'))\r\n }}\r\n >\r\n <IconTrashOutline16 size={14} />\r\n </button>\r\n </Tooltip>\r\n <span className={css.plan} role=\"group\" aria-label={t('steer.later.aria')}>\r\n <Tooltip label={t('steer.now')} side=\"bottom\" delayMs={500} disabled={planDisabled || row.text === null}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNow}`}\r\n aria-label={t('steer.now')}\r\n title={planDisabled ? t('steer.unavailable.running') : row.text === null ? t('steer.now.unsupported') : undefined}\r\n disabled={busy !== null || planDisabled || row.text === null}\r\n onClick={() => { void steerRow(row, 'now') }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.next')} side=\"bottom\" delayMs={500} disabled={planDisabled}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierNext}`}\r\n aria-label={t('steer.next')}\r\n title={planDisabled ? t('steer.unavailable.running') : undefined}\r\n disabled={busy !== null || planDisabled}\r\n onClick={() => { void steerRow(row, 'next') }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n <Tooltip label={t('steer.later')} side=\"bottom\" delayMs={500}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierLater}`}\r\n aria-label={t('steer.later')}\r\n aria-pressed\r\n disabled={busy !== null || clearing}\r\n onClick={() => {\r\n // Later is the default queue state; pressing it\r\n // keeps the row queued (no-op by design).\r\n }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n </span>\r\n </>\r\n )}\r\n </div>}\r\n </li>\r\n ))}\r\n </ul>\r\n {steering.length > 0 && (\r\n <ul className={css.steeringList} data-steering-list=\"\">\r\n {steering.map(row => (\r\n <li key={row.id} className={css.row} data-tier={badgeFor('steering') ?? undefined}>\r\n <span className={css.lead} aria-hidden><IconQueueOutline14 /></span>\r\n <SteerBadge tier={badgeFor('steering')} t={t} />\r\n <span className={css.preview}>{row.preview}</span>\r\n <div className={css.actions}>\r\n <Tooltip label={t('steer.revoke')} side=\"bottom\" delayMs={500} disabled={row.text === null}>\r\n <button\r\n type=\"button\"\r\n className={`${css.tier} ${css.tierLater}`}\r\n aria-label={t('steer.revoke')}\r\n title={row.text === null ? t('steer.revoke.unsupported') : undefined}\r\n disabled={busy !== null || row.text === null || frozen}\r\n onClick={() => { void revokeToLater(row) }}\r\n >\r\n <span className={css.dot} aria-hidden />\r\n </button>\r\n </Tooltip>\r\n </div>\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n/** Badge label keys per tier. */\r\nconst BADGE_KEYS: Record<SteerTier, string> = {\r\n now: 'steer.badge.now',\r\n next: 'steer.badge.next',\r\n later: 'steer.badge.later',\r\n}\r\n\r\n/** Badge tint classes per tier (present at bundle time; typed through the css-modules declaration). */\r\nconst BADGE_CLASSES: Record<SteerTier, string> = {\r\n now: css.badgeNow as string,\r\n next: css.badgeNext as string,\r\n later: css.badgeLater as string,\r\n}\r\n\r\n/** One row's tier badge: colored dot + label; context rows render nothing. */\r\nfunction SteerBadge({ tier, t }: { tier: SteerTier | null; t: SteerQueueDockProps['t'] }) {\r\n if (tier === null) return null\r\n return (\r\n <span className={`${css.badge} ${BADGE_CLASSES[tier]}`} data-badge={tier}>\r\n <span className={css.dot} aria-hidden />\r\n <span className={css.badgeLabel}>{t(BADGE_KEYS[tier])}</span>\r\n </span>\r\n )\r\n}\r\n","/**\r\n * Session freeze/resume control, mounted in the composer's right tool row\r\n * (`conversation.input.right`) so it is reachable before anything queues.\r\n *\r\n * Peak-hour pause semantics: freeze does NOT interrupt the running turn —it\r\n * finishes naturally. The queued messages are detached (removed, preserved in\r\n * the shared store), so the driver finds no pending work and stops after the\r\n * current turn. Resume re-submits the preserved texts, waking the driver and\r\n * continuing the queue.\r\n */\r\nimport { useSyncExternalStore } from 'react'\r\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\r\nimport { freezeStore } from './freeze-store.ts'\r\nimport type { FrozenTier } from './freeze-store.ts'\r\nimport type { SteerQueueDockInjected } from './steer-queue-dock.tsx'\r\nimport css from './freeze-button.module.css'\r\n\r\n/** Full props of the composer-right entry: InputZone owner share + injected verbs + locale seat. */\r\nexport type FreezeButtonProps = PropsRuntime<'conversation.input.right'> & SteerQueueDockInjected & PropsLocale<'steer'>\r\n\r\n/**\r\n * Freeze/resume toggle for the peak-hour scenario.\r\n * @param props - slot props; the session snapshot drives the detach list.\r\n */\r\nexport function FreezeButton({ session, updateQueue, cancel, send, sendSteer, notify, t }: FreezeButtonProps) {\r\n const { frozen } = useSyncExternalStore(freezeStore.subscribe, freezeStore.getSnapshot)\r\n\r\n const freeze = async (): Promise<void> => {\r\n // Detach every pending input row — queued (next-turn) and already-steered\r\n // (next-step) alike — so nothing stays in the live queue while frozen.\r\n // Steered rows keep their next intent as a safe_point plan for resume.\r\n const rows = session.queue.filter(row => row.placement === 'queued' || row.placement === 'steering')\r\n // Preserve plain-text copies; non-text rows cannot be re-sent and are\r\n // released by the freeze (documented limitation).\r\n const pending: { text: string; tier: FrozenTier }[] = rows.flatMap(row =>\r\n row.text === null ? [] : [{ text: row.text, tier: row.placement === 'steering' ? 'safe_point' : 'queue' }],\r\n )\r\n // Detach every pending row: the running turn finishes naturally, then the\r\n // driver finds no pending work and stops.\r\n await Promise.all(rows.map(row =>\r\n updateQueue(row.id, { kind: 'remove' }).catch(() => undefined),\r\n ))\r\n freezeStore.set({ frozen: true, pending })\r\n }\r\n\r\n const resume = async (): Promise<void> => {\r\n const pending = freezeStore.getSnapshot().pending\r\n freezeStore.set({ frozen: false, pending: [] })\r\n try {\r\n // Re-submit the preserved queue in FIFO order honoring each entry's\r\n // planned insertion tier: force (red) interrupts the current run first,\r\n // safe_point (yellow) steers into the next step, queue (green) flows\r\n // through the wake-and-continue chain.\r\n for (const entry of pending) {\r\n if (entry.tier === 'force') await cancel()\r\n if (entry.tier === 'safe_point') await sendSteer(entry.text)\r\n else await send(entry.text)\r\n }\r\n } catch {\r\n notify('error', t('steer.resumeFailed'))\r\n }\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={css.freeze}\r\n aria-label={frozen ? t('steer.resume') : t('steer.freeze')}\r\n aria-pressed={frozen || undefined}\r\n title={frozen ? t('steer.frozen') : undefined}\r\n onClick={() => {\r\n if (frozen) void resume()\r\n else void freeze()\r\n }}\r\n >\r\n <span className={css.label}>{frozen ? t('steer.resume') : t('steer.freeze')}</span>\r\n </button>\r\n )\r\n}\r\n","/**\r\n * Busy-Enter row hiding: shadows the official `settings.general.item` entry\r\n * `composer-enter` (same cell id, priority -1) so the lower priority wins and\r\n * the official \"繁忙时 Enter 键行为\" row never renders while this plugin is\r\n * mounted.\r\n *\r\n * The behavior itself is taken over by the plugin: plain Enter stays\r\n * queue-later (green), the planning dock owns yellow/red, and the plugin apply\r\n * pins `ui-conversation.busyEnter` to `queue` so no stale preference can\r\n * leak through the hidden row.\r\n */\r\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\r\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\r\n\r\n/** Full props of a settings-row entry (unused: the row renders nothing). */\r\nexport type HideEnterRowProps = PropsRuntime<'settings.general.item'> & PropsLocale<'steer'>\r\n\r\n/** Render nothing: the official busy-Enter row is hidden while mounted. */\r\nexport function HideEnterRow(_props: HideEnterRowProps): null {\r\n return null\r\n}\r\n","/**\r\n * dsh-input-traffic —browser half.\r\n *\r\n * The whole takeover lives here:\r\n * 1. registers the `steer` dictionaries;\r\n * 2. pins `ui-conversation.busyEnter` to `queue` (plain Enter = green later)\r\n * so the hidden official row cannot leak a stale queue/steer preference;\r\n * 3. shadows the official queue dock (`conversation.input.dock` cell id\r\n * `queue`, priority -1) with the three-tier planning strip;\r\n * 4. shadows the official busy-Enter settings row (`settings.general.item`\r\n * cell id `composer-enter`, priority -1) with a null render.\r\n *\r\n * All @deepseek-ai/* imports are type-only: collaboration happens through\r\n * cordis services and slot registration only (client bundle purity).\r\n */\r\nimport type { ClientContext, SessionId } from '@deepseek-ai/dsh-client-runtime/client'\r\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\r\nimport type {} from '@deepseek-ai/dsh-client-ui-settings/client'\r\nimport type { IConversation } from '@deepseek-ai/dsh-client-ui-conversation/client'\r\nimport { NS, en, zh } from './locales.ts'\r\nimport { SteerQueueDock } from './steer-queue-dock.tsx'\r\nimport type { SteerQueueDockInjected } from './steer-queue-dock.tsx'\r\nimport { FreezeButton } from './freeze-button.tsx'\r\nimport { HideEnterRow } from './hide-enter-row.tsx'\r\n\r\n/** Durable conversation settings namespace owned by ui-conversation. */\r\nconst CONVERSATION_SETTINGS_NAMESPACE = 'ui-conversation'\r\n\r\n/** Busy-Enter field inside that namespace; the plugin pins it to queue. */\r\nconst BUSY_ENTER_FIELD = 'busyEnter'\r\n\r\n/**\r\n * Deliver one plain-text message into the session's next step. The exposed\r\n * conversation `send` verb only queues into the next turn, so resume steers\r\n * through the session face's steer-mode prompt instead (no harness change).\r\n * @param ctx - root context (resolves the session face behind the scope).\r\n * @param actx - agent-scoped context of the owning session.\r\n * @param text - message text to deliver.\r\n */\r\nfunction steerPrompt(ctx: ClientContext, actx: ClientContext, text: string): Promise<void> {\r\n const session = ctx.sessions.sessionOf(actx)\r\n if (session === undefined) return Promise.reject(new Error('steer resume: session scope unavailable'))\r\n return session.prompt([{ type: 'text', text }], 'steer').then((result) => {\r\n if (!result.ok) {\r\n const error = result.error ?? { code: 'unknown', message: 'steer prompt rejected' }\r\n throw new Error(`conversation.sendSteer failed: ${error.code}: ${error.message}`)\r\n }\r\n })\r\n}\r\n\r\n/** Services required by the browser half. */\r\nexport const inject = ['slots', 'locale', 'sessions', 'conversation', 'settingsScope']\r\n\r\n/**\r\n * Client plugin body: dictionaries, busy-Enter pinning, and the two slot\r\n * shadowings.\r\n * @param ctx - client root context.\r\n */\r\nexport function apply(ctx: ClientContext): void {\r\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-input-traffic: dictionaries')\r\n\r\n // Take over the busy-Enter behavior: plain Enter stays queue-later while\r\n // the official row is hidden. Pinning here also repairs a persisted `steer`\r\n // preference that would otherwise keep working invisibly behind the hidden\r\n // row. Best-effort: a memory-mode host simply accepts it locally.\r\n const conversationSettings = ctx.settingsScope.bind<{ busyEnter: 'queue' | 'steer' }>({\r\n namespace: CONVERSATION_SETTINGS_NAMESPACE,\r\n })\r\n void conversationSettings.set(BUSY_ENTER_FIELD, 'queue')\r\n\r\n // Shadow the official queue dock with the three-tier planning strip.\r\n ctx.slots.inject('conversation.input.dock', () => ctx.slots.register({\r\n name: 'conversation.input.dock',\r\n id: 'queue',\r\n order: 20,\r\n priority: -1,\r\n locale: NS,\r\n inject: (sessionId: SessionId): SteerQueueDockInjected => {\r\n const actx = ctx.sessions.scope(sessionId)\r\n if (actx === undefined) throw new Error(`steer dock: session \"${sessionId}\" resolved no scope`)\r\n const conversation = actx.get<IConversation>('conversation')\r\n if (conversation === undefined) throw new Error('steer dock: conversation service unavailable')\r\n return {\r\n updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),\r\n cancel: () => conversation.cancel(),\r\n send: (text) => conversation.send(text),\r\n sendSteer: (text) => steerPrompt(ctx, actx, text),\r\n setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text) },\r\n notify: (level, text) => { conversation.input.for(actx).notify(level, text) },\r\n }\r\n },\r\n }, SteerQueueDock))\r\n\r\n // Composer-right freeze/resume control (reachable before anything queues).\r\n ctx.slots.inject('conversation.input.right', () => ctx.slots.register({\r\n name: 'conversation.input.right',\r\n id: 'steer-freeze',\r\n order: 30,\r\n locale: NS,\r\n inject: (sessionId: SessionId): SteerQueueDockInjected => {\r\n const actx = ctx.sessions.scope(sessionId)\r\n if (actx === undefined) throw new Error(`steer freeze: session \"${sessionId}\" resolved no scope`)\r\n const conversation = actx.get<IConversation>('conversation')\r\n if (conversation === undefined) throw new Error('steer freeze: conversation service unavailable')\r\n return {\r\n updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),\r\n cancel: () => conversation.cancel(),\r\n send: (text) => conversation.send(text),\r\n sendSteer: (text) => steerPrompt(ctx, actx, text),\r\n setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text) },\r\n notify: (level, text) => { conversation.input.for(actx).notify(level, text) },\r\n }\r\n },\r\n }, FreezeButton))\r\n\r\n // Hide the official busy-Enter settings row (null render wins the cell).\r\n ctx.slots.inject('settings.general.item', () => ctx.slots.register({\r\n name: 'settings.general.item',\r\n id: 'composer-enter',\r\n order: 20,\r\n priority: -1,\r\n locale: NS,\r\n }, HideEnterRow))\r\n}\r\n"],"mappings":"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"}
@@ -6,5 +6,5 @@ export type FreezeButtonProps = PropsRuntime<'conversation.input.right'> & Steer
6
6
  * Freeze/resume toggle for the peak-hour scenario.
7
7
  * @param props - slot props; the session snapshot drives the detach list.
8
8
  */
9
- export declare function FreezeButton({ session, updateQueue, cancel, send, notify, t }: FreezeButtonProps): import("react").JSX.Element;
9
+ export declare function FreezeButton({ session, updateQueue, cancel, send, sendSteer, notify, t }: FreezeButtonProps): import("react").JSX.Element;
10
10
  //# sourceMappingURL=freeze-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"freeze-button.d.ts","sourceRoot":"","sources":["../../../src/client/freeze-button.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAGjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAGpE,oGAAoG;AACpG,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,0BAA0B,CAAC,GAAG,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAExH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,iBAAiB,+BAgDhG"}
1
+ {"version":3,"file":"freeze-button.d.ts","sourceRoot":"","sources":["../../../src/client/freeze-button.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAIjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAGpE,oGAAoG;AACpG,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,0BAA0B,CAAC,GAAG,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAExH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,iBAAiB,+BAsD3G"}
@@ -16,16 +16,19 @@ import css from './freeze-button.module.css';
16
16
  * Freeze/resume toggle for the peak-hour scenario.
17
17
  * @param props - slot props; the session snapshot drives the detach list.
18
18
  */
19
- export function FreezeButton({ session, updateQueue, cancel, send, notify, t }) {
19
+ export function FreezeButton({ session, updateQueue, cancel, send, sendSteer, notify, t }) {
20
20
  const { frozen } = useSyncExternalStore(freezeStore.subscribe, freezeStore.getSnapshot);
21
21
  const freeze = async () => {
22
- const queued = session.queue.filter(row => row.placement === 'queued');
22
+ // Detach every pending input row queued (next-turn) and already-steered
23
+ // (next-step) alike — so nothing stays in the live queue while frozen.
24
+ // Steered rows keep their next intent as a safe_point plan for resume.
25
+ const rows = session.queue.filter(row => row.placement === 'queued' || row.placement === 'steering');
23
26
  // Preserve plain-text copies; non-text rows cannot be re-sent and are
24
27
  // released by the freeze (documented limitation).
25
- const pending = queued.flatMap(row => row.text === null ? [] : [{ text: row.text, tier: 'queue' }]);
26
- // Detach every queued row: the running turn finishes naturally, then the
28
+ const pending = rows.flatMap(row => row.text === null ? [] : [{ text: row.text, tier: row.placement === 'steering' ? 'safe_point' : 'queue' }]);
29
+ // Detach every pending row: the running turn finishes naturally, then the
27
30
  // driver finds no pending work and stops.
28
- await Promise.all(queued.map(row => updateQueue(row.id, { kind: 'remove' }).catch(() => undefined)));
31
+ await Promise.all(rows.map(row => updateQueue(row.id, { kind: 'remove' }).catch(() => undefined)));
29
32
  freezeStore.set({ frozen: true, pending });
30
33
  };
31
34
  const resume = async () => {
@@ -33,13 +36,16 @@ export function FreezeButton({ session, updateQueue, cancel, send, notify, t })
33
36
  freezeStore.set({ frozen: false, pending: [] });
34
37
  try {
35
38
  // Re-submit the preserved queue in FIFO order honoring each entry's
36
- // planned insertion tier: a force (red) entry interrupts the current
37
- // run first so it is consumed immediately; safe_point/later entries
38
- // flow through the wake-and-continue chain.
39
+ // planned insertion tier: force (red) interrupts the current run first,
40
+ // safe_point (yellow) steers into the next step, queue (green) flows
41
+ // through the wake-and-continue chain.
39
42
  for (const entry of pending) {
40
43
  if (entry.tier === 'force')
41
44
  await cancel();
42
- await send(entry.text);
45
+ if (entry.tier === 'safe_point')
46
+ await sendSteer(entry.text);
47
+ else
48
+ await send(entry.text);
43
49
  }
44
50
  }
45
51
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"freeze-button.js","sourceRoot":"","sources":["../../../src/client/freeze-button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"freeze-button.js","sourceRoot":"","sources":["../../../src/client/freeze-button.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,wCAAwC,CAAA;AAgBtF,6CAA6C;AAC7C,eAAO,MAAM,MAAM,UAAmE,CAAA;AAEtF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CA+D9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,wCAAwC,CAAA;AAmCtF,6CAA6C;AAC7C,eAAO,MAAM,MAAM,UAAmE,CAAA;AAEtF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAiE9C"}
@@ -6,6 +6,25 @@ import { HideEnterRow } from "./hide-enter-row.js";
6
6
  const CONVERSATION_SETTINGS_NAMESPACE = 'ui-conversation';
7
7
  /** Busy-Enter field inside that namespace; the plugin pins it to queue. */
8
8
  const BUSY_ENTER_FIELD = 'busyEnter';
9
+ /**
10
+ * Deliver one plain-text message into the session's next step. The exposed
11
+ * conversation `send` verb only queues into the next turn, so resume steers
12
+ * through the session face's steer-mode prompt instead (no harness change).
13
+ * @param ctx - root context (resolves the session face behind the scope).
14
+ * @param actx - agent-scoped context of the owning session.
15
+ * @param text - message text to deliver.
16
+ */
17
+ function steerPrompt(ctx, actx, text) {
18
+ const session = ctx.sessions.sessionOf(actx);
19
+ if (session === undefined)
20
+ return Promise.reject(new Error('steer resume: session scope unavailable'));
21
+ return session.prompt([{ type: 'text', text }], 'steer').then((result) => {
22
+ if (!result.ok) {
23
+ const error = result.error ?? { code: 'unknown', message: 'steer prompt rejected' };
24
+ throw new Error(`conversation.sendSteer failed: ${error.code}: ${error.message}`);
25
+ }
26
+ });
27
+ }
9
28
  /** Services required by the browser half. */
10
29
  export const inject = ['slots', 'locale', 'sessions', 'conversation', 'settingsScope'];
11
30
  /**
@@ -41,6 +60,7 @@ export function apply(ctx) {
41
60
  updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
42
61
  cancel: () => conversation.cancel(),
43
62
  send: (text) => conversation.send(text),
63
+ sendSteer: (text) => steerPrompt(ctx, actx, text),
44
64
  setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text); },
45
65
  notify: (level, text) => { conversation.input.for(actx).notify(level, text); },
46
66
  };
@@ -63,6 +83,7 @@ export function apply(ctx) {
63
83
  updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
64
84
  cancel: () => conversation.cancel(),
65
85
  send: (text) => conversation.send(text),
86
+ sendSteer: (text) => steerPrompt(ctx, actx, text),
66
87
  setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text); },
67
88
  notify: (level, text) => { conversation.input.for(actx).notify(level, text); },
68
89
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export interface SteerQueueDockInjected {
18
18
  cancel: () => Promise<void>;
19
19
  /** Re-send one plain-text message as a queued follow-up (the revoke path). */
20
20
  send: (text: string) => Promise<void>;
21
+ /** Re-deliver one plain-text message into the next step (the resume steer path). */
22
+ sendSteer: (text: string) => Promise<void>;
21
23
  /** Back-fill the composer draft (the pull-back-to-composer edit path). */
22
24
  setDraft: (text: string) => void;
23
25
  notify: (level: 'info' | 'error', text: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"steer-queue-dock.d.ts","sourceRoot":"","sources":["../../../src/client/steer-queue-dock.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAYjF,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAQrB,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,kEAAkE;IAClE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,8EAA8E;IAC9E,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD;AAED,gHAAgH;AAChH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,yBAAyB,CAAC,GAAG,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAEzH,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAIpG;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAIvF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAG1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,mBAAmB,sCAyvBxH"}
1
+ {"version":3,"file":"steer-queue-dock.d.ts","sourceRoot":"","sources":["../../../src/client/steer-queue-dock.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAYjF,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAQrB,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,kEAAkE;IAClE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,8EAA8E;IAC9E,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,oFAAoF;IACpF,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD;AAED,gHAAgH;AAChH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,yBAAyB,CAAC,GAAG,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAEzH,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAIpG;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAIvF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAG1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,mBAAmB,sCAyvBxH"}
@@ -1 +1 @@
1
- {"version":3,"file":"steer-queue-dock.js","sourceRoot":"","sources":["../../../src/client/steer-queue-dock.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steer-queue-dock.js","sourceRoot":"","sources":["../../../src/client/steer-queue-dock.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-input-traffic",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "type": "module",
5
5
  "description": "Busy-time input queue for the DeepSeek Harness web GUI: three-tier (now/next/later) planning, queue editing with drag-to-reorder and concurrency protection, interject (steer) and interrupt, batch clear with confirm, session freeze - a cordis client plugin, no dsh source changes, no PR required",
6
6
  "repository": {