From aa28c1fbc76f6ae2b4ecb60f201758bcba316bca Mon Sep 17 00:00:00 2001 From: figmar Date: Wed, 16 Sep 2026 01:57:46 +0800 Subject: [PATCH] feat(v1.1.0): adapt to DSH 2.0.10 (0.1.5-rc.2), drop apes:tasks, DSW token styles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit C1-C5 env repair: - align all @deepseek-ai/dsh-* peer+devDeps to 0.1.5-rc.2 (DSH 2.0.10 ships it) - fix 0.1.5-rc.2 npm packaging defect: 15 primitives runtime deps (anser, shiki, katex, marked, ... ) were mis-declared as devDeps in the published package -> add to local devDependencies so vitest can resolve them - fix sidechat-seed contract: dsh-session@0.1.5 assertAssistantSettlementShape now requires a top-level data.stream: Array on assistant messages -> seed helper emits stream: [] C6 slim tabs: - remove apes:tasks (overlaps the official DSH session tree in the native sidebar); keep apes:agents / apes:apps / apes:profile - clean dead code: ApesTasksView + job helpers import + apes i18n dead keys (tasks/status/duration) and the unused menu-title keys C7 style align: - apes view inline colors -> DSW alias tokens (--dsw-alias-bg/border/label/ state-success/interactive) with literal fallbacks; geometry (font/spacing/ radius) stays inline (DSH exposes no --ds-* geometry tokens to plugin panels) gate: typecheck ok / build ok / test 119 files · 1249 passed --- README.md | 24 +- package.json | 87 ++- pnpm-lock.yaml | 941 ++++++++++--------------- src/client/apes/index.ts | 5 +- src/client/apes/locales.ts | 38 - src/client/apes/tabs.tsx | 170 ++--- tests/apes-tabs.spec.ts | 51 +- tests/sidechat-seed-validation.spec.ts | 2 +- 8 files changed, 526 insertions(+), 792 deletions(-) diff --git a/README.md b/README.md index 994d4d4..d5f3a7e 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,29 @@ GitHub topic [`dsh-better-sidebar`](https://github.com/topics/dsh-better-sidebar ## 🆕 最近更新 -**支持的 DSH 版本**:支持的 DSH 版本(v0.18.0 正式版):0.1.2-rc.1+ · 完整发布历史见 [Releases](https://github.com/omdsh-dev/DSH-better-sidebar/releases) +**支持的 DSH 版本**:支持的 DSH 版本(v0.18.0 正式版):0.1.5-rc.2+ · 完整发布历史见 [Releases](https://github.com/omdsh-dev/DSH-better-sidebar/releases) + +### v1.1.0(fork · DSH 2.0.10 / 0.1.5-rc.2 适配 + 精简 + 风格对齐) + +> 📌 **DSH 2.0.10 适配**:跟随 DSH 2.0.10 内发的 `@deepseek-ai/dsh-*@0.1.5-rc.2`,peer + devDeps 全量对齐。 + +**🗑 精简 tab(去 `apes:tasks`)** + +- 移除 `apes:tasks` —— 与 DSH 原生侧栏的官方会话树功能重叠,保留 **3 个** `apes:*` 信息层 tab:`apes:agents` / `apes:apps` / `apes:profile` +- 同步清理死代码:`ApesTasksView` + `collectTreeJobs`/`orderJobs`/`isJobLive`/`jobDotState` import + apes i18n 死 key(tasks/status/duration) + +**🎨 风格对齐 DSW 设计令牌** + +- apes 视图内联样式的颜色全部改用 DSW alias 令牌(`--dsw-alias-bg-*` / `--dsw-alias-border-*` / `--dsw-alias-label-*` / `--dsw-alias-state-success-*` / `--dsw-alias-interactive-*`),与 DSH 原生侧栏视觉统一;`var(...)` 带字面 fallback 保证非 DSH 环境(单测 harness)仍可渲染 +- 字号 / 间距 / 圆角保持内联值(DSH 未对插件面板公开 `--ds-*` 几何令牌,其自身 vendor bundle 亦内联) + +**🔧 0.1.5-rc.2 适配修复** + +- primitives npm 发布缺陷(15 个运行时依赖被误列为 devDeps)→ 补进本地 `devDependencies` 供 vitest 内联解析 +- sidechat seed 校验契约升级:`dsh-session@0.1.5` 的 `assertAssistantSettlementShape` 要求 assistant 消息的 `data` 顶层带 `stream: Array` → 测试 seed helper 对齐 +- 完整 gate:typecheck ✓ / build ✓ / test 119 files · 1249 passed ✓ + +--- ### v1.0.0(fork · apes 信息层) diff --git a/package.json b/package.json index 7be9fd4..b36967b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dsh-apes-sidebar", - "version": "1.0.0", - "description": "APE fork of dsh-better-sidebar v0.18.0: VSCode-like right sidebar (explorer / editor / terminal / git / browser) + apes:* information-layer tabs (tasks / agents / apps / messages / profile). Forked from omdsh-dev/DSH-better-sidebar under MIT.", + "version": "1.1.0", + "description": "APE fork of dsh-better-sidebar v0.18.0: VSCode-like right sidebar (explorer / editor / terminal / git / browser) + apes:* information-layer tabs (agents / apps / profile). Forked from omdsh-dev/DSH-better-sidebar under MIT.", "type": "module", "repository": { "type": "git", @@ -98,19 +98,19 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/cordis": "^4.0.2", - "@deepseek-ai/dsh-agent": "^0.1.2-rc.1", - "@deepseek-ai/dsh-client-locale": "^0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-conversation": "^0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-primitives": "^0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-settings": "^0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-slots": "^0.1.2-rc.1", - "@deepseek-ai/dsh-host-webserver": "^0.1.2-rc.1", - "@deepseek-ai/dsh-invariants": "^0.1.2-rc.1", - "@deepseek-ai/dsh-llm": "^0.1.2-rc.1", - "@deepseek-ai/dsh-session": "^0.1.2-rc.1", - "@deepseek-ai/dsh-settings": "^0.1.2-rc.1", - "@deepseek-ai/dsh-subagent": "^0.1.2-rc.1", - "@deepseek-ai/dsh-tools": "^0.1.2-rc.1", + "@deepseek-ai/dsh-agent": "^0.1.5-rc.2", + "@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-settings": "^0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-slots": "^0.1.5-rc.2", + "@deepseek-ai/dsh-host-webserver": "^0.1.5-rc.2", + "@deepseek-ai/dsh-invariants": "^0.1.5-rc.2", + "@deepseek-ai/dsh-llm": "^0.1.5-rc.2", + "@deepseek-ai/dsh-session": "^0.1.5-rc.2", + "@deepseek-ai/dsh-settings": "^0.1.5-rc.2", + "@deepseek-ai/dsh-subagent": "^0.1.5-rc.2", + "@deepseek-ai/dsh-tools": "^0.1.5-rc.2", "@huanlin/dsh-plugin-better-locale": "^0.1.0", "react": "^18.2.0", "react-dom": "^18.2.0" @@ -154,26 +154,26 @@ }, "devDependencies": { "@cordisjs/plugin-loader": "^1.0.0-rc.5", - "@deepseek-ai/dsh-agent": "0.1.2-rc.1", - "@deepseek-ai/dsh-attachment": "0.1.2-rc.1", - "@deepseek-ai/dsh-client-locale": "0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-primitives": "0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1", - "@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1", - "@deepseek-ai/dsh-code-runtime": "0.1.2-rc.1", - "@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1", - "@deepseek-ai/dsh-invariants": "0.1.2-rc.1", - "@deepseek-ai/dsh-llm": "0.1.2-rc.1", - "@deepseek-ai/dsh-scope": "0.1.2-rc.1", - "@deepseek-ai/dsh-session": "0.1.2-rc.1", - "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1", - "@deepseek-ai/dsh-settings": "0.1.2-rc.1", - "@deepseek-ai/dsh-subagent": "0.1.2-rc.1", - "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1", - "@deepseek-ai/dsh-tools": "0.1.2-rc.1", - "@deepseek-ai/dsh-user-approval": "0.1.2-rc.1", - "@deepseek-ai/dsh-util-time": "0.1.2-rc.1", + "@deepseek-ai/dsh-agent": "0.1.5-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.5-rc.2", + "@deepseek-ai/dsh-client-locale": "0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-conversation": "0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-primitives": "0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.2", + "@deepseek-ai/dsh-client-ui-slots": "0.1.5-rc.2", + "@deepseek-ai/dsh-code-runtime": "0.1.5-rc.2", + "@deepseek-ai/dsh-host-webserver": "0.1.5-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.5-rc.2", + "@deepseek-ai/dsh-llm": "0.1.5-rc.2", + "@deepseek-ai/dsh-scope": "0.1.5-rc.2", + "@deepseek-ai/dsh-session": "0.1.5-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.5-rc.2", + "@deepseek-ai/dsh-settings": "0.1.5-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.5-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.2", + "@deepseek-ai/dsh-tools": "0.1.5-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.5-rc.2", + "@deepseek-ai/dsh-util-time": "0.1.5-rc.2", "@huanlin/dsh-plugin-better-locale": "^0.1.0", "@playwright/test": "^1.62.1", "@types/node": "^24.0.0", @@ -190,6 +190,21 @@ "tsdown": "^0.22.2", "typescript": "^5.6.0", "unrun": "^0.2.39", - "vitest": "^4.1.8" + "vitest": "^4.1.8", + "anser": "^2.3.5", + "shiki": "^4.3.1", + "@shikijs/langs": "^4.3.1", + "katex": "^0.16.47", + "mdast-util-from-markdown": "^2.0.3", + "mdast-util-gfm": "^3.1.0", + "mdast-util-math": "^3.0.0", + "micromark-core-commonmark": "^2.0.3", + "micromark-extension-gfm": "^3.0.0", + "micromark-extension-math": "^3.1.0", + "micromark-factory-space": "^2.0.1", + "micromark-util-character": "^2.1.1", + "micromark-util-classify-character": "^2.0.1", + "micromark-util-sanitize-uri": "^2.0.1", + "micromark-util-symbol": "^2.0.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9222a4..56141af 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,71 +106,74 @@ importers: specifier: ^1.0.0-rc.5 version: 1.0.0-rc.5(cordis@4.0.0-rc.8) '@deepseek-ai/dsh-agent': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a) '@deepseek-ai/dsh-attachment': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) '@deepseek-ai/dsh-client-locale': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-client-ui-conversation': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(typescript@5.6.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-client-ui-primitives': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-client-ui-settings': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-client-ui-slots': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-code-runtime': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-host-webserver': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-invariants': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-llm': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/dsh-scope': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) '@deepseek-ai/dsh-session': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) '@deepseek-ai/dsh-session-projection': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))) '@deepseek-ai/dsh-settings': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/schemastery@3.18.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/schemastery@3.18.2) '@deepseek-ai/dsh-subagent': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(6241f70df87ac98c48965b657a1f7a60) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(9d44ee6a034e68079cb70d615a3ec3aa) '@deepseek-ai/dsh-system-prompt': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) '@deepseek-ai/dsh-tools': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(de5e1ff2d608fbe22667925341ad1dfc) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(7f9e302786cf21e030eafe960666842c) '@deepseek-ai/dsh-user-approval': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48))(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a))(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))) '@deepseek-ai/dsh-util-time': - specifier: 0.1.2-rc.1 - version: 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + specifier: 0.1.5-rc.2 + version: 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@huanlin/dsh-plugin-better-locale': specifier: ^0.1.0 - version: 0.1.0(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-client-locale@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-primitives@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-settings@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-slots@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 0.1.0(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-client-locale@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-primitives@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-settings@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-slots@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@playwright/test': specifier: ^1.62.1 version: 1.62.1 + '@shikijs/langs': + specifier: ^4.3.1 + version: 4.4.3 '@types/node': specifier: ^24.0.0 version: 24.13.3 @@ -189,21 +192,63 @@ importers: '@xterm/xterm': specifier: ^5.5.0 version: 5.5.0 + anser: + specifier: ^2.3.5 + version: 2.3.5 cordis: specifier: ^4.0.0-rc.8 version: 4.0.0-rc.8(@cordisjs/plugin-loader@1.0.0-rc.5) jsdom: specifier: ^29.1.1 version: 29.1.1 + katex: + specifier: ^0.16.47 + version: 0.16.47 lightningcss: specifier: ^1.32.0 version: 1.33.0 + mdast-util-from-markdown: + specifier: ^2.0.3 + version: 2.0.3 + mdast-util-gfm: + specifier: ^3.1.0 + version: 3.1.0 + mdast-util-math: + specifier: ^3.0.0 + version: 3.0.0 + micromark-core-commonmark: + specifier: ^2.0.3 + version: 2.0.3 + micromark-extension-gfm: + specifier: ^3.0.0 + version: 3.0.0 + micromark-extension-math: + specifier: ^3.1.0 + version: 3.1.0 + micromark-factory-space: + specifier: ^2.0.1 + version: 2.0.1 + micromark-util-character: + specifier: ^2.1.1 + version: 2.1.1 + micromark-util-classify-character: + specifier: ^2.0.1 + version: 2.0.1 + micromark-util-sanitize-uri: + specifier: ^2.0.1 + version: 2.0.1 + micromark-util-symbol: + specifier: ^2.0.1 + version: 2.0.1 react: specifier: ^18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) + shiki: + specifier: ^4.3.1 + version: 4.4.3 tsdown: specifier: ^0.22.2 version: 0.22.14(typescript@5.6.2)(unrun@0.2.39) @@ -376,124 +421,130 @@ packages: '@deepseek-ai/cosmokit@1.8.3': resolution: {integrity: sha512-qBo+ronVM6Eu2WNVJXi8JcMiqZ19T9BRIpV+5qJUFPXjGH/Z0QKcQMC/IZJ7L394YTOtJgcovbk9qP0w2GsBXQ==} - '@deepseek-ai/dsh-agent@0.1.2-rc.1': - resolution: {integrity: sha512-lfaqN34vUCWvbn1kJVHrhfJ6Dvt1HDHCm33ZCpmKkl07/5q6FxWqVv6rOdVX5QnM/9xz/uYiN0nQwUtBg4+Skg==} + '@deepseek-ai/dsh-agent@0.1.5-rc.2': + resolution: {integrity: sha512-SlUL1riZmVLwMUR3jo9CP/R1cxov9dHkCJDh6JQW3fSZJVCIdPygBRlAweCUDvHxAEmPpFHxE/U3NmSUbX+vQQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-llm': ^0.1.2-rc.1 - '@deepseek-ai/dsh-scope': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session-projection': ^0.1.2-rc.1 - '@deepseek-ai/dsh-system-prompt': ^0.1.2-rc.1 - '@deepseek-ai/dsh-typert-protocol': ^0.1.2-rc.1 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 + '@deepseek-ai/dsh-llm': ^0.1.5-rc.2 + '@deepseek-ai/dsh-scope': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session-projection': ^0.1.5-rc.2 + '@deepseek-ai/dsh-system-prompt': ^0.1.5-rc.2 + '@deepseek-ai/dsh-typert-protocol': ^0.1.5-rc.2 + '@deepseek-ai/dsh-util-values': ^0.1.5-rc.2 - '@deepseek-ai/dsh-attachment@0.1.2-rc.1': - resolution: {integrity: sha512-QISKUjEITusLvAkqPLRn70xDUt+GjjY41pISjtPKYcZ4EGmayzhgZ3VJNYEcC+rbaF44hs2o/0VhOwHA7lyxjw==} + '@deepseek-ai/dsh-attachment@0.1.5-rc.2': + resolution: {integrity: sha512-S6b8/WjqzGw+dMDLRXnq+tbijDGkQh38yE+zpQytX2/w/mPR3VzGj5r6McS01WwD76vXR8WFoheSCLyCAro8WQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-brand': ^0.1.2-rc.1 + '@deepseek-ai/dsh-brand': ^0.1.5-rc.2 - '@deepseek-ai/dsh-brand@0.1.2-rc.1': - resolution: {integrity: sha512-y2RHIag3kzLdY8kTBuSUSTsKzWPscJrysNObXTiNM7stXLpa3jXpshsB1caqGzNx50vYcmHeN1gFVECgx3NZHg==} + '@deepseek-ai/dsh-brand@0.1.5-rc.2': + resolution: {integrity: sha512-/+3TzQRYT4M8NINZ9OrsL5VWNyQSXof8mFLx3txiosWA7Bt0H6UcxUdKGXVwj6gCXhsQ74mzEHm2ucsflG0mYA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-client-locale@0.1.2-rc.1': - resolution: {integrity: sha512-p34i5WcZ0+b77RKEatGLc6Rh4OgJJmc15kWbBqtCtSI1BxpwZxjDzoNIMTTS3jDGUQqfEd9X7Js9D4uNJDUewg==} + '@deepseek-ai/dsh-chunked-list@0.1.5-rc.2': + resolution: {integrity: sha512-XPr311bleMyOh9SzhTMmc1mC6qx2Tty8315MNYYyzIOLAns0h27PReFa9axy8I0soBaE7gfp6eQI1ZriVkI68g==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-client-ui-conversation@0.1.2-rc.1': - resolution: {integrity: sha512-PDrV7twPfmZE5TjdvdVVZMHOla36wCojRC8GJBUp1cdXsWUP+Omk10gxYbH1g5TQPdAWgSL+GktdjondSXMSNQ==} + '@deepseek-ai/dsh-client-locale@0.1.5-rc.2': + resolution: {integrity: sha512-kv56ki/WQWagsHt94wJAPzsiKnxa8KlmM33bZGgl2SgF4atlQ3iRCdkwJ3fQARXF4Ocnfutivoj5fu5usks1Sw==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-client-ui-primitives@0.1.2-rc.1': - resolution: {integrity: sha512-4gZS+tXAHbSxAjP91+lENpxKb49XVKcO80m7ATNNgD6lJHOwbuWVGv9IwEnmQ5ebZvI8Yrp8C1J+jDe1pB9jXw==} + '@deepseek-ai/dsh-client-ui-conversation@0.1.5-rc.2': + resolution: {integrity: sha512-VnZ0VrmI7+1JH/iMYV6+FaxCsZrVk4CZIuG+k1HkeevHgUPHe3ghLo8u1Qt9cx00MEH5i3bLOY5Nka3w4mbA6g==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-client-ui-settings@0.1.2-rc.1': - resolution: {integrity: sha512-/S16tlS84fggURMqO94HjYbE0xIH82aRJ2E4UupgM9acD3yJ6SCVam17tMcWKnqA6UWJK9llEHhl+KN9JyI/0Q==} + '@deepseek-ai/dsh-client-ui-primitives@0.1.5-rc.2': + resolution: {integrity: sha512-APWho69VlEmbLGqzBLiybTtjun93tEbxMMJlm+Q129Cx7ZGJak3DNfQtW3OPzBCf3Gzs2PGEz8fKbunTpea2jQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-client-ui-slots@0.1.2-rc.1': - resolution: {integrity: sha512-wcqn8xwb87RjurSQ0zPoI4K9eYhDyoBjQqg4bByDq8CNynvayHoBPnNWfiAQ8ngyOPE20teL3DMS0gbcfCTqbA==} + '@deepseek-ai/dsh-client-ui-settings@0.1.5-rc.2': + resolution: {integrity: sha512-NsnZLRI2ZDzJJylx9KATuDwrTdJ0FSP93dU5SL5k2G2W4FLUspNvlAmk7bha5Miopfzmfd+h5/NvMdWe8PVVjQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-code-runtime@0.1.2-rc.1': - resolution: {integrity: sha512-dv5UszPJb/AFcarZc2c6h5z/X80bsrSd3bfIOugwNVclSI6P+L3ixseoZKgyks7T0Ap0h6ngXGk2WeoUkmYxnQ==} + '@deepseek-ai/dsh-client-ui-slots@0.1.5-rc.2': + resolution: {integrity: sha512-uUKIHBcNzWmJFtTlPkgn7hprsE5uU8lJf8Fw7jKwUouZWIwGnLdxuunrm1LOZWr7G+b4UfjVwD4LV12rhF/WLg==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-host-webserver@0.1.2-rc.1': - resolution: {integrity: sha512-QVcaf4qnIa1t215Y8TRiRhqkEz4Lu5/F+KqvWT+4sHOiyWmZr8g1JndqlwP6MBnMQEPmp0I/EKYJ7PWMV32gkA==} + '@deepseek-ai/dsh-code-runtime@0.1.5-rc.2': + resolution: {integrity: sha512-qex3bvQNBkv1eapi8iTyNq+c52q1kxfdv5+8Nkswv4/kwrkvcDa4n4iiCbEgKS+K5U4DiVIprnyIv8Nx7il7Nw==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-invariants@0.1.2-rc.1': - resolution: {integrity: sha512-zSjuFJYcEB94kPwn7SicqAV1dfVWZkjt1I8luDboxtjfp5CN6ziwJhLv3KaB+Dh9tgkyGY4mvo886W/HhE9L9g==} + '@deepseek-ai/dsh-host-webserver@0.1.5-rc.2': + resolution: {integrity: sha512-lFgGm9wDrHiTBANzsdoWzdfPSjWYuDFwCoNQ4Uko57Fo5XASL2unfRHGm1xZ828rwEYuGwRvJHMOuoP/17VmlA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-llm@0.1.2-rc.1': - resolution: {integrity: sha512-7VYsha5AXsVLnsAwYJffWXz9bwUbElw8i5N8tlTSdai9Bupk3sMbsotzPf8ZbsuGAxQYErahMwQwgGEu4qZO6g==} + '@deepseek-ai/dsh-invariants@0.1.5-rc.2': + resolution: {integrity: sha512-oUxttB2yjAgkk47AiXOCxk9GwnfGvIEGsQfnMD7fukwIdD3KLJObU7+nz63tbFN80rjwMI8rg+p9QBQ10KU5+g==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-scope@0.1.2-rc.1': - resolution: {integrity: sha512-GHwbzWrGbmE0ZGzAZsXBudpyCM9ENCpXxlKODIaPFbIWhRePh6nH2jW47TAOqCIsPPedWC2p3w8Tx5WAa3I/2A==} + '@deepseek-ai/dsh-llm@0.1.5-rc.2': + resolution: {integrity: sha512-Z7BVsBkK24SE4EItQeow8PHms/9GP0DSTi337vTAa/RY7tNg2Snz3INcXUj6CPZfvntQr1in9op9wLI+rfNsqA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session-projection@0.1.2-rc.1': - resolution: {integrity: sha512-qVWlIzPm4u9vzQ5G/QtE6jeSJ3b3b42hWVJj664BurEZlHbAfdqkhYc1QsoBU+5k5kUEJFHh07z8HxuXA9kTnQ==} + '@deepseek-ai/dsh-scope@0.1.5-rc.2': + resolution: {integrity: sha512-JwItISje52iVIjlGMNayRVMZrvZU/0i3Gr0s+coND5nBp5lS+pOj9Zf1RQzA5cWjHYCWKmDuQc+m6zGlwmtAeQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-session': ^0.1.2-rc.1 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 - '@deepseek-ai/dsh-session@0.1.2-rc.1': - resolution: {integrity: sha512-jRGNPTbQcvIx1F2MVmmkoiHLgpC3Btqo1wkl/3JDLlOWRVWKOuaC+5fQiMrFPOYfno6YiX/c2UvmA0td8qB92w==} + '@deepseek-ai/dsh-session-projection@0.1.5-rc.2': + resolution: {integrity: sha512-WMXGBdbxD1FO1Eu7Qs2FKDXq/kl+z+5b7zGLHdra66eEnShSnQmdF9bXSFQu1sJwba2yF7ueMcBJpWy76gtgQQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-scope': ^0.1.2-rc.1 + '@deepseek-ai/dsh-session': ^0.1.5-rc.2 - '@deepseek-ai/dsh-settings@0.1.2-rc.1': - resolution: {integrity: sha512-wMmJ2w5S6I7hgmgPppuAVemltEcTmAa8gvii7fk4T2KGVCuBYgig8xPwQ8Lp2ukLZSzzE6ZVCQxhdYZyJX/USA==} + '@deepseek-ai/dsh-session@0.1.5-rc.2': + resolution: {integrity: sha512-y+klWiGAWR4m4cc4ylurA0cW63673B4N8cr2ANMimweDZAfxL4XVBC7WiD/5DT2DtIhYmVZhz/niyS/WbniUTA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-brand': ^0.1.2-rc.1 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session': ^0.1.2-rc.1 + '@deepseek-ai/dsh-scope': ^0.1.5-rc.2 + + '@deepseek-ai/dsh-settings@0.1.5-rc.2': + resolution: {integrity: sha512-LI2Y6GkEs9ALMW+7S9jHPeEZDXHtG5X6cix1HdJ1rRxTEO5427QlYhMiz45rk7hqZ8ca2O4XFMW8IWXFZQLxmw==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.2 + '@deepseek-ai/dsh-brand': ^0.1.5-rc.2 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session': ^0.1.5-rc.2 '@deepseek-ai/schemastery': ^3.18.2 - '@deepseek-ai/dsh-subagent@0.1.2-rc.1': - resolution: {integrity: sha512-GhRsymKb1uYbc7OwHh8WTdSXqAcx/KHFJwYX4BYJk90dsOkVx9ccBq6QoJfDYja34s1KCyv2UO/8MUtrzBsITw==} + '@deepseek-ai/dsh-subagent@0.1.5-rc.2': + resolution: {integrity: sha512-f2wbfB1M2P8RpcApp5eDpDQR4V5ElvEkeK6su7tor1U06uJadJ+JuIVXP3MrCnT7yjg/IM2tTacYFMOg62BOfg==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-agent': ^0.1.2-rc.1 - '@deepseek-ai/dsh-agent-presets': ^0.1.2-rc.1 - '@deepseek-ai/dsh-attachment': ^0.1.2-rc.1 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-jobs': ^0.1.2-rc.1 - '@deepseek-ai/dsh-llm': ^0.1.2-rc.1 - '@deepseek-ai/dsh-sandbox': ^0.1.2-rc.1 - '@deepseek-ai/dsh-sandbox-policy': ^0.1.2-rc.1 - '@deepseek-ai/dsh-scope': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session-persistence': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session-projection': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session-projection-cache': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session-query': ^0.1.2-rc.1 - '@deepseek-ai/dsh-system-prompt': ^0.1.2-rc.1 - '@deepseek-ai/dsh-tools': ^0.1.2-rc.1 - '@deepseek-ai/dsh-typert-protocol': ^0.1.2-rc.1 - '@deepseek-ai/dsh-user-approval': ^0.1.2-rc.1 - '@deepseek-ai/dsh-util-time': ^0.1.2-rc.1 + '@deepseek-ai/dsh-agent': ^0.1.5-rc.2 + '@deepseek-ai/dsh-agent-presets': ^0.1.5-rc.2 + '@deepseek-ai/dsh-attachment': ^0.1.5-rc.2 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 + '@deepseek-ai/dsh-jobs': ^0.1.5-rc.2 + '@deepseek-ai/dsh-llm': ^0.1.5-rc.2 + '@deepseek-ai/dsh-sandbox': ^0.1.5-rc.2 + '@deepseek-ai/dsh-sandbox-policy': ^0.1.5-rc.2 + '@deepseek-ai/dsh-scope': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session-persistence': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session-projection': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session-projection-cache': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session-query': ^0.1.5-rc.2 + '@deepseek-ai/dsh-system-prompt': ^0.1.5-rc.2 + '@deepseek-ai/dsh-tools': ^0.1.5-rc.2 + '@deepseek-ai/dsh-typert-protocol': ^0.1.5-rc.2 + '@deepseek-ai/dsh-user-approval': ^0.1.5-rc.2 + '@deepseek-ai/dsh-util-time': ^0.1.5-rc.2 peerDependenciesMeta: '@deepseek-ai/dsh-agent-presets': optional: true @@ -514,61 +565,61 @@ packages: '@deepseek-ai/dsh-user-approval': optional: true - '@deepseek-ai/dsh-system-prompt@0.1.2-rc.1': - resolution: {integrity: sha512-7W93PZKIk4CHvjZGgLIxrrEKpk+6t8nQXje1vKR5vG73dfXH0t1MJ5WWH/fngadYc7c6KzM84ihQ66tJqJqyNQ==} + '@deepseek-ai/dsh-system-prompt@0.1.5-rc.2': + resolution: {integrity: sha512-VtmZVKqBMJ7kzskHu0jY+Jth7jSuKMG8QB3MBPzJe9M0LL4YPMWsGKt9gGky9RXolk/ugAy4YZEv1gUqouVofA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-llm': ^0.1.2-rc.1 - '@deepseek-ai/dsh-scope': ^0.1.2-rc.1 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 + '@deepseek-ai/dsh-llm': ^0.1.5-rc.2 + '@deepseek-ai/dsh-scope': ^0.1.5-rc.2 - '@deepseek-ai/dsh-timeout@0.1.2-rc.1': - resolution: {integrity: sha512-llz11yxWeJB8suKCa6hRLjNBWVaPn3Fbd0XoBS0bkZLhPFzO1mDorx/XMca2GhI7XF9A86CURQcDt+aGjjvqJA==} + '@deepseek-ai/dsh-timeout@0.1.5-rc.2': + resolution: {integrity: sha512-FgfaAw8Zt5X4Y6Ljh833B8Hy7h96FeR+yjNKI3iSyZSqREqOBgvDGXFfQlSu6V3Buvw/cbI/CJUQJvfRBKXOiA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-tools@0.1.2-rc.1': - resolution: {integrity: sha512-W9kUio00s7WbM8kEwniyd4hfb3CeUxVczsjXbOcKtakfiTywNLeyRWkpx2fvwRAH2rBfg3qCgczVfS0DOw1csg==} + '@deepseek-ai/dsh-tools@0.1.5-rc.2': + resolution: {integrity: sha512-k2yZuJJtszaU9lzr2aBtdeFMINrkdlk4ellbtrMokA2oySVqJmAM8dv+u9RtzduD3aRRqyr2i2hWrTACz0qOrA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-agent': ^0.1.2-rc.1 - '@deepseek-ai/dsh-code-runtime': ^0.1.2-rc.1 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-llm': ^0.1.2-rc.1 - '@deepseek-ai/dsh-scope': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session': ^0.1.2-rc.1 - '@deepseek-ai/dsh-system-prompt': ^0.1.2-rc.1 - '@deepseek-ai/dsh-user-approval': ^0.1.2-rc.1 + '@deepseek-ai/dsh-agent': ^0.1.5-rc.2 + '@deepseek-ai/dsh-code-runtime': ^0.1.5-rc.2 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 + '@deepseek-ai/dsh-llm': ^0.1.5-rc.2 + '@deepseek-ai/dsh-scope': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session': ^0.1.5-rc.2 + '@deepseek-ai/dsh-system-prompt': ^0.1.5-rc.2 + '@deepseek-ai/dsh-user-approval': ^0.1.5-rc.2 - '@deepseek-ai/dsh-typert-protocol@0.1.2-rc.1': - resolution: {integrity: sha512-vBWD0NpriPd96ltbWaAw+iKeWFIEjiAcCWYtmqEcV1Ms+FaV02usjjm7LCmhSQhMZpBSBc7EZUX0spGlpjI1bA==} + '@deepseek-ai/dsh-typert-protocol@0.1.5-rc.2': + resolution: {integrity: sha512-zP8J20rBXa1AFjKL2i83JBeQcePZx8yal3pNojj4t7CCokMcoFMUbr50woa6fY1tRJ7qHxgypO3rH8Q6YWgmiA==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-user-approval@0.1.2-rc.1': - resolution: {integrity: sha512-oYkLE4a/TwqVNi299pUf/QP1Yku6KScdUCTUyYbjaRBcN+/pXPpHikl2aoE2thH9D0uT/Kj6T2kz+wDDcFd9Xg==} + '@deepseek-ai/dsh-user-approval@0.1.5-rc.2': + resolution: {integrity: sha512-8UpMEnEyMo6mYEVELBo0DC2iG7aJJfFMTNkU+DKD3c5Ut7ySRDzt1iRr1qni/CzqlTIpQBAkGaG77qk4q/v1bg==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-agent': ^0.1.2-rc.1 - '@deepseek-ai/dsh-brand': ^0.1.2-rc.1 - '@deepseek-ai/dsh-invariants': ^0.1.2-rc.1 - '@deepseek-ai/dsh-llm': ^0.1.2-rc.1 - '@deepseek-ai/dsh-scope': ^0.1.2-rc.1 - '@deepseek-ai/dsh-session': ^0.1.2-rc.1 - '@deepseek-ai/dsh-system-prompt': ^0.1.2-rc.1 + '@deepseek-ai/dsh-agent': ^0.1.5-rc.2 + '@deepseek-ai/dsh-brand': ^0.1.5-rc.2 + '@deepseek-ai/dsh-invariants': ^0.1.5-rc.2 + '@deepseek-ai/dsh-llm': ^0.1.5-rc.2 + '@deepseek-ai/dsh-scope': ^0.1.5-rc.2 + '@deepseek-ai/dsh-session': ^0.1.5-rc.2 + '@deepseek-ai/dsh-system-prompt': ^0.1.5-rc.2 - '@deepseek-ai/dsh-util-crypto@0.1.2-rc.1': - resolution: {integrity: sha512-gE8FznQ1hkknw9QMrHNSlm3UEyRYuj3MLVvlJ6NyH1kmOsdjnbrVbSs+Pn72k2oIV4Fiyu3Umg0sLznUEcsiXw==} + '@deepseek-ai/dsh-util-crypto@0.1.5-rc.2': + resolution: {integrity: sha512-JR0aJEUL35RE8FVT89wMZMbPwMrbkjNcy+gE9pq70d/m2Zxw3a0iNer+BAxPAKYPbmy0xDDXReTwXiecKVy4sQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-util-time@0.1.2-rc.1': - resolution: {integrity: sha512-OoudDLoYothbZKDbjO6kFu3NLgAnglIS8NFkg5fjnBtz8LGwplN8w7kRURLIrZtH38HknYhpDsdJh8LZai3U6A==} + '@deepseek-ai/dsh-util-time@0.1.5-rc.2': + resolution: {integrity: sha512-nWJrNCaEBANFUX+Rp2cE1+hA2CGCmktXOo2Nsh524aV2VaLumFFS501IsmI9ghUmUE77qZxvayGGO7w3LLIECQ==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 - '@deepseek-ai/dsh-util-values@0.1.2-rc.1': - resolution: {integrity: sha512-FQdgoK+KYVR0pBQb9fTsajvGb3gzUxEzJQEYnFOt+Qdwc4nkxJOPwJJdIvXuqvZaQ33DaOoqpnpcr2p5HpLu4g==} + '@deepseek-ai/dsh-util-values@0.1.5-rc.2': + resolution: {integrity: sha512-Cr0TkM6dFAD+Iy4sNXH/afJVMHwJXoOztivj+RflkYoACsOq+Ix0vdHn36hwW7mayU8OK3ZKIZUQ6BPo1fHvUg==} peerDependencies: '@deepseek-ai/cordis': ^4.0.2 @@ -633,94 +684,6 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@lexical/clipboard@0.49.0': - resolution: {integrity: sha512-AVKj21xH1qU7JAFA/v0hCoafa+Yti1I7cHG+JQIgc/EqCtP8ePeJyIfTPNN/tXskoCdq++HewQoiSXRwwlocVg==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/dragon@0.49.0': - resolution: {integrity: sha512-62/4DP5qyX/l4Yf5qRyyQrs9BV725eRU3OmLUW6g7T5xrcHXxAo7tia/NvqjqvXdpvQzyHjWgsy7dMitGITUsw==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/extension@0.49.0': - resolution: {integrity: sha512-Wv0VsuqxorbxHCK4ms1PwAu6cXIGNLtflq66auF+zwxOtBprkSFV8VzzzdKLOYD2admP0VK6EqVCeGXFK1GggA==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/history@0.49.0': - resolution: {integrity: sha512-uQdtEd34gIJklXNSdHS2Wko1zxx1xUMVXbiodcLO6a3GeFTE5bKnx6af1zGX78KpYhUQYnHWorKuUvtdZlJPaA==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/html@0.49.0': - resolution: {integrity: sha512-NQqAydKzRjQl7Jx+bTTyC2iuz5uhuDaQX0SSPrdfgaFDCPjqQEejcBkCt1QXnu1CkbVHutZKVGVzljx40Y6y+Q==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/internal@0.49.0': - resolution: {integrity: sha512-s+XjPC7Qb39A/Xx9ahcz1s69CPix4ultaqyW+MDG0AXYW2quDr7m0USqReKIAiuoLIWtGN5HW8BwV2Y6t4qr6Q==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/list@0.49.0': - resolution: {integrity: sha512-zs6wYkxakDRcJO0KmwrPPHgeLLIxzjD+P2CRu+scJCHRuA5e2iSw2iFjH5n/LlWBrlnPMSjeQse4QqsRy9nnqA==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/plain-text@0.49.0': - resolution: {integrity: sha512-l7IuUj9n9CtFfz4Fz6zU6mmO+VkcnvyyebABx+lHevvTa7B6YI5PPVgABFfzdyPanyW/FGs7qpKBf59inAqbkg==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/selection@0.49.0': - resolution: {integrity: sha512-08Vd1+VoC6YnztWOFWVsqF/Hxw5EP8qeL1c7t3+rVCV8revLzXxdQw+vbPX3tgM4fmjOBDUXk6Ws1+rTtsqjcQ==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/text@0.49.0': - resolution: {integrity: sha512-mowedvbvx0HDaW+ymVdYmWVhueqgauhhqIWaCtbJj33tPk8pOu1BB0pZuJQbOB+1bDnFiZhkJV8W/CvR2M9lEA==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - - '@lexical/utils@0.49.0': - resolution: {integrity: sha512-Jaa6DERBqxiFOFa49VPRV1WOb7mzRbMZ5U+v+RFagjzTmBhfxDmEkbQQ9nYTU3n3DPfdT8Hkyffextmw04etXg==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - '@lezer/common@1.5.2': resolution: {integrity: sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==} @@ -793,9 +756,6 @@ packages: engines: {node: '>=20'} hasBin: true - '@preact/signals-core@1.14.4': - resolution: {integrity: sha512-HNB6HYeYKhQbJ1aKl+YRjrS4+QWHLKX6qKoUsfS/m0vqzsVaEBiZiaKbG/e+NKk2ch5ALQr/ihWaMHxiCuuWHA==} - '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} @@ -1174,8 +1134,8 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@ungap/structured-clone@1.3.3': - resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} + '@ungap/structured-clone@1.4.0': + resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} '@upsetjs/venn.js@2.0.0': resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} @@ -1780,14 +1740,6 @@ packages: layout-base@2.0.1: resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - lexical@0.49.0: - resolution: {integrity: sha512-9V1ZIzGpJEd8rIN+nN7veL4fW4fFWbS66Un4JNqSZB4D5t9euzN9+3+jEXy83FjNjNy0MiiUI3+DQaGCLYko0w==} - peerDependencies: - typescript: '>=5.2' - peerDependenciesMeta: - typescript: - optional: true - lightningcss-android-arm64@1.33.0: resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} engines: {node: '>= 12.0.0'} @@ -1920,11 +1872,8 @@ packages: mdast-util-to-hast@13.2.1: resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - mdast-util-to-markdown@2.0.0: - resolution: {integrity: sha512-Ov3aWCYpb31/SkHNRlREvSZsF9ETBW/rXw4PooawZO8qy2MviDq4TI6kxX6zFmGa/zUX36STKIC/IpASQk596w==} - - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -1947,8 +1896,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-table@2.1.2: + resolution: {integrity: sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -1962,56 +1911,56 @@ packages: micromark-extension-math@3.1.0: resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} micromark-util-classify-character@2.0.1: resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-decode-numeric-character-reference@2.0.0: - resolution: {integrity: sha512-pIgcsGxpHEtTG/rPJRz/HOLSqp5VTuIIjXlPI+6JSDlK2oljApusG6KzpS8AF0ENUMCHlC/IBb5B9xdFiVlm5Q==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} micromark-util-decode-string@2.0.1: resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} @@ -2019,8 +1968,8 @@ packages: micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} mime-db@1.54.0: resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} @@ -2760,83 +2709,59 @@ snapshots: '@deepseek-ai/cosmokit@1.8.3': {} - '@deepseek-ai/dsh-agent@0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48)': + '@deepseek-ai/dsh-agent@0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-llm': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-scope': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) - '@deepseek-ai/dsh-session': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-session-projection': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))) - '@deepseek-ai/dsh-system-prompt': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-typert-protocol': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-llm': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-scope': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-session': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-session-projection': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))) + '@deepseek-ai/dsh-system-prompt': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-typert-protocol': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-util-values': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-attachment@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))': + '@deepseek-ai/dsh-attachment@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-client-locale@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-chunked-list@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': + dependencies: + '@deepseek-ai/cordis': 4.0.2 + zod: 4.4.3 + + '@deepseek-ai/dsh-client-locale@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 '@deepseek-ai/schemastery': 3.18.2 - '@deepseek-ai/dsh-client-ui-conversation@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(typescript@5.6.2)': + '@deepseek-ai/dsh-client-ui-conversation@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 '@deepseek-ai/schemastery': 3.18.2 - '@lexical/history': 0.49.0(typescript@5.6.2) - '@lexical/plain-text': 0.49.0(typescript@5.6.2) - '@lexical/text': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - clsx: 2.1.1 - lexical: 0.49.0(typescript@5.6.2) - transitivePeerDependencies: - - typescript - '@deepseek-ai/dsh-client-ui-primitives@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': - dependencies: - '@deepseek-ai/cordis': 4.0.2 - '@shikijs/langs': 4.4.3 - '@types/mdast': 4.0.4 - anser: 2.3.5 - clsx: 2.1.1 - katex: 0.16.47 - mdast-util-from-markdown: 2.0.3 - mdast-util-gfm: 3.1.0 - mdast-util-math: 3.0.0 - micromark-core-commonmark: 2.0.3 - micromark-extension-gfm: 3.0.0 - micromark-extension-math: 3.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-classify-character: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - shiki: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@deepseek-ai/dsh-client-ui-settings@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-client-ui-primitives@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-client-ui-slots@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-client-ui-settings@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-code-runtime@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-client-ui-slots@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-host-webserver@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-code-runtime@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': + dependencies: + '@deepseek-ai/cordis': 4.0.2 + + '@deepseek-ai/dsh-host-webserver@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 '@deepseek-ai/schemastery': 3.18.2 @@ -2845,122 +2770,123 @@ snapshots: transitivePeerDependencies: - supports-color - '@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 '@deepseek-ai/schemastery': 3.18.2 - '@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-timeout': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-typert-protocol': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-util-crypto': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-util-values': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-timeout': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-typert-protocol': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-util-crypto': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-util-values': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/schemastery': 3.18.2 zod: 4.4.3 - '@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))': + '@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-session-projection@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))': + '@deepseek-ai/dsh-session-projection@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-session': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-session': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) zod: 4.4.3 - '@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))': + '@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-llm': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-scope': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) - '@deepseek-ai/dsh-util-values': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-llm': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-scope': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-util-values': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-settings@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/schemastery@3.18.2)': + '@deepseek-ai/dsh-settings@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/schemastery@3.18.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-session': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-util-values': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-session': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-util-values': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/schemastery': 3.18.2 - '@deepseek-ai/dsh-subagent@0.1.2-rc.1(6241f70df87ac98c48965b657a1f7a60)': + '@deepseek-ai/dsh-subagent@0.1.5-rc.2(9d44ee6a034e68079cb70d615a3ec3aa)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-agent': 0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48) - '@deepseek-ai/dsh-attachment': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-llm': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-scope': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) - '@deepseek-ai/dsh-session': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-system-prompt': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-tools': 0.1.2-rc.1(de5e1ff2d608fbe22667925341ad1dfc) - '@deepseek-ai/dsh-typert-protocol': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-util-time': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-util-values': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-agent': 0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a) + '@deepseek-ai/dsh-attachment': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-chunked-list': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-llm': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-scope': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-session': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-system-prompt': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-tools': 0.1.5-rc.2(7f9e302786cf21e030eafe960666842c) + '@deepseek-ai/dsh-typert-protocol': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-util-time': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-util-values': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) zod: 4.4.3 optionalDependencies: - '@deepseek-ai/dsh-session-projection': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))) - '@deepseek-ai/dsh-user-approval': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48))(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))) + '@deepseek-ai/dsh-session-projection': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))) + '@deepseek-ai/dsh-user-approval': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a))(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))) - '@deepseek-ai/dsh-system-prompt@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))': + '@deepseek-ai/dsh-system-prompt@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-llm': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-scope': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-llm': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-scope': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) '@deepseek-ai/schemastery': 3.18.2 - '@deepseek-ai/dsh-timeout@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-timeout@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-tools@0.1.2-rc.1(de5e1ff2d608fbe22667925341ad1dfc)': + '@deepseek-ai/dsh-tools@0.1.5-rc.2(7f9e302786cf21e030eafe960666842c)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-agent': 0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48) - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-code-runtime': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-llm': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-scope': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) - '@deepseek-ai/dsh-session': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-system-prompt': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-user-approval': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48))(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))) - '@deepseek-ai/dsh-util-values': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-agent': 0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-code-runtime': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-llm': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-scope': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-session': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-system-prompt': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-user-approval': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a))(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))) + '@deepseek-ai/dsh-util-values': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) '@deepseek-ai/schemastery': 3.18.2 - '@deepseek-ai/dsh-typert-protocol@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-typert-protocol@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-user-approval@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48))(@deepseek-ai/dsh-brand@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))))': + '@deepseek-ai/dsh-user-approval@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-agent@0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a))(@deepseek-ai/dsh-brand@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)))(@deepseek-ai/dsh-session@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))(@deepseek-ai/dsh-system-prompt@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))))': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-agent': 0.1.2-rc.1(6f833cf90b9dd3f0d529840b1aebfb48) - '@deepseek-ai/dsh-brand': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-llm': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-scope': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)) - '@deepseek-ai/dsh-session': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) - '@deepseek-ai/dsh-system-prompt': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-agent': 0.1.5-rc.2(6df6622855b87cb7fde1fe609a6d039a) + '@deepseek-ai/dsh-brand': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-llm': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-scope': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)) + '@deepseek-ai/dsh-session': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) + '@deepseek-ai/dsh-system-prompt': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-llm@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-scope@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))) '@deepseek-ai/schemastery': 3.18.2 - '@deepseek-ai/dsh-util-crypto@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-util-crypto@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-util-time@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-util-time@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 - '@deepseek-ai/dsh-util-values@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2)': + '@deepseek-ai/dsh-util-values@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2)': dependencies: '@deepseek-ai/cordis': 4.0.2 @@ -2987,15 +2913,15 @@ snapshots: '@exodus/bytes@1.15.1': {} - '@huanlin/dsh-plugin-better-locale@0.1.0(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-client-locale@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-primitives@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-settings@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-slots@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.2-rc.1(@deepseek-ai/cordis@4.0.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@huanlin/dsh-plugin-better-locale@0.1.0(@deepseek-ai/cordis@4.0.2)(@deepseek-ai/dsh-client-locale@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-primitives@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-settings@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-client-ui-slots@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(@deepseek-ai/dsh-invariants@0.1.5-rc.2(@deepseek-ai/cordis@4.0.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@deepseek-ai/cordis': 4.0.2 optionalDependencies: - '@deepseek-ai/dsh-client-locale': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-client-ui-primitives': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-client-ui-settings': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-client-ui-slots': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) - '@deepseek-ai/dsh-invariants': 0.1.2-rc.1(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-client-locale': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-client-ui-primitives': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-client-ui-settings': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-client-ui-slots': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) + '@deepseek-ai/dsh-invariants': 0.1.5-rc.2(@deepseek-ai/cordis@4.0.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3009,100 +2935,6 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.5': {} - '@lexical/clipboard@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/extension': 0.49.0(typescript@5.6.2) - '@lexical/html': 0.49.0(typescript@5.6.2) - '@lexical/internal': 0.49.0(typescript@5.6.2) - '@lexical/list': 0.49.0(typescript@5.6.2) - '@lexical/selection': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - '@types/trusted-types': 2.0.7 - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/dragon@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/extension': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/extension@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/internal': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - '@preact/signals-core': 1.14.4 - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/history@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/extension': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/html@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/extension': 0.49.0(typescript@5.6.2) - '@lexical/internal': 0.49.0(typescript@5.6.2) - '@lexical/selection': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/internal@0.49.0(typescript@5.6.2)': - optionalDependencies: - typescript: 5.6.2 - - '@lexical/list@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/extension': 0.49.0(typescript@5.6.2) - '@lexical/html': 0.49.0(typescript@5.6.2) - '@lexical/internal': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/plain-text@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/clipboard': 0.49.0(typescript@5.6.2) - '@lexical/dragon': 0.49.0(typescript@5.6.2) - '@lexical/extension': 0.49.0(typescript@5.6.2) - '@lexical/selection': 0.49.0(typescript@5.6.2) - '@lexical/utils': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/selection@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/internal': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/text@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/internal': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - - '@lexical/utils@0.49.0(typescript@5.6.2)': - dependencies: - '@lexical/internal': 0.49.0(typescript@5.6.2) - '@lexical/selection': 0.49.0(typescript@5.6.2) - lexical: 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - '@lezer/common@1.5.2': {} '@lezer/cpp@1.1.6': @@ -3211,8 +3043,6 @@ snapshots: dependencies: playwright: 1.62.1 - '@preact/signals-core@1.14.4': {} - '@quansync/fs@1.0.0': dependencies: quansync: 1.0.0 @@ -3521,7 +3351,8 @@ snapshots: '@types/prop-types': 15.7.15 csstype: 3.2.3 - '@types/trusted-types@2.0.7': {} + '@types/trusted-types@2.0.7': + optional: true '@types/unist@3.0.3': {} @@ -3529,7 +3360,7 @@ snapshots: dependencies: '@types/node': 24.13.3 - '@ungap/structured-clone@1.3.3': {} + '@ungap/structured-clone@1.4.0': {} '@upsetjs/venn.js@2.0.0': optionalDependencies: @@ -4076,12 +3907,6 @@ snapshots: layout-base@2.0.1: {} - lexical@0.49.0(typescript@5.6.2): - dependencies: - '@lexical/internal': 0.49.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - lightningcss-android-arm64@1.33.0: optional: true @@ -4163,10 +3988,10 @@ snapshots: decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.0 + micromark-util-normalize-identifier: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-stringify-position: 4.0.0 @@ -4186,8 +4011,8 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color @@ -4195,7 +4020,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -4205,7 +4030,7 @@ snapshots: devlop: 1.1.0 markdown-table: 3.0.4 mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -4214,7 +4039,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -4226,7 +4051,7 @@ snapshots: mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -4237,7 +4062,7 @@ snapshots: devlop: 1.1.0 longest-streak: 3.1.0 mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.1.0 + mdast-util-to-markdown: 2.1.2 unist-util-remove-position: 5.0.0 transitivePeerDependencies: - supports-color @@ -4251,7 +4076,7 @@ snapshots: dependencies: '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.3 + '@ungap/structured-clone': 1.4.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -4259,24 +4084,14 @@ snapshots: unist-util-visit: 5.1.0 vfile: 6.0.3 - mdast-util-to-markdown@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.1.0 - zwitch: 2.0.4 - - mdast-util-to-markdown@2.1.0: + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 unist-util-visit: 5.1.0 zwitch: 2.0.4 @@ -4316,18 +4131,18 @@ snapshots: dependencies: decode-named-character-reference: 1.3.0 devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.0 + micromark-util-chunked: 2.0.1 micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.0 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -4344,7 +4159,7 @@ snapshots: micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-normalize-identifier: 2.0.0 + micromark-util-normalize-identifier: 2.0.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -4352,13 +4167,13 @@ snapshots: micromark-extension-gfm-strikethrough@2.1.0: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.0 + micromark-util-chunked: 2.0.1 micromark-util-classify-character: 2.0.1 - micromark-util-resolve-all: 2.0.0 + micromark-util-resolve-all: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-extension-gfm-table@2.1.1: + micromark-extension-gfm-table@2.1.2: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 @@ -4383,10 +4198,10 @@ snapshots: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-table: 2.1.2 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.0 + micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 micromark-extension-math@3.1.0: @@ -4399,13 +4214,13 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-destination@2.0.0: + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-label@2.0.0: + micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 @@ -4417,14 +4232,14 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-types: 2.0.2 - micromark-factory-title@2.0.0: + micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-whitespace@2.0.0: + micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -4436,7 +4251,7 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-chunked@2.0.0: + micromark-util-chunked@2.0.1: dependencies: micromark-util-symbol: 2.0.1 @@ -4446,12 +4261,12 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-combine-extensions@2.0.0: + micromark-util-combine-extensions@2.0.1: dependencies: - micromark-util-chunked: 2.0.0 + micromark-util-chunked: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-decode-numeric-character-reference@2.0.0: + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 @@ -4459,31 +4274,31 @@ snapshots: dependencies: decode-named-character-reference: 1.3.0 micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-encode@2.0.0: {} + micromark-util-encode@2.0.1: {} - micromark-util-html-tag-name@2.0.0: {} + micromark-util-html-tag-name@2.0.1: {} - micromark-util-normalize-identifier@2.0.0: + micromark-util-normalize-identifier@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@2.0.0: + micromark-util-resolve-all@2.0.1: dependencies: micromark-util-types: 2.0.2 micromark-util-sanitize-uri@2.0.1: dependencies: micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.0 + micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.0.0: + micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.0 + micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -4491,7 +4306,7 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@4.0.0: + micromark@4.0.2: dependencies: '@types/debug': 4.1.13 debug: 4.4.3 @@ -4500,14 +4315,14 @@ snapshots: micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.0 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.0.0 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 transitivePeerDependencies: diff --git a/src/client/apes/index.ts b/src/client/apes/index.ts index f4b3414..d79ab28 100644 --- a/src/client/apes/index.ts +++ b/src/client/apes/index.ts @@ -1,7 +1,8 @@ /** * apes:* information-layer tabs — the fork's own contribution on top of the - * upstream dsh-better-sidebar. Three tabs ship in the first round (tasks / - * agents / profile); apps lands in Phase 1b, messages is deferred (no DSH + * upstream dsh-better-sidebar. Three tabs ship (agents / apps / profile); + * `apes:tasks` was removed (C6) because it overlaps the official DSH session + * tree in the native sidebar, and `messages` is deferred (no DSH * message-stream API yet — tracked separately). * * Isolated under `src/client/apes/` so the upstream `builtins/` tree stays diff --git a/src/client/apes/locales.ts b/src/client/apes/locales.ts index 794f2af..ba2f46d 100644 --- a/src/client/apes/locales.ts +++ b/src/client/apes/locales.ts @@ -16,31 +16,10 @@ export const APES_LOCALE_NS = 'apes' /** The zh dictionary (source of truth). */ export const apesZh = { - // + menu tab titles - apesTasks: '任务', - apesAgents: '智能体', - apesApps: '应用', - apesProfile: '画像', // View titles - apesTasksTitle: '任务', apesAgentsTitle: '智能体', apesAppsTitle: '应用', apesProfileTitle: '画像', - // Tasks view - apesTasksEmpty: '暂无后台任务', - apesTasksLiveCount: '{count} 个运行中', - apesTasksOwner: '来自 {owner}', - apesTaskKind: '{kind}', - // Job statuses - apesStatusRunning: '运行中', - apesStatusStopping: '停止中', - apesStatusCompleted: '已完成', - apesStatusKilled: '已终止', - apesStatusFailed: '失败', - // Duration (at most two adjacent units) - apesDurationHours: '{hours} 小时 {minutes} 分', - apesDurationMinutes: '{minutes} 分 {seconds} 秒', - apesDurationSeconds: '{seconds} 秒', // Agents view apesAgentsEmpty: '当前会话没有子智能体', apesAgentsRoot: '主智能体', @@ -61,26 +40,9 @@ export const apesZh = { /** The en dictionary (checked against zh — every zh key must appear here). */ export const apesEn: Record = { - apesTasks: 'Tasks', - apesAgents: 'Agents', - apesApps: 'Apps', - apesProfile: 'Profile', - apesTasksTitle: 'Tasks', apesAgentsTitle: 'Agents', apesAppsTitle: 'Apps', apesProfileTitle: 'Profile', - apesTasksEmpty: 'No background jobs', - apesTasksLiveCount: '{count} running', - apesTasksOwner: 'from {owner}', - apesTaskKind: '{kind}', - apesStatusRunning: 'running', - apesStatusStopping: 'stopping', - apesStatusCompleted: 'completed', - apesStatusKilled: 'killed', - apesStatusFailed: 'failed', - apesDurationHours: '{hours}h {minutes}m', - apesDurationMinutes: '{minutes}m {seconds}s', - apesDurationSeconds: '{seconds}s', apesAgentsEmpty: 'No subagents in this session', apesAgentsRoot: 'Main agent', apesAgentRunning: 'running', diff --git a/src/client/apes/tabs.tsx b/src/client/apes/tabs.tsx index 5d1af07..ec2e65e 100644 --- a/src/client/apes/tabs.tsx +++ b/src/client/apes/tabs.tsx @@ -1,91 +1,71 @@ /** * apes:* tab views (D2 = data wiring). Each tab reads live data from the * sessions list feed (`ctx.sessions.list`) via `useSyncExternalStore` and - * reuses the fork's PURE lineage/job helpers (rootAncestor, treeSessionIds, - * collectTreeJobs, orderJobs, isJobLive, jobDotState) — these are framework-free - * and live outside `builtins/`, so importing them does not couple the apes - * module to upstream UI and survives cherry-picks. UI is inline-styled and - * self-contained (no CSS modules, no `@deepseek-ai/dsh-client-ui-primitives`) - * so the module stays isolated under `src/client/apes/`. + * reuses the fork's PURE lineage/job helpers — these are framework-free and + * live outside `builtins/`, so importing them does not couple the apes module + * to upstream UI and survives cherry-picks. + * + * Three information-layer tabs (C6: `apes:tasks` removed — it overlaps the + * official DSH session tree in the native sidebar): + * - apes:agents → the subagent topology rooted at the main agent of the + * current session (rootAncestor + per-parent catalogs). + * - apes:apps → no DSH host feed today: shows the workspace (cwd) of the + * current session, otherwise an honest "no feed" note. + * - apes:profile → the current session's summary row (title, cwd, running). + * + * Visual unity (C7): colors use the DSW design-token aliases + * (`--dsw-alias-*`) so the apes panels match the native DSH sidebar + * surface; the runtime defines these on :root. Font sizes / spacing / + * radius stay inline (DSH exposes no public `--ds-*` geometry alias for + * plugin panels — its own vendor bundles inline those too). * * Data sources (structural mirror — runtime provided by the DSH host): - * - `ctx.sessions.list.getSnapshot()` → { current, byId, subagentsByParent?, - * jobsBySession? }; `subscribe(cb)` is uSES-safe. + * - `ctx.sessions.list.getSnapshot()` → { current, byId, subagentsByParent? }; + * `subscribe(cb)` is uSES-safe. * - `scope.sessionId` = the currently-open session. - * - * apes:tasks → jobsBySession across the current tree (owner-labeled, - * live-first order) + a running-session count. - * apes:agents → the subagent topology rooted at the main agent of the - * current session (rootAncestor + per-parent catalogs). - * apes:profile → the current session's summary row (title, cwd, running). - * apes:apps → no DSH host feed today: shows the workspace (cwd) of the - * current session, otherwise an honest "no feed" note. */ import { useCallback, useMemo, useState, type CSSProperties } from 'react' import { useSyncExternalStore } from 'react' -import { FiList, FiCpu, FiGrid, FiUser } from 'react-icons/fi' +import { FiCpu, FiGrid, FiUser } from 'react-icons/fi' import type { TabComponentProps, TabDescriptor } from '../service.ts' import type { SidebarSessionList, SidebarSessionSummary, - SidebarJobView, - SidebarJobStatus, SidebarSubagentCatalog, SidebarSubagentChildEntry, } from '../../context-types.ts' import { rootAncestor, isSideThreadSummary } from '../subagent-lineage.ts' -import { collectTreeJobs, orderJobs, isJobLive, jobDotState } from '../subagent-jobs.ts' import { t } from './locales.ts' -/** Map a job wire status to its apes i18n key. */ -function statusKey(status: SidebarJobStatus): 'apesStatusRunning' | 'apesStatusStopping' | 'apesStatusCompleted' | 'apesStatusKilled' | 'apesStatusFailed' { - switch (status) { - case 'running': return 'apesStatusRunning' - case 'stopping': return 'apesStatusStopping' - case 'completed': return 'apesStatusCompleted' - case 'killed': return 'apesStatusKilled' - case 'failed': return 'apesStatusFailed' - } -} +/** + * DSW design-token color aliases. The DSH runtime defines these on :root + * (same set the native dsh-client-ui-* vendor bundles consume). We reference + * them by name via `var(...)` with a literal fallback so the panels still + * render in a non-DSH context (unit harness) with a sane dark palette. + */ +const DSW = { + bgBase: 'var(--dsw-alias-bg-base, #1a1a1a)', + bgLayer1: 'var(--dsw-alias-bg-layer-1, #202020)', + borderL1: 'var(--dsw-alias-border-l1, #2a2a2a)', + borderL2: 'var(--dsw-alias-border-l2, #303030)', + labelPrimary: 'var(--dsw-alias-label-primary, #e8e8e8)', + labelSecondary: 'var(--dsw-alias-label-secondary, #a0a0a0)', + labelTertiary: 'var(--dsw-alias-label-tertiary, #7a7a7a)', + success: 'var(--dsw-alias-state-success-primary, #52c41a)', + interactiveHover: 'var(--dsw-alias-interactive-bg-hover, rgba(255,255,255,0.06))', +} as const -/** Dot color for a job status (reuses the fork's jobDotState mapping). */ -function dotColor(state: 'ongoing' | 'warning' | 'done' | 'error'): string { - switch (state) { - case 'ongoing': return '#52c41a' - case 'warning': return '#faad14' - case 'done': return '#8c8c8c' - case 'error': return '#ff4d4f' - } -} - -/** Elapsed ms of a job (running → now, settled → finishedAt). */ -function jobElapsedMs(job: SidebarJobView, now: number): number { - const end = job.finishedAt ?? (isJobLive(job) ? now : job.startedAt) - return Math.max(0, end - job.startedAt) -} - -/** Elapsed time in at most two adjacent units (apes-local, no builtin i18n). */ -function duration(elapsedMs: number): string { - const total = Math.max(0, Math.floor(elapsedMs / 1_000)) - const seconds = total % 60 - const minutes = Math.floor(total / 60) % 60 - const hours = Math.floor(total / 3_600) - if (hours > 0) return t('apesDurationHours', { hours, minutes }) - if (minutes > 0) return t('apesDurationMinutes', { minutes, seconds }) - return t('apesDurationSeconds', { seconds }) -} - -/** Shared inline styles (KISS: one object, no CSS module). */ +/** Shared inline styles (KISS: one object, no CSS module). Colors via DSW. */ const S: Record = { body: { padding: 12, display: 'flex', flexDirection: 'column', gap: 12 }, - title: { margin: 0, fontSize: 14, fontWeight: 600 }, - hint: { margin: 0, fontSize: 12, color: '#8c8c8c' }, + title: { margin: 0, fontSize: 14, fontWeight: 600, color: DSW.labelPrimary }, + hint: { margin: 0, fontSize: 12, color: DSW.labelTertiary }, list: { display: 'flex', flexDirection: 'column', gap: 8 }, - card: { border: '1px solid #303030', borderRadius: 8, padding: 10, display: 'flex', flexDirection: 'column', gap: 6 }, + card: { border: `1px solid ${DSW.borderL1}`, borderRadius: 8, padding: 10, display: 'flex', flexDirection: 'column', gap: 6, background: DSW.bgLayer1 }, cardRow: { display: 'flex', alignItems: 'center', gap: 8 }, - cardLabel: { fontSize: 13, fontWeight: 500, flex: 1, minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, - cardSecondary: { fontSize: 11, color: '#8c8c8c', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, - badge: { fontSize: 11, color: '#8c8c8c', flexShrink: 0 }, + cardLabel: { fontSize: 13, fontWeight: 500, flex: 1, minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', color: DSW.labelPrimary }, + cardSecondary: { fontSize: 11, color: DSW.labelSecondary, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, + badge: { fontSize: 11, color: DSW.labelTertiary, flexShrink: 0 }, } /** A small colored status dot (self-contained, not the builtin StateDot). */ @@ -105,56 +85,6 @@ function useSessionList(ctx: TabComponentProps['ctx']): SidebarSessionList { ) } -/** A 1-second ticker that only runs while `active` (for live durations). */ -function useNow(active: boolean): number { - const [now, setNow] = useState(() => Date.now()) - useMemo(() => { - if (!active) return - const id = window.setInterval(() => { setNow(Date.now()) }, 1_000) - return () => { window.clearInterval(id) } - }, [active]) - return now -} - -/** apes:tasks — the current tree's background jobs (live-first, owner-labeled). */ -function ApesTasksView(props: TabComponentProps) { - const list = useSessionList(props.ctx) - const { byId, jobsBySession } = list - const rootId = useMemo(() => rootAncestor(byId, props.scope.sessionId), [byId, props.scope.sessionId]) - const rows = useMemo(() => orderJobs(collectTreeJobs(byId, jobsBySession, rootId)), [byId, jobsBySession, rootId]) - const liveCount = useMemo(() => rows.reduce((n, row) => n + (isJobLive(row.job) ? 1 : 0), 0), [rows]) - const now = useNow(liveCount > 0) - - return ( -
-

{t('apesTasksTitle')}

- {rows.length === 0 - ?

{t('apesTasksEmpty')}

- : ( - <> -

{t('apesTasksLiveCount', { count: liveCount })}

-
- {rows.map(row => ( -
-
- - {row.job.label} - {t('apesTaskKind', { kind: row.job.kind })} -
-
- {t('apesTasksOwner', { owner: row.ownerTitle })} - {duration(jobElapsedMs(row.job, now))} - {t(statusKey(row.job.status))} -
-
- ))} -
- - )} -
- ) -} - /** One level of the subagent topology (rooted at the main agent). */ function agentChildren( byId: Readonly>, @@ -198,7 +128,7 @@ function ApesAgentsView(props: TabComponentProps) { {rootSummary !== undefined && (
- + {t('apesAgentsRoot')}: {rootSummary.displayTitle}
@@ -212,9 +142,9 @@ function ApesAgentsView(props: TabComponentProps) { const running = entry.activity === 'running' const label = entry.label ?? summary?.displayTitle ?? entry.id return ( -
+
- + {label}
@@ -249,7 +179,7 @@ function ApesProfileView(props: TabComponentProps) {
- + {t('apesProfileCurrent')}
@@ -294,13 +224,13 @@ function ApesAppsView(props: TabComponentProps) { } /** - * The four apes:* tab descriptors (order 900-903: tasks/agents/apps/profile), + * The three apes:* tab descriptors (C6: `apes:tasks` removed — overlaps the + * official DSH session tree). Order 901-903: agents/apps/profile. Each is * already shaped as `TabDescriptor` (component + single-instance + icon * element + i18n title function) so `registerApesTabs` can hand them straight * to `service.registerTab`. Information-layer tabs are single-instance. */ export const apesTabs: TabDescriptor[] = [ - { id: 'apes:tasks', title: () => t('apesTasksTitle'), icon: , order: 900, single: true, component: ApesTasksView }, { id: 'apes:agents', title: () => t('apesAgentsTitle'), icon: , order: 901, single: true, component: ApesAgentsView }, { id: 'apes:apps', title: () => t('apesAppsTitle'), icon: , order: 902, single: true, component: ApesAppsView }, { id: 'apes:profile', title: () => t('apesProfileTitle'), icon: , order: 903, single: true, component: ApesProfileView }, diff --git a/tests/apes-tabs.spec.ts b/tests/apes-tabs.spec.ts index 208b1dc..0a36f07 100644 --- a/tests/apes-tabs.spec.ts +++ b/tests/apes-tabs.spec.ts @@ -1,10 +1,12 @@ /** - * apes:* tab registration tests (Phase 1/1b): the fork registers its four - * information-layer tabs (tasks / agents / apps / profile) through the same - * BetterSidebarService the upstream builtins use (dogfood). The spec pins - * the registration contract (id / single / order / component presence) and - * the isolated i18n contract (the apes namespace resolves zh vs en through - * the attached locale service, and every apesZh key has an apesEn entry). + * apes:* tab registration tests (Phase 1/1b, C6: 3 tabs). The fork registers + * its three information-layer tabs (agents / apps / profile) through the same + * BetterSidebarService the upstream builtins use (dogfood). `apes:tasks` was + * removed in C6 — it overlaps the official DSH session tree in the native + * sidebar. The spec pins the registration contract (id / single / order / + * component presence) and the isolated i18n contract (the apes namespace + * resolves zh vs en through the attached locale service, and every apesZh + * key has an apesEn entry). * * Runs in the node vitest environment like builtins.spec.ts — no DOM, no * real DSH host (a live cordis scratch mount is Phase 2+). @@ -31,11 +33,11 @@ function setup(): { } describe('apes:* tab registrations', () => { - it('registers the 4 apes tabs with the apes: namespace', () => { + it('registers the 3 apes tabs with the apes: namespace', () => { const { service, dispose } = setup() try { expect(service.getTabs().map(t => t.id).sort()).toEqual( - ['apes:agents', 'apes:apps', 'apes:profile', 'apes:tasks'], + ['apes:agents', 'apes:apps', 'apes:profile'], ) } finally { dispose() @@ -45,7 +47,7 @@ describe('apes:* tab registrations', () => { it('every apes tab is single-instance, visible, and component-carrying', () => { const { service, dispose } = setup() try { - for (const id of ['apes:tasks', 'apes:agents', 'apes:apps', 'apes:profile']) { + for (const id of ['apes:agents', 'apes:apps', 'apes:profile']) { const tab = service.getTab(id) expect(tab, `${id} registered`).toBeDefined() expect(tab?.single, `${id} single`).toBe(true) @@ -62,17 +64,14 @@ describe('apes:* tab registrations', () => { const { service, dispose } = setup() try { const orders = { - tasks: service.getTab('apes:tasks')?.order, agents: service.getTab('apes:agents')?.order, apps: service.getTab('apes:apps')?.order, profile: service.getTab('apes:profile')?.order, } - expect(orders.tasks).toBeGreaterThanOrEqual(900) expect(orders.agents).toBeGreaterThanOrEqual(900) expect(orders.apps).toBeGreaterThanOrEqual(900) expect(orders.profile).toBeGreaterThanOrEqual(900) - // Strictly ordered: tasks < agents < apps < profile. - expect(orders.tasks!).toBeLessThan(orders.agents!) + // Strictly ordered: agents < apps < profile. expect(orders.agents!).toBeLessThan(orders.apps!) expect(orders.apps!).toBeLessThan(orders.profile!) } finally { @@ -84,7 +83,7 @@ describe('apes:* tab registrations', () => { const store = createSidebarStore() const service = createBetterSidebarService(store) const dispose = registerApesTabs({} as Context, service) - expect(service.getTabs()).toHaveLength(4) + expect(service.getTabs()).toHaveLength(3) dispose() expect(service.getTabs()).toHaveLength(0) }) @@ -102,30 +101,20 @@ describe('apes i18n contract', () => { it('resolves zh when the DSH preference is zh', () => { attachApesLocale({ getSnapshot: () => ({ active: 'zh-CN' }) }) - expect(t('apesTasks')).toBe('任务') - expect(t('apesAgents')).toBe('智能体') - expect(t('apesApps')).toBe('应用') - expect(t('apesProfile')).toBe('画像') + expect(t('apesAgentsTitle')).toBe('智能体') + expect(t('apesAppsTitle')).toBe('应用') + expect(t('apesProfileTitle')).toBe('画像') }) it('resolves en when the DSH preference is en', () => { attachApesLocale({ getSnapshot: () => ({ active: 'en' }) }) - expect(t('apesTasks')).toBe('Tasks') - expect(t('apesAgents')).toBe('Agents') - expect(t('apesApps')).toBe('Apps') - expect(t('apesProfile')).toBe('Profile') + expect(t('apesAgentsTitle')).toBe('Agents') + expect(t('apesAppsTitle')).toBe('Apps') + expect(t('apesProfileTitle')).toBe('Profile') }) it('falls back to zh when no locale service is attached', () => { attachApesLocale(undefined) - expect(t('apesTasks')).toBe('任务') - }) - - it('supports {param} interpolation', () => { - attachApesLocale({ getSnapshot: () => ({ active: 'zh' }) }) - // The duration strings carry {seconds} params — assert the mechanism via - // a real key (the t() contract, not a synthetic one). - expect(t('apesDurationSeconds', { seconds: 5 })).toBe('5 秒') - expect(t('apesDurationMinutes', { minutes: 2, seconds: 7 })).toBe('2 分 7 秒') + expect(t('apesAgentsTitle')).toBe('智能体') }) }) diff --git a/tests/sidechat-seed-validation.spec.ts b/tests/sidechat-seed-validation.spec.ts index 9407d1f..b7f1f11 100644 --- a/tests/sidechat-seed-validation.spec.ts +++ b/tests/sidechat-seed-validation.spec.ts @@ -56,7 +56,7 @@ function parentLog(): SidebarSessionEvent[] { ev('user/message', 0, userMessage('first question')), ev('turn/start', 1, { turn: 1 }), ev('step/start', 2, { turn: 1, step: 1 }), - ev('assistant/message', 3, { turn: 1, step: 1, message: assistantMessage('first answer') }), + ev('assistant/message', 3, { turn: 1, step: 1, stream: [], message: assistantMessage('first answer') }), ev('step/end', 4, { turn: 1, step: 1 }), ev('turn/end', 5, { turn: 1, reason: { kind: 'completed' } }), ev('user/message', 6, userMessage('pending question')),