dsh-recall-plugin 2.3.22 → 2.3.23

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/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  本文件格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循语义化版本。
4
4
 
5
+ ## [2.3.23] - 2026-09-18
6
+
7
+ ### 修复
8
+
9
+ - **撤回后子会话不打开(dsh 0.1.6-alpha.2 移除 `ISessions.open`,实弹冒烟发现)**:alpha.2 起 `ISessions` 只保留列表快照与 `retain`/`using` 引用模型,契约注释写明「navigation belongs to view owners」——原调用的 `sessions.open(sessionId)` 已不存在,守卫判断静默跳过,于是撤回的 execute/fork/lineage 全部正常,唯独 fork 出的子会话不会被打开:页面停在工作区空态。导航入口迁至独立 `uiWorkspace` 服务(`dsh-client-ui-workspace`)的 `openSession(target: SessionTarget)`(`SessionTarget = SessionId | SubagentAddress`,官方 UI 同样传裸 sessionId;`ctx.workspaces` 只有归档能力、无导航)。修复=client `inject` 声明 `uiWorkspace` + `ctx.uiWorkspace` 类型化(`ClientUiWorkspaceService`),导航点改双版本分支:`uiWorkspace.openSession(id)` 优先、旧版回退 `sessions.open(id)`(撤回节点与快照管理「切换」两处)。`tests/probe/api-surface.test.js` 新增「会话导航归属」2 例钉住两侧事实,compat-audit 新增 I37。实弹复验:撤回第二条消息后子会话自动打开、对话回退、标题继承、被撤回消息文本回填输入框。
10
+
11
+ - **快照管理「切换」把归档会话放进点击路径,一点就落到工作区空态**:按钮判据只查会话是否在官方列表里(`sessions.list`),依据「已归档会话不在列表」的假设;alpha.2 起该快照包含归档会话,而归档会话不是合法的主视图选择——官方导航会先设置选择、随即按「归档选择不保留」把它清空,视图落空态(撤回后归档的原会话最常命中)。修复=判据叠加归档集合排除:`ClientWorkspacesService` 补 `list` 面,从 `ctx.workspaces.list.getSnapshot().archivedSessionIds` 取归档集合(服务经 `buildSettingsCards` 传入快照管理卡),只有「在官方列表且未归档」的会话才渲染「切换」。实弹复验:归档会话行不再出现「切换」,保留「切换」的活跃会话点击后正常打开。
12
+
13
+ ### 变更
14
+
15
+ - **旧版回退核验 + 兼容声明下界收窄**:本批次三处改码都在跨版本面上(静态 `uiWorkspace` inject、`plugins.bundle.config` 注册、读 `workspaces` 归档集合),故把全局 dsh 降到纯 `0.1.6-alpha.1`(`npm install -g @deepseek-ai/dsh@0.1.6-alpha.1 --before=2026-09-16`;不带 `--before` 会因 dsh 自身 `^0.1.6-alpha.1` 放行同 tuple 预发布而混入 alpha.2 的包)实弹一轮,确认未升级 dsh 的用户更新插件后不会变砖——三项全过、控制台零报错:旧 slot(`settings.plugin.item`)卡片照常渲染且样式注入正常、`plugins.bundle.config` 在旧渲染器上是静默 no-op;撤回 fork 后子会话由 `uiWorkspace.openSession` 正常打开(切过去后再发消息、新快照记到子会话 id 为证);快照管理树按 lineage 聚族(`v1/2`/`v2/2`)。同时按 registry 产物逐版核验 `uiWorkspace` 服务可用性:`0.1.2-alpha.2` 起有该服务但无 `openSession`(该线走 `sessions.open` 回退,`ISessions.open` 到 alpha.1 都在)、`0.1.5-rc.2` 起 `openSession` 在位,而 **`0.1.1-rc.2` 线没有该服务**(同线亦缺 `sessions`/`workspaces`:`dsh-api-session-controller`/`dsh-api-workspace-controller` 无该版本发布)——静态声明无法满足,插件 UI 会静默不渲染。据此**7 个 dsh-* peer 范围去掉 `>=0.1.1-rc.2 <0.1.2` 段**,让该组合在安装期被明确拦住而不是装上了白屏;README 双语兼容声明与 badge 上界由 `0.1.6-alpha.1` 更新为 `0.1.6-alpha.2` 并写明不再声明支持 0.1.1-rc.2 及更早的原因;compat-audit I37 补「服务可用性」条目,实弹记录见 `docs/plans/completed/smoke-checklist-records.md`。核验完装回 `0.1.6-alpha.2`(树内 8 个 `@deepseek-ai/dsh-*` 包一致),`npm run check:upgrade` 三层门禁全绿(check:dsh 全一致 / test:probe 39 通过 / verify:host 通过)。
16
+
17
+ - **README 双语补充快照捕获窗口的边界说明**:快照为异步捕获,从收到消息到 `git add` 之间有约 0.5–1.5 秒窗口(Windows 上一次 PowerShell 启动即约 0.4 秒;index.json 记的 `time` 是脚本发起时刻而非捕获时刻)。秒级完成的琐碎任务若落在窗口内改完文件,该条快照会连带捕获本轮改动——撤回时文件回退成为空操作(预览显示「共 0 个文件将变更」),对话回退不受影响,且撤回前仍先落 `snap-pre-rollback-*` 安全快照,无数据丢失。此为异步快照的固有边界,无法消除(除非让每条消息同步阻塞等快照完成)。
18
+ - **dsh 0.1.6-alpha.2 兼容适配:设置卡片迁挂插件管理页 slot(I12)**:全局实装 `@deepseek-ai/dsh@0.1.6-alpha.2`(npm dist-tag `alpha`,tag commit `ddefc45`)后核查发现旧设置页插件 tab 整体移除——`settings.plugin.item` 与 `settings.plugins.tab` 产物字符串归零,新增 ui-plugin-manager 插件管理页,声明 `plugins.item` / `plugins.bundle.config` / `plugins.row.config` 三 slot(bundle 自带配置走 `plugins.bundle.config`,keyed by bundle 包名,page 视图要求表单自含保存控件)。Client 侧改为双键并注册:新增 `plugins.bundle.config`(key=`dsh-recall-plugin`,插件管理页 bundle 页渲染 RecallSettingsCard)+ 保留旧键 `settings.plugin.item`(key=`dsh-recall`,0.1.6-alpha.1 及以前生效)——官方 renderer 对未声明 key 的 `slots.inject` 是静默 no-op(`specDynamic` 为 undefined 直接 return),双版本各吃各键无需运行时探测。其余消费面零破坏:fork 签名与切点 `cut = boundary.seq + 1`(I35 根治)逐字保持;connection `fetch.register` 契约不变(仅新增 `streamBaseUrl?` 可选字段);client sessions 改 retain/release 引用模型(多实例共存),`binding()` 收窄为「只借已 retain 的会话」——附件重建链(I34)全链 typeof 降级兜底,最坏仅附件不重建(导航面另有两处问题,见上方修复)。peer 范围 `>=0.1.6-alpha.1 <0.1.7` 天然覆盖 alpha.2 无需扩展。机器化断言:`npm test` 361/361 + `check:upgrade` 三层门禁全绿(probe 37/37)。reference/ 镜像按 alpha.2 tag 重拉(仅 06/09 文档文字修订);compat-audit 头部追加 alpha.2 核验段并更新 I12。实弹冒烟记录见 `docs/plans/completed/smoke-checklist-records.md`。
19
+
5
20
  ## [2.3.22] - 2026-09-16
6
21
 
7
22
  ### 修复
package/README.en.md CHANGED
@@ -7,7 +7,7 @@
7
7
  ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-blue)
8
8
  ![Build](https://img.shields.io/badge/pure%20JS-green)
9
9
 
10
- [![DSH](https://img.shields.io/badge/DSH-0.1.6--alpha.1-blue)](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.1)
10
+ [![DSH](https://img.shields.io/badge/DSH-0.1.6--alpha.2-blue)](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.2)
11
11
  ![DSH](https://img.shields.io/badge/DSH-Desktop-blue)
12
12
  ---
13
13
  Under any message you've sent, click "↶ Recall" — **your workspace files and the conversation history roll back to just before that message was sent**.
@@ -58,6 +58,7 @@ Abilities with a version in parentheses require that version or later; the rest
58
58
  Boundaries accepted by design and edge cases not yet covered — worth checking before you rely on them.
59
59
 
60
60
  - Snapshots are created **when a message is sent**; messages from before the plugin was enabled have no snapshot and show no recall button.
61
+ - Snapshots are **best-effort**: there is a 0.5–1.5 second window between the message arriving and `git add` (on Windows, a single PowerShell start alone costs about 0.4s). If a trivial task finishes editing files inside that window, the snapshot captures the turn's own changes — the file rollback then becomes a no-op (the preview panel reports "0 files will change") while the conversation rollback is unaffected.
61
62
  - The first user message of a session cannot roll back the conversation (files only), because fork requires an earlier turn boundary.
62
63
  - Recall cannot be initiated while an agent is running in the target workspace (by design — stop the agent first).
63
64
  - Supports Windows (PowerShell 5.1/7 + git CLI) and Linux/macOS (bash + git CLI). Windows is thoroughly verified on real machines; Linux has been fully tested on WSL2 (Ubuntu 26.04, bash 5.3 + git 2.53), including Chinese paths, home fallback, session cleanup, and gc; the macOS side is written to be bash 3.2 compatible but has not been tested on real hardware yet.
@@ -67,7 +68,7 @@ Boundaries accepted by design and edge cases not yet covered — worth checking
67
68
 
68
69
  ## Installation
69
70
 
70
- Prerequisites: git CLI (without it the recall button won't appear and a notice shows at the top of the page — DSH itself keeps running); PowerShell 5.1 / 7 on Windows, bash + git on Linux/macOS; DSH `0.1.1-rc.2` through `0.1.6-alpha.1` (peerDependencies open a window per minor line: `>=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7`, consistent with the `dsh.compatibility.dshReleases` declaration; each line is anchored at its first verified version with an exclusive upper bound at the next minor, so later prereleases/releases within a verified line are admitted without touching the peer declaration, while unverified new minor lines (e.g. 0.1.7) remain blocked).
71
+ Prerequisites: git CLI (without it the recall button won't appear and a notice shows at the top of the page — DSH itself keeps running); PowerShell 5.1 / 7 on Windows, bash + git on Linux/macOS; DSH `0.1.2-alpha.1` through `0.1.6-alpha.2` (peerDependencies open a window per minor line: `>=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7`, consistent with the `dsh.compatibility.dshReleases` declaration; each line is anchored at its first verified version with an exclusive upper bound at the next minor, so later prereleases/releases within a verified line are admitted without touching the peer declaration, while unverified new minor lines (e.g. 0.1.7) remain blocked). `0.1.1-rc.2` and earlier are no longer declared supported: their client runtime lacks the `sessions`/`workspaces`/`uiWorkspace` services, so the plugin UI silently fails to render.
71
72
 
72
73
  - Official DSH plugin command: install and auto-mount into the web profile
73
74
  ```powershell
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![npm version](https://img.shields.io/npm/v/dsh-recall-plugin?style=flat-square&label=npm&color=3178C6)](https://www.npmjs.com/package/dsh-recall-plugin)
6
6
  [![npm downloads](https://img.shields.io/npm/dm/dsh-recall-plugin?style=flat-square&label=downloads&color=1F883D)](https://www.npmjs.com/package/dsh-recall-plugin)
7
7
  ![License](https://img.shields.io/badge/license-MIT-blue)
8
- [![DSH](https://img.shields.io/badge/DSH-0.1.6--alpha.1-blue)](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.1)
8
+ [![DSH](https://img.shields.io/badge/DSH-0.1.6--alpha.2-blue)](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.2)
9
9
  ---
10
10
  在任意一条你发过的消息下方点「↶ 撤回」——**工作区文件和对话历史一起回到那条消息发出之前的状态**。
11
11
  ---
@@ -56,6 +56,7 @@
56
56
  设计上接受的边界与尚未覆盖的极端情形,使用前值得先确认。
57
57
 
58
58
  - 快照在**消息发送时**创建,插件启用前的历史消息没有快照,不显示撤回按钮。
59
+ - 快照是**尽力捕获**:从收到消息到 `git add` 之间有约 0.5–1.5 秒窗口(Windows 上仅一次 PowerShell 启动就占约 0.4 秒)。秒级完成的琐碎任务若在这个窗口内改完文件,该快照会连带捕获本轮改动——撤回时文件回退成为空操作(预览面板显示「共 0 个文件将变更」),对话回退不受影响。
59
60
  - 会话第一条用户消息无法回退对话(仅文件回退),因为 fork 需要更早的 turn 边界。
60
61
  - 目标工作区的 agent 正在运行时无法发起撤回(防护设计,先停止 agent 再撤回)。
61
62
  - 支持 Windows(PowerShell 5.1/7 + git CLI)与 Linux/macOS(bash + git CLI)。Windows 真机验证充分;Linux 已在 WSL2(Ubuntu 26.04,bash 5.3 + git 2.53)实测全流程(含中文路径、home 降级、会话清理、gc);macOS 侧脚本按 bash 3.2 兼容编写,尚未真机实测。
@@ -65,7 +66,7 @@
65
66
 
66
67
  ## 安装
67
68
 
68
- 前置:git CLI(未装时撤回按钮不出现,页面顶部会提示安装 git,不影响 DSH 运行);Windows 上 PowerShell 5.1 / 7 均可,Linux/macOS 需 bash + git;DSH `0.1.1-rc.2` 至 `0.1.6-alpha.1`(peerDependencies 为按 minor 版本线开窗 `>=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7`,与 `dsh.compatibility.dshReleases` 声明一致;每条线以首个核验版本为下限、开一条上界到下一 minor 的区间,同线内后续 prerelease/正式版自动放行、无需改 peer 声明,未验证的新 minor 线(如 0.1.7)仍被拦截)。
69
+ 前置:git CLI(未装时撤回按钮不出现,页面顶部会提示安装 git,不影响 DSH 运行);Windows 上 PowerShell 5.1 / 7 均可,Linux/macOS 需 bash + git;DSH `0.1.2-alpha.1` 至 `0.1.6-alpha.2`(peerDependencies 为按 minor 版本线开窗 `>=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7`,与 `dsh.compatibility.dshReleases` 声明一致;每条线以首个核验版本为下限、开一条上界到下一 minor 的区间,同线内后续 prerelease/正式版自动放行、无需改 peer 声明,未验证的新 minor 线(如 0.1.7)仍被拦截)。`0.1.1-rc.2` 及更早不再声明支持:那条线的客户端运行时没有 `sessions`/`workspaces`/`uiWorkspace` 服务,插件 UI 会静默不渲染。
69
70
 
70
71
 
71
72
  - DSH 官方插件命令:安装并自动挂载进 web profile
package/lib/client.js CHANGED
@@ -438,7 +438,7 @@
438
438
  }
439
439
  return parts.join(" \xB7 ");
440
440
  }
441
- function buildRecallNode(React, util, ctx, sessionsSvc, workspacesSvc) {
441
+ function buildRecallNode(React, util, ctx, sessionsSvc, workspacesSvc, uiWorkspaceSvc) {
442
442
  const { api, ensureInit, showThrottledToast, writeClipboard, clockText: clockText2, pluginConfig, messageFor } = util;
443
443
  function CopyIcon() {
444
444
  return React.createElement(
@@ -793,7 +793,8 @@
793
793
  try {
794
794
  const childId = await sessionsSvc.fork({ sessionId, atSeq: cutSeq });
795
795
  if (childId) {
796
- if (typeof sessionsSvc.open === "function") sessionsSvc.open(childId);
796
+ if (uiWorkspaceSvc && typeof uiWorkspaceSvc.openSession === "function") uiWorkspaceSvc.openSession(childId);
797
+ else if (typeof sessionsSvc.open === "function") sessionsSvc.open(childId);
797
798
  chatReverted = true;
798
799
  fillTarget = childId;
799
800
  removeStaleQueueItems(childId, res.staleQueueItemIds);
@@ -1322,7 +1323,7 @@
1322
1323
  }
1323
1324
  return result;
1324
1325
  }
1325
- function buildSnapshotManager(React, util, sessionsSvc) {
1326
+ function buildSnapshotManager(React, util, sessionsSvc, workspacesSvc, uiWorkspaceSvc) {
1326
1327
  const { api, clockText: clockText2, sizeText: sizeText2, buildTree: buildTree2 } = util;
1327
1328
  function ManageCard() {
1328
1329
  const [items, setItems] = React.useState(null);
@@ -1481,6 +1482,13 @@
1481
1482
  } catch (e) {
1482
1483
  listById = null;
1483
1484
  }
1485
+ let archivedIds = null;
1486
+ try {
1487
+ const snapshot = workspacesSvc && workspacesSvc.list && typeof workspacesSvc.list.getSnapshot === "function" ? workspacesSvc.list.getSnapshot() : null;
1488
+ archivedIds = new Set(snapshot && snapshot.archivedSessionIds || []);
1489
+ } catch (e) {
1490
+ archivedIds = null;
1491
+ }
1484
1492
  function confirmDelete(kind, key, extra, text) {
1485
1493
  setConfirming({ kind, key, extra, text });
1486
1494
  }
@@ -1528,7 +1536,7 @@
1528
1536
  const open = expanded.has(key);
1529
1537
  const label = s.title || (titlesPending && s.sessionId ? "\u2026" : "\uFF08\u5DF2\u5220\u9664\u4F1A\u8BDD\uFF09");
1530
1538
  const version = s.sessionId ? versionMap.get(String(s.sessionId)) : null;
1531
- const switchable = Boolean(s.sessionId && listById && listById[s.sessionId]);
1539
+ const switchable = Boolean(s.sessionId && listById && listById[s.sessionId] && !(archivedIds && archivedIds.has(String(s.sessionId))));
1532
1540
  return React.createElement(
1533
1541
  "div",
1534
1542
  { className: "dsh-recall-tree-node", key },
@@ -1557,7 +1565,8 @@
1557
1565
  title: "\u5207\u6362\u5230\u8BE5\u7248\u672C\u4F1A\u8BDD",
1558
1566
  onClick: () => {
1559
1567
  try {
1560
- sessionsSvc.open(s.sessionId);
1568
+ if (uiWorkspaceSvc && typeof uiWorkspaceSvc.openSession === "function") uiWorkspaceSvc.openSession(s.sessionId);
1569
+ else if (typeof sessionsSvc.open === "function") sessionsSvc.open(s.sessionId);
1561
1570
  } catch (e) {
1562
1571
  }
1563
1572
  }
@@ -1709,7 +1718,7 @@
1709
1718
  }
1710
1719
 
1711
1720
  // src/client/settings-cards.ts
1712
- function buildSettingsCards(React, util, sessionsSvc) {
1721
+ function buildSettingsCards(React, util, sessionsSvc, workspacesSvc, uiWorkspaceSvc) {
1713
1722
  function SectionToggle(props) {
1714
1723
  return React.createElement(
1715
1724
  "button",
@@ -1728,7 +1737,7 @@
1728
1737
  }
1729
1738
  const { ConfigForm } = buildConfigForm(React, util, SectionToggle);
1730
1739
  const { ExcludeFilesSection } = buildExcludeCards(React, util);
1731
- const { ManageCard } = buildSnapshotManager(React, util, sessionsSvc);
1740
+ const { ManageCard } = buildSnapshotManager(React, util, sessionsSvc, workspacesSvc, uiWorkspaceSvc);
1732
1741
  function RecallSettingsCard() {
1733
1742
  const [open, setOpen] = React.useState(false);
1734
1743
  const [sections, setSections] = React.useState({ exclude: false, manage: false });
@@ -1801,8 +1810,9 @@
1801
1810
  document.head.appendChild(tag);
1802
1811
  }
1803
1812
  const util = buildUtil();
1804
- const { UserRecallNode } = buildRecallNode(React, util, ctx, sessionsSvc, workspacesSvc);
1805
- const { RecallSettingsCard } = buildSettingsCards(React, util, sessionsSvc);
1813
+ const uiWorkspaceSvc = ctx.uiWorkspace;
1814
+ const { UserRecallNode } = buildRecallNode(React, util, ctx, sessionsSvc, workspacesSvc, uiWorkspaceSvc);
1815
+ const { RecallSettingsCard } = buildSettingsCards(React, util, sessionsSvc, workspacesSvc, uiWorkspaceSvc);
1806
1816
  for (const slotKey of ["user", "steering"]) {
1807
1817
  try {
1808
1818
  slots.inject("conversation.chat.node", () => {
@@ -1824,6 +1834,14 @@
1824
1834
  } catch (error) {
1825
1835
  console.error("[dsh-recall-plugin] settings card register failed:", error);
1826
1836
  }
1837
+ try {
1838
+ slots.inject("plugins.bundle.config", () => slots.register(
1839
+ { name: "plugins.bundle.config", key: "dsh-recall-plugin" },
1840
+ RecallSettingsCard
1841
+ ));
1842
+ } catch (error) {
1843
+ console.error("[dsh-recall-plugin] plugin manager config register failed:", error);
1844
+ }
1827
1845
  };
1828
1846
  }
1829
1847
 
@@ -1834,7 +1852,12 @@
1834
1852
  const React = require2("react");
1835
1853
  return {
1836
1854
  name: "dsh-recall-plugin",
1837
- inject: ["slots", "sessions", "workspaces", "timer"],
1855
+ // uiWorkspace(ui-workspace UiWorkspace):0.1.6-alpha.2 起 ISessions
1856
+ // 移除 open,会话导航(fork 后打开子会话)移交其 openSession——0.1.2-alpha.1
1857
+ // 起该服务即存在,声明安全;0.1.1-rc.2 无此服务(同线亦无 sessions/
1858
+ // workspaces),声明会令 fiber pending——该线段已从 peer 范围移除
1859
+ // (见 compat-audit I37「服务可用性」)。
1860
+ inject: ["slots", "sessions", "workspaces", "uiWorkspace", "timer"],
1838
1861
  apply: createApp(React)
1839
1862
  };
1840
1863
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-recall-plugin",
3
- "version": "2.3.22",
3
+ "version": "2.3.23",
4
4
  "description": "在 DSH 中撤回自己发过的消息:工作区文件与对话历史一起回到那条消息发出之前,消息的文本与附件自动放回输入框,改完即可重发。文件走独立影子 git 快照(不碰项目自身的 git),对话走官方 sessions.fork,原会话归档可找回。",
5
5
  "type": "module",
6
6
  "repository": {
@@ -57,18 +57,19 @@
57
57
  "0.1.5-alpha.2": "compatible",
58
58
  "0.1.5-rc.1": "compatible",
59
59
  "0.1.5-rc.2": "compatible",
60
- "0.1.6-alpha.1": "compatible"
60
+ "0.1.6-alpha.1": "compatible",
61
+ "0.1.6-alpha.2": "compatible"
61
62
  }
62
63
  }
63
64
  },
64
65
  "peerDependencies": {
65
66
  "@deepseek-ai/cordis": "^4.0.1",
66
- "@deepseek-ai/dsh-host-webserver": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
67
- "@deepseek-ai/dsh-sandbox-policy": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
68
- "@deepseek-ai/dsh-session": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
69
- "@deepseek-ai/dsh-session-query": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
70
- "@deepseek-ai/dsh-settings": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
71
- "@deepseek-ai/dsh-shell": ">=0.1.1-rc.2 <0.1.2 || >=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
67
+ "@deepseek-ai/dsh-host-webserver": ">=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
68
+ "@deepseek-ai/dsh-sandbox-policy": ">=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
69
+ "@deepseek-ai/dsh-session": ">=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
70
+ "@deepseek-ai/dsh-session-query": ">=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
71
+ "@deepseek-ai/dsh-settings": ">=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
72
+ "@deepseek-ai/dsh-shell": ">=0.1.2-alpha.1 <0.1.3 || >=0.1.3-alpha.1 <0.1.4 || >=0.1.5-alpha.1 <0.1.6 || >=0.1.6-alpha.1 <0.1.7",
72
73
  "@deepseek-ai/schemastery": "^3.18.1",
73
74
  "react": "^18.2.0"
74
75
  },