From 97545d9c8fe38eb1b99cbcc949cfb1adf87035dd Mon Sep 17 00:00:00 2001 From: Huanqi Cao Date: Mon, 21 Sep 2026 15:57:08 +0800 Subject: [PATCH 01/23] fix(pty): keep the controlled prompt so persistent pwsh settles fast tool-pwsh-persistent installs its own `prompt` function after spawn, so terminal-bash prompt readiness never matched and every send degraded to the silence tier (idleSilenceMs + handoffGraceMs) under production defaults. This is the defect the persistent bash tool fixed for the bash stack. The tool now initializes without a prompt send and detects the no-end-marker fallback through the seam's stdin_read wait reason instead of matching its own prompt text. The private prompt constant and its stripping are deleted, so partial output can carry the backend's own trailing prompt. Tool calls drop from 8493/3722/3832/3759 ms to 1340/255/251/241 ms (spawn and initialization plus the first command, then three warm commands; Windows, production defaults, real Loader composition). The loader composition suite pushes idleSilenceMs beyond the send bound, so every case fails if prompt readiness regresses. --- ...ent-pwsh-keeps-controlled-prompt.i18n.yaml | 6 +++ ...persistent-pwsh-keeps-controlled-prompt.md | 37 +++++++++++++++ ...sistent-pwsh-keeps-controlled-prompt.zh.md | 37 +++++++++++++++ docs/config-catalog.i18n.yaml | 4 +- docs/config-catalog.md | 2 +- docs/config-catalog.zh.md | 2 +- .../tool-pwsh-persistent/README.i18n.yaml | 4 +- packages/shell/tool-pwsh-persistent/README.md | 12 ++--- .../shell/tool-pwsh-persistent/README.zh.md | 12 ++--- .../shell/tool-pwsh-persistent/src/index.ts | 45 +++++-------------- .../tests/loader-composition.spec.ts | 5 ++- .../tool-pwsh-persistent/tests/tools.spec.ts | 42 +++++------------ 12 files changed, 122 insertions(+), 86 deletions(-) create mode 100644 .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml create mode 100644 .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md create mode 100644 .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml new file mode 100644 index 0000000000..db9c9a3ad8 --- /dev/null +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md +2026-09-21-persistent-pwsh-keeps-controlled-prompt.md: 748d18f6daafaf036576a911d26647dafbe92261 +2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md: 6425581a6dbb84dfc3b1c4cd4fb732353c4cd5e1 diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md new file mode 100644 index 0000000000..748d18f6da --- /dev/null +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md @@ -0,0 +1,37 @@ +# Agent Note: Persistent pwsh keeps the backend's controlled prompt + +Status: implemented + +English | [中文](2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md) + +## Problem + +`dsh-tool-pwsh-persistent` initialized its shell with a `prompt` function of its own (`'__DSH_PERSISTENT_PWSH_PROMPT__ '`), overwriting the `prompt` that `dsh-terminal-bash` installs in its pwsh startup sequence. The backend's prompt readiness requires the printable tail after the OSC `133;D` marker to exactly equal the controlled `dsh> ` prompt ([design](../feature/2026-07-16-persistent-pty-sessions.md)), so after initialization no send could settle through it and every send paid the silence tier plus handoff grace. Measured on Windows through the real Loader composition with production defaults: 8493 ms for the first call (spawn, initialization, and command) and 3722/3832/3759 ms for the next three, against 1340/255/251/241 ms with the controlled prompt intact. The package tests masked it by configuring `idleSilenceMs: 300`. + +The [persistent bash tool fixed the identical defect](../../archived/bug-fix/2026-08-15-persistent-bash-keeps-controlled-prompt.md) by giving up its own prompt override; the pwsh twin kept it. The override served the same two consumers there: a viewport-suffix fallback detecting "shell at a prompt without the end marker", and cosmetic stripping of prompt text from partial output. + +## Decision + +The tool no longer installs a prompt. `dsh-terminal-bash` owns the pwsh `prompt` function, installs it during `spawn`, and returns the session only after that startup reached `stdin_read` readiness, so the tool's initialization send had nothing left to establish and is deleted together with its `PWSH_PROMPT_SETUP` command. + +The viewport-suffix fallback is replaced with the seam's own signal: a send that settles as `stdin_read` without the end marker in scrollback returns the captured partial output. The private prompt constant and its stripping are deleted; partial output may now end with the backend's own prompt text, which the tool cannot and should not know. `stripPrompt` collapses to `trimTrailingNewline`, matching `dsh-tool-bash-persistent`. + +## Alternatives considered + +**Align the tool's prompt text with the backend's `dsh> `.** Rejected: it keeps a second installation of one protocol constant and a second owner of it, and the send is redundant because the backend had already installed the identical prompt before `spawn` resolved. + +**Import the controlled prompt into the tool.** Rejected: the prompt is one provider's protocol constant; a Consumer matching it would couple the tool to `dsh-terminal-bash` specifically, and any other mounted pwsh-dialect backend would break it again. + +**Lower `handoffGraceMs`/`idleSilenceMs` instead.** Rejected: no silence value fixes a dead fast path; it rebalances how much every call overpays, and the silence tier is also what absorbs a genuinely broken prompt. + +**Re-assert the pwsh prompt per prompt, as `PROMPT_COMMAND` does for bash.** Rejected: PowerShell has no per-prompt hook outside the `prompt` function itself, so a redefinition cannot be healed the way bash's variable is; the residue stays a documented limitation. + +## Consequences + +Windows, production defaults, real Loader composition: tool calls drop from 8493/3722/3832/3759 ms to 1340/255/251/241 ms (spawn + initialization + first command, then three warm commands). + +The `stdin_read` fallback is behavior, not only cosmetics: where a provider proves a foreground stdin wait, an interactive child now returns captured partial output instead of spinning to the command deadline, and elsewhere the call still runs to `timeoutMs`; the tool README records both. Complete marker-delimited output is unchanged. + +The loader-composition suite now sets `idleSilenceMs: 30000`, above the send bound, so silence can settle nothing and every case fails if prompt readiness regresses. The stub suite drops the initialization-handshake modes and pins the prompt text retained in partial output instead of its absence. + +A model command that redefines `prompt` still removes the readiness marker and degrades later sends to the silence tier: the backend installs its prompt once at startup and cannot re-assert it. diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md new file mode 100644 index 0000000000..6425581a6d --- /dev/null +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md @@ -0,0 +1,37 @@ +# Agent Note: 持久 pwsh 保留后端的受控提示符 + +Status: implemented + +[English](2026-09-21-persistent-pwsh-keeps-controlled-prompt.md) | 中文 + +## Problem + +`dsh-tool-pwsh-persistent` 用自己安装的 `prompt` 函数(`'__DSH_PERSISTENT_PWSH_PROMPT__ '`)初始化其 shell,覆盖了 `dsh-terminal-bash` 在 pwsh 启动序列中安装的 `prompt`。后端的提示符就绪检测要求 OSC `133;D` 标记之后的可打印尾部与受控提示符 `dsh> ` 完全相等([设计](../feature/2026-07-16-persistent-pty-sessions.zh.md)),因此初始化之后任何 send 都无法经由该路径结算,每次 send 都要支付静默层加交接宽限。在 Windows 上通过真实 Loader 组合以生产默认值实测:首次调用(spawn、初始化与命令)8493 毫秒,随后三次为 3722/3832/3759 毫秒;受控提示符完好时为 1340/255/251/241 毫秒。包测试把 `idleSilenceMs` 配成 300,掩盖了该问题。 + +[持久 bash 工具已修复同一缺陷](../../archived/bug-fix/2026-08-15-persistent-bash-keeps-controlled-prompt.md),方式是放弃自己的提示符覆盖;pwsh 孪生工具保留了它。该覆盖在两个工具中服务同样的两个消费点:用视口后缀检测「shell 已回到提示符但没有结束标记」的回退判定,以及从部分输出中剥离提示符文本的美化。 + +## Decision + +工具不再安装提示符。pwsh 的 `prompt` 函数由 `dsh-terminal-bash` 拥有,在 `spawn` 期间安装,且只在该启动流程达到 `stdin_read` 就绪后才返回会话,因此工具的初始化 send 已无可确立之事,与其 `PWSH_PROMPT_SETUP` 命令一并删除。 + +视口后缀回退替换为 seam 自己的信号:一次以 `stdin_read` 结算而 scrollback 中没有结束标记的 send,返回已捕获的部分输出。私有提示符常量及其剥离逻辑删除;部分输出现在可能以后端自己的提示符文本结尾,工具无法也不应知道该文本。`stripPrompt` 收敛为 `trimTrailingNewline`,与 `dsh-tool-bash-persistent` 一致。 + +## Alternatives considered + +**把工具的提示符文本对齐到后端的 `dsh> `。** 被拒绝:这保留了同一个协议常量的第二份安装与第二个拥有者,而且该 send 是多余的——后端在 `spawn` 返回前就已安装相同的提示符。 + +**把受控提示符导入工具。** 被拒绝:提示符是单个提供方的协议常量;Consumer 匹配它就把工具与 `dsh-terminal-bash` 具体耦合,换任何其他 pwsh 方言后端都会再次损坏。 + +**改为调小 `handoffGraceMs`/`idleSilenceMs`。** 被拒绝:任何静默值都修不好已死的快速路径,只是重新分配每次调用多付多少;而静默层同时也是吸收真正损坏提示符的那一层。 + +**像 bash 的 `PROMPT_COMMAND` 那样在每个提示符处重新设定 pwsh 提示符。** 被拒绝:除 `prompt` 函数本身之外,PowerShell 没有每提示符钩子,因此重定义无法像 bash 的变量那样被治好;该残余已记入已知限制。 + +## Consequences + +Windows、生产默认值、真实 Loader 组合:工具调用从 8493/3722/3832/3759 毫秒降至 1340/255/251/241 毫秒(spawn + 初始化 + 首条命令,随后三条热命令)。 + +`stdin_read` 回退是行为而不只是美化:在提供方能证明前台 stdin 等待之处,交互式子进程现在返回已捕获的部分输出,而不是空转到命令期限;其他情况下调用仍会运行到 `timeoutMs`,两者都记入工具 README。由标记界定的完整输出保持不变。 + +loader 组合套件现在把 `idleSilenceMs` 设为 30000,位于 send 上限之上,静默无法结算任何 send,提示符就绪一旦回归,每个用例都会失败。stub 套件删除了初始化握手模式,并改为锚定部分输出中保留的提示符文本,而不是它的缺席。 + +重定义 `prompt` 的模型命令仍会移除就绪标记,并把后续 send 降级到静默层:后端只在启动时安装一次提示符,无法重新设定。 diff --git a/docs/config-catalog.i18n.yaml b/docs/config-catalog.i18n.yaml index 63b1766591..cd86866daf 100644 --- a/docs/config-catalog.i18n.yaml +++ b/docs/config-catalog.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write docs/config-catalog.md -config-catalog.md: 59b15e7bbb518abdee55308c191b109547b5185e -config-catalog.zh.md: 4e89ea92944f6e1f2ae8ae0b57f0bec9e9f835d9 +config-catalog.md: f120bf0ffdc64cf298de2e18ed10083ac96485a5 +config-catalog.zh.md: 6cb3e3a6dd92b5b4f877a5b588b4935a28f089f6 diff --git a/docs/config-catalog.md b/docs/config-catalog.md index 59b15e7bbb..f120bf0ffd 100644 --- a/docs/config-catalog.md +++ b/docs/config-catalog.md @@ -3282,7 +3282,7 @@ export interface Config { } ``` -Source: [`packages/shell/tool-pwsh-persistent/src/index.ts:480`](../packages/shell/tool-pwsh-persistent/src/index.ts) +Source: [`packages/shell/tool-pwsh-persistent/src/index.ts:455`](../packages/shell/tool-pwsh-persistent/src/index.ts) diff --git a/docs/config-catalog.zh.md b/docs/config-catalog.zh.md index 4e89ea9294..6cb3e3a6dd 100644 --- a/docs/config-catalog.zh.md +++ b/docs/config-catalog.zh.md @@ -3286,7 +3286,7 @@ export interface Config { } ``` -来源:[`packages/shell/tool-pwsh-persistent/src/index.ts:480`](../packages/shell/tool-pwsh-persistent/src/index.ts) +来源:[`packages/shell/tool-pwsh-persistent/src/index.ts:455`](../packages/shell/tool-pwsh-persistent/src/index.ts) diff --git a/packages/shell/tool-pwsh-persistent/README.i18n.yaml b/packages/shell/tool-pwsh-persistent/README.i18n.yaml index b31e3271a9..00dcbdee79 100644 --- a/packages/shell/tool-pwsh-persistent/README.i18n.yaml +++ b/packages/shell/tool-pwsh-persistent/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/shell/tool-pwsh-persistent/README.md -README.md: f90442e7e9d8a361a690f66f41a58f1a4fcdd708 -README.zh.md: d634e8e42e186318a8733ee9ef2024e2840a857c +README.md: d4c52d9209118830364b7d20e8ee4a26452ad604 +README.zh.md: eedf8e7135e9bd2c73b70e891658920b5d6c64e8 diff --git a/packages/shell/tool-pwsh-persistent/README.md b/packages/shell/tool-pwsh-persistent/README.md index f90442e7e9..d4c52d9209 100644 --- a/packages/shell/tool-pwsh-persistent/README.md +++ b/packages/shell/tool-pwsh-persistent/README.md @@ -54,7 +54,7 @@ The generated [configuration catalog](../../../docs/config-catalog.md#deepseek-a ### What the agent can rely on -Commands share one shell per agent, so cwd, `$env:` variables, functions, and background jobs persist across calls. Results exclude the private completion markers, the shell prompt, and the echoed input line. A non-zero wrapped command appends `[exit code: N]` — the exact native exit code when the command ran a native program, `1` for a terminating PowerShell error. A shell that exits before reporting that status instead appends `[shell exited: code N]`, `[shell killed by signal: SIG]`, or `[shell exited]` (Windows forced termination reports exit 1 without a signal), then resets and tells the agent the next call starts fresh. Long output keeps the earliest retained prefix plus a clipping notice; if the terminal has already dropped that prefix, the result says so explicitly. +Commands share one shell per agent, so cwd, `$env:` variables, functions, and background jobs persist across calls. Results exclude the private completion markers and the echoed input line. When the shell reads stdin again without having printed the completion marker — an interrupt, a replaced shell, or an interactive foreground child whose stdin wait the provider proves — the call returns the captured partial output, which can end with the backend's own prompt text. A non-zero wrapped command appends `[exit code: N]` — the exact native exit code when the command ran a native program, `1` for a terminating PowerShell error. A shell that exits before reporting that status instead appends `[shell exited: code N]`, `[shell killed by signal: SIG]`, or `[shell exited]` (Windows forced termination reports exit 1 without a signal), then resets and tells the agent the next call starts fresh. Long output keeps the earliest retained prefix plus a clipping notice; if the terminal has already dropped that prefix, the result says so explicitly. ### What can go wrong @@ -73,7 +73,7 @@ This section explains the design decisions behind the tool and points at the cod ### Design philosophy - **A deliberate twin of `dsh-tool-bash-persistent`.** The session registry, polling loop, and reset contract mirror the persistent bash tool by design ([pwsh persistent PTY Agent Note](../../../.agents/notes/archived/architecture/2026-08-11-pwsh-persistent-pty.md)). -- **Prompt-function readiness.** The tool installs its own `prompt` function that prints a BEL-terminated OSC marker plus a printable prompt; the OSC marker carries the last exit code and the printable prompt settles every command, so a model redefinition of `prompt` degrades readiness to the silence tier. +- **Backend-owned prompt readiness.** The shell's `prompt` function belongs to the backend: it prints a BEL-terminated OSC marker plus the controlled printable prompt, and that exact prompt text settles every command through the backend's fast path. The tool neither installs nor matches a prompt of its own, so only a model redefinition of `prompt` degrades readiness to the silence tier. - **PSReadLine echo stripped by anchoring.** PowerShell renders submitted input back into the stream; the marker-anchored extraction and a wrapper-source strip remove the echo, and a wrapper that wraps across the terminal width may leave a partial echo in partial-output results. - **Reset, never repair.** Any uncertain state — an explicit `exit`, a timeout, a send failure, an abort — closes the shell and starts the next call fresh. @@ -81,12 +81,12 @@ This section explains the design decisions behind the tool and points at the cod | File | Role | |---|---| -| [`src/index.ts`](src/index.ts) | Plugin entry: shell registry, prompt setup, command wrapping, scrollback polling, extraction and rendering | +| [`src/index.ts`](src/index.ts) | Plugin entry: shell registry, command wrapping, scrollback polling, extraction and rendering | | — | No runtime invariant companion is published; the adapter's private owner-to-shell cache has no observable event or data relation. Lifecycle tests prove its cleanup without adding a public API solely for an invariant. | ### Command flow -A first command spawns the shell through `ctx.terminals.spawn`, installs the `prompt` override, and waits for readiness. Each command is wrapped into one physical line — `Write-Output` of the start marker, the body escaped with backtick escapes into a double-quoted string, and `Write-Output` of the end marker plus the exit status — so PSReadLine's echo of a wrapped line cannot fabricate completion. The tool polls the scrollback in 1,000-line pages until the end marker or a completed prompt appears, extracts the span, strips the echoed wrapper and prompts, and renders it with any status marker. A timeout aborts the deadline, captures the partial output, and resets the shell. +A first command spawns the shell through `ctx.terminals.spawn`, whose pwsh startup installs the controlled `prompt` function and returns only once the shell reached readiness. Each command is wrapped into one physical line — `Write-Output` of the start marker, the body escaped with backtick escapes into a double-quoted string, and `Write-Output` of the end marker plus the exit status — so PSReadLine's echo of a wrapped line cannot fabricate completion. The tool polls the scrollback in 1,000-line pages until the end marker appears or the send settles as `stdin_read`, extracts the span, strips the echoed wrapper, and renders it with any status marker. A timeout aborts the deadline, captures the partial output, and resets the shell. @@ -128,7 +128,7 @@ Prefix-stable while the configured description and schema remain unchanged. #### What the model sees -Commands share one shell per Agent, so cwd, `$env:` variables, functions, and background jobs persist across calls. Results exclude private completion markers, the shell prompt, and the echoed input line (PSReadLine renders submitted input back into the stream; the marker-anchored extraction and the wrapper-source strip remove it). A nonzero wrapped command appends `[exit code: N]` — the exact native exit code when the command ran a native program, `1` for a terminating PowerShell error. A shell that exits before reporting that status instead appends `[shell exited: code N]`, `[shell killed by signal: SIG]`, or `[shell exited]` when the backend supplies neither (Windows forced termination reports exit 1 without a signal), then resets and tells the model that the next call starts fresh. Long output keeps the earliest retained prefix plus a clipping notice; if the terminal has already dropped that prefix, the result says so explicitly. Timeout returns bounded partial output, closes the uncertain shell, and reports the reset. +Commands share one shell per Agent, so cwd, `$env:` variables, functions, and background jobs persist across calls. Results exclude private completion markers and the echoed input line (PSReadLine renders submitted input back into the stream; the marker-anchored extraction and the wrapper-source strip remove it). When the shell reads stdin again without having printed the completion marker — an interrupt, a replaced shell, or an interactive foreground child whose stdin wait the provider proves — the call returns the captured partial output, which can end with the backend's own prompt text. A nonzero wrapped command appends `[exit code: N]` — the exact native exit code when the command ran a native program, `1` for a terminating PowerShell error. A shell that exits before reporting that status instead appends `[shell exited: code N]`, `[shell killed by signal: SIG]`, or `[shell exited]` when the backend supplies neither (Windows forced termination reports exit 1 without a signal), then resets and tells the model that the next call starts fresh. Long output keeps the earliest retained prefix plus a clipping notice; if the terminal has already dropped that prefix, the result says so explicitly. Timeout returns bounded partial output, closes the uncertain shell, and reports the reset. #### Token effect @@ -149,7 +149,7 @@ These limits define when the tool is a poor fit or needs special care. They are - **Input echo is unavoidable** — PowerShell's PSReadLine renders submitted input back into the terminal stream, and there is no `stty -echo` equivalent. The marker-anchored extraction excludes the echo in complete results; the wrapper-source strip covers fallback paths, but a wrapper that wraps across the terminal width may leave a partial echo in partial-output results, bounded by `maxOutputChars`. - **Raw ESC characters inside model commands are unsupported** — PSReadLine consumes them before execution. The wrapper escapes the control bytes it needs (`[char]27`-built OSC markers, backtick escapes for the body). - **A model redefinition of the `prompt` function removes the readiness marker** — the shell then settles on the silence tier instead of the marker fast path. -- **There is no interactive stdin during a command** — a foreground command that reads input blocks until the command timeout, which resets the shell. +- **There is no interactive stdin during a command** — a foreground child that reads input returns early with partial output only where the provider proves its stdin wait; elsewhere the call runs to `timeoutMs`, which resets the shell. - **SIGTSTP/SIGHUP are unavailable on Windows** (backend-rejected); SIGINT is delivered as a console-wide Ctrl-C input write, which at a prompt cancels the pending line instead of signalling a process. - **Under the Windows ACL sandbox's read-only mode, pwsh starts in ConstrainedLanguage**, which may deny the bootstrap's `[Console]::` encoding pin and prompt marker. Commands can still settle through the printable prompt and silence tier, but non-ASCII output may follow the host code page. - **The BEL-terminated OSC marker remains a readiness signal only** — a BEL event channel to the model stays deferred, aligned with the current implementation. diff --git a/packages/shell/tool-pwsh-persistent/README.zh.md b/packages/shell/tool-pwsh-persistent/README.zh.md index d634e8e42e..eedf8e7135 100644 --- a/packages/shell/tool-pwsh-persistent/README.zh.md +++ b/packages/shell/tool-pwsh-persistent/README.zh.md @@ -54,7 +54,7 @@ kind: "package-reference" ### agent 可以依赖什么 -命令共享每个 agent 一个 shell,因此 cwd、`$env:` 变量、函数与后台任务都会跨调用保留。结果排除私有完成标记、shell 提示符与回显的输入行。非零的包装命令追加 `[exit code: N]`——命令运行原生程序时给出确切原生退出码,PowerShell 终止错误则为 `1`。在报告该状态前就退出的 shell 改为追加 `[shell exited: code N]`、`[shell killed by signal: SIG]` 或 `[shell exited]`(Windows 强制终止报告 exit 1 且没有信号),然后重置并告诉 agent 下一次调用从全新状态开始。长输出保留最早的已保留前缀并附裁剪通知;若 terminal 已经丢弃该前缀,结果会明确说明。 +命令共享每个 agent 一个 shell,因此 cwd、`$env:` 变量、函数与后台任务都会跨调用保留。结果排除私有完成标记与回显的输入行。当 shell 再次读取 stdin 却没有打印完成标记时——一次中断、一个被替换的 shell,或提供方能证明其 stdin 等待的交互式前台子进程——调用返回已捕获的部分输出,其结尾可能是后端自己的提示符文本。非零的包装命令追加 `[exit code: N]`——命令运行原生程序时给出确切原生退出码,PowerShell 终止错误则为 `1`。在报告该状态前就退出的 shell 改为追加 `[shell exited: code N]`、`[shell killed by signal: SIG]` 或 `[shell exited]`(Windows 强制终止报告 exit 1 且没有信号),然后重置并告诉 agent 下一次调用从全新状态开始。长输出保留最早的已保留前缀并附裁剪通知;若 terminal 已经丢弃该前缀,结果会明确说明。 ### 可能出什么问题 @@ -73,7 +73,7 @@ kind: "package-reference" ### 设计理念 - **`dsh-tool-bash-persistent` 的刻意孪生。** 会话注册表、轮询循环与重置约定按设计镜像持久 bash 工具([pwsh 持久 PTY Agent Note](../../../.agents/notes/archived/architecture/2026-08-11-pwsh-persistent-pty.md))。 -- **prompt 函数就绪。** 工具安装自己的 `prompt` 函数,打印 BEL 结尾的 OSC 标记加可打印提示符;OSC 标记携带最后的退出码,可打印提示符让每条命令都能结算,因此模型重定义 `prompt` 会把就绪降级到静默层级。 +- **后端拥有提示符就绪。** shell 的 `prompt` 函数属于后端:它打印 BEL 结尾的 OSC 标记加受控的可打印提示符,该确切提示符文本让每条命令都经由后端快路径结算。工具既不安装也不匹配自己的提示符,因此只有模型重定义 `prompt` 才会把就绪降级到静默层级。 - **PSReadLine 回显靠锚定剥离。** PowerShell 会把提交的输入渲染回流中;标记锚定提取与包装源码剥离移除回显,而跨终端宽度换行的包装可能在部分输出结果中留下部分回显。 - **重置,而非修复。** 任何不确定状态——显式 `exit`、超时、发送失败、中止——都会关闭 shell 并让下一次调用从全新状态开始。 @@ -81,12 +81,12 @@ kind: "package-reference" | 文件 | 职责 | |---|---| -| [`src/index.ts`](src/index.ts) | 插件入口:shell 注册表、prompt 设置、命令包装、scrollback 轮询、提取与渲染 | +| [`src/index.ts`](src/index.ts) | 插件入口:shell 注册表、命令包装、scrollback 轮询、提取与渲染 | | — | 不发布运行时不变式伴生入口;适配器私有的 owner-to-shell 缓存不存在可观察的事件或数据关系。生命周期测试无需仅为不变式增加公共 API 即可验证其清理。 | ### 命令流程 -首条命令通过 `ctx.terminals.spawn` 生成 shell,安装 `prompt` 覆盖,并等待就绪。随后每条命令都包装成一行物理文本——`Write-Output` 起始标记、用反引号转义进双引号字符串的命令体、`Write-Output` 结束标记加退出状态——因此 PSReadLine 对换行包装的回显无法伪造完成。工具以 1,000 行一页轮询 scrollback,直到出现结束标记或完成的提示符,提取区间、剥离回显的包装与提示符,并连同任何状态标记一起渲染。超时会中止截止时间、捕获部分输出并重置 shell。 +首条命令通过 `ctx.terminals.spawn` 生成 shell,其 pwsh 启动流程安装受控的 `prompt` 函数,并只在该 shell 达到就绪后返回。随后每条命令都包装成一行物理文本——`Write-Output` 起始标记、用反引号转义进双引号字符串的命令体、`Write-Output` 结束标记加退出状态——因此 PSReadLine 对换行包装的回显无法伪造完成。工具以 1,000 行一页轮询 scrollback,直到出现结束标记或该 send 以 `stdin_read` 结算,提取区间、剥离回显的包装,并连同任何状态标记一起渲染。超时会中止截止时间、捕获部分输出并重置 shell。 @@ -128,7 +128,7 @@ kind: "package-reference" #### 模型看到什么 -命令共享每个 agent 一个 shell,因此 cwd、`$env:` 变量、函数与后台任务都会跨调用保留。结果排除私有完成标记、shell 提示词与回显的输入行(PSReadLine 会把提交的输入渲染回流中;标记锚定提取与包装源码剥离会移除它)。非零的包装命令追加 `[exit code: N]`——命令运行原生程序时给出确切原生退出码,PowerShell 终止错误则为 `1`。在报告该状态前就退出的 shell 改为追加 `[shell exited: code N]`、`[shell killed by signal: SIG]`,或后端两者都未提供时的 `[shell exited]`(Windows 强制终止报告 exit 1 且没有信号),然后重置并告诉模型下一次调用从全新状态开始。长输出保留最早的已保留前缀并附裁剪通知;若 terminal 已经丢弃该前缀,结果会明确说明。超时返回有界部分输出、关闭不确定的 shell 并报告重置。 +命令共享每个 agent 一个 shell,因此 cwd、`$env:` 变量、函数与后台任务都会跨调用保留。结果排除私有完成标记与回显的输入行(PSReadLine 会把提交的输入渲染回流中;标记锚定提取与包装源码剥离会移除它)。当 shell 再次读取 stdin 却没有打印完成标记时——一次中断、一个被替换的 shell,或提供方能证明其 stdin 等待的交互式前台子进程——调用返回已捕获的部分输出,其结尾可能是后端自己的提示符文本。非零的包装命令追加 `[exit code: N]`——命令运行原生程序时给出确切原生退出码,PowerShell 终止错误则为 `1`。在报告该状态前就退出的 shell 改为追加 `[shell exited: code N]`、`[shell killed by signal: SIG]`,或后端两者都未提供时的 `[shell exited]`(Windows 强制终止报告 exit 1 且没有信号),然后重置并告诉模型下一次调用从全新状态开始。长输出保留最早的已保留前缀并附裁剪通知;若 terminal 已经丢弃该前缀,结果会明确说明。超时返回有界部分输出、关闭不确定的 shell 并报告重置。 #### Token 影响 @@ -149,7 +149,7 @@ kind: "package-reference" - **输入回显不可避免**——PowerShell 的 PSReadLine 会把提交的输入渲染回终端流,而且没有 `stty -echo` 等价物。标记锚定提取在完整结果中排除回显;包装源码剥离覆盖回退路径,但跨终端宽度换行的包装可能在部分输出结果中留下部分回显,受 `maxOutputChars` 设界。 - **模型命令内的原始 ESC 字符不受支持**——PSReadLine 会在执行前消费它们。包装器会转义它需要的控制字节(`[char]27` 构造的 OSC 标记、正文的反引号转义)。 - **模型重定义 `prompt` 函数会移除就绪标记**——shell 随后在静默层级而非标记快路径上结算。 -- **命令期间没有交互 stdin**——读取输入的前台命令会一直阻塞到命令超时,随后重置 shell。 +- **命令期间没有交互 stdin**——读取输入的前台子进程仅在提供方能证明其 stdin 等待时提前返回部分输出;否则调用会运行到 `timeoutMs`,随后重置 shell。 - **Windows 上 SIGTSTP/SIGHUP 不可用**(后端拒绝);SIGINT 以控制台级 Ctrl-C 输入写入投递,在提示词处会取消待处理行而不是向进程发信号。 - **在 Windows ACL 沙箱的只读模式下,pwsh 以 ConstrainedLanguage 启动**,可能拒绝引导的 `[Console]::` 编码固定与 prompt 标记。命令仍可通过可打印提示词与静默层级结算,但非 ASCII 输出可能跟随宿主代码页。 - **BEL 结尾的 OSC 标记目前只是就绪信号**——通向模型的 BEL 事件通道仍被推迟,与当前实现保持一致。 diff --git a/packages/shell/tool-pwsh-persistent/src/index.ts b/packages/shell/tool-pwsh-persistent/src/index.ts index 34f8cf7732..84b7e622ec 100644 --- a/packages/shell/tool-pwsh-persistent/src/index.ts +++ b/packages/shell/tool-pwsh-persistent/src/index.ts @@ -9,7 +9,7 @@ import { randomUUID } from 'node:crypto' import type { Context } from '@deepseek-ai/cordis' import z from '@deepseek-ai/schemastery' import type { Agent } from '@deepseek-ai/dsh-agent' -import type { TerminalReadResult, TerminalSendResult, TerminalSessionId } from '@deepseek-ai/dsh-terminal' +import type { TerminalReadResult, TerminalSessionId } from '@deepseek-ai/dsh-terminal' import { deadline, timeoutOf } from '@deepseek-ai/dsh-timeout' import { defineTool } from '@deepseek-ai/dsh-tools' @@ -17,7 +17,6 @@ import { defineTool } from '@deepseek-ai/dsh-tools' const TRUNCATED_MESSAGE = 'To save on context only part of this file has been shown to you. You should retry this tool after you have searched inside the file with Select-String in order to find the line numbers of what you are looking for.' const LOST_PREFIX_MESSAGE = 'The beginning of this command output was dropped by the terminal scrollback limit. The following text is the earliest retained output.\n' const SHELL_RESET_MESSAGE = 'The persistent pwsh shell was reset; the next pwsh call starts from the workspace with a fresh current directory and environment.' -const SHELL_PROMPT = '__DSH_PERSISTENT_PWSH_PROMPT__ ' const TIMEOUT_CODE = 'PERSISTENT_PWSH_TIMEOUT' // One page is enough to find a just-emitted completion marker; the full // scrollback is assembled only when a command settles or needs partial output. @@ -98,12 +97,8 @@ function wrapCommand(command: string, marker: CommandMarkers): string { return `Write-Output '${marker.start}'; $LASTEXITCODE = $null; $__s = 1; try { Invoke-Expression "${body}"; $__ok = $? } catch { $__ok = $false }; if ($null -ne $LASTEXITCODE) { $__s = [int]$LASTEXITCODE } else { $__s = if ($__ok) { 0 } else { 1 } }; Write-Output ('${marker.end}' + $__s)` } -function stripPrompt(text: string): string { - let result = text.replace(/\r?\n$/, '') - while (result.endsWith(SHELL_PROMPT)) { - result = result.slice(0, -SHELL_PROMPT.length) - } - return result.endsWith('\n') ? result.slice(0, -1) : result +function trimTrailingNewline(text: string): string { + return text.replace(/\r?\n$/, '') } function commandOutput( @@ -130,12 +125,6 @@ function commandOutput( } } -function promptCompleted(result: TerminalSendResult): boolean { - return result.viewport.endsWith(SHELL_PROMPT) - || result.viewport.endsWith(`${SHELL_PROMPT}\r\n`) - || result.viewport.endsWith(`${SHELL_PROMPT}\n`) -} - function partialOutput( snapshot: RetainedOutput, marker: CommandMarkers, @@ -146,7 +135,7 @@ function partialOutput( const startMarker = snapshot.text.lastIndexOf(marker.start) if (startMarker >= 0) { return { - text: stripPrompt(snapshot.text.slice(startMarker + marker.start.length).replace(/^\r?\n/, '')), + text: trimTrailingNewline(snapshot.text.slice(startMarker + marker.start.length).replace(/^\r?\n/, '')), incomplete: false, } } @@ -157,7 +146,7 @@ function partialOutput( const fallbackEnd = afterStart.lastIndexOf(marker.end) const beforeEnd = fallbackEnd < 0 ? afterStart : afterStart.slice(0, fallbackEnd) return { - text: stripPrompt(beforeEnd.replaceAll(SHELL_PROMPT, '').replaceAll(wrapper, '')), + text: trimTrailingNewline(beforeEnd.replaceAll(wrapper, '')), incomplete: fallbackTruncated || fallbackStart < 0, } } @@ -252,15 +241,6 @@ async function respondToSessionExit( ].filter(part => part.length > 0).join('\n') } -/** - * The pwsh prompt function that overrides the backend bootstrap value with - * this tool's own prompt. `[char]27`/`[char]7` build the OSC bytes at runtime - * because raw ESC characters in submitted input are unreliable under - * PSReadLine. - */ -const PWSH_PROMPT_SETUP = - "function prompt { [Console]::Write([char]27 + ']133;D;' + [int]$LASTEXITCODE + [char]7); '" + SHELL_PROMPT + "' }" - function persistentShells(ctx: Context, config: ResolvedConfig): PersistentShells { const pending = new WeakMap>() const live = new Map() @@ -307,15 +287,6 @@ function persistentShells(ctx: Context, config: ResolvedConfig): PersistentShell live.delete(owner) }, 'tool-pwsh-persistent owner cache cleanup') } - const setup = ctx.terminals.startSend(owner, spawned.sessionId, { - text: PWSH_PROMPT_SETUP, - submit: true, - signal: combinedSignal, - }) - const result = await setup.done - if (result.sessionStatus.kind === 'exited' || result.waitReason === 'timeout') { - throw new Error('persistent pwsh shell did not accept initialization') - } return spawned.sessionId } catch (error: unknown) { await reset(owner, 'persistent pwsh initialization failed') @@ -414,7 +385,11 @@ async function executeCommand( ctx, shells, owner, id, result.sessionStatus, marker, wrapped, fallback, fallbackTruncated, config, ) } - if (promptCompleted(result)) { + // The shell reads stdin again (its prompt, or a foreground child's own + // read) without having printed the end marker — an interrupt, a replaced + // shell, or an interactive child. Return what was captured instead of + // spinning until the command deadline. + if (result.waitReason === 'stdin_read') { const snapshot = retainedScrollback(ctx, owner, id, latest) return renderCaptured( partialOutput(snapshot, marker, wrapped, fallback, fallbackTruncated), diff --git a/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts b/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts index eacd51d586..96fe69116c 100644 --- a/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts +++ b/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts @@ -95,7 +95,10 @@ describe.skipIf(!hasPwsh)('persistent pwsh through a real cordis.yml Loader comp ' shellDialect: pwsh', ' pollIntervalMs: 10', ' exactProbeAfterMs: 20', - ' idleSilenceMs: 300', + // The silence tier is pushed beyond the send bound, so no send below can + // settle as inferred_idle: every case proves the controlled-prompt fast + // path that the production defaults (3.5s silence) would otherwise mask. + ' idleSilenceMs: 30000', ' handoffGraceMs: 300', ' scrollbackLines: 20000', // The first call pays the full pwsh cold-start latency (spawn + .NET + diff --git a/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts b/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts index c260f818eb..bf2ff8454b 100644 --- a/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts +++ b/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts @@ -93,8 +93,6 @@ type StubMode = | 'torn-status' | 'finish-torn-status' | 'end-only' - | 'init-exit' - | 'init-timeout' | 'spawn-error' | 'send-error' | 'prompt-after-idle' @@ -109,7 +107,7 @@ const START_PATTERN = /__DSH_PERSISTENT_PWSH_START_[^_]+(?:-[^_]+)*__/ const END_PATTERN = /__DSH_PERSISTENT_PWSH_END_[^:]+:/ class StubTerminalSession implements TerminalBackendSession { - readonly motd = '__DSH_PERSISTENT_PWSH_PROMPT__ ' + readonly motd = 'stub> ' readonly pid = 123 statusValue: TerminalSessionStatus = { kind: 'running' } scrollback = this.motd @@ -126,16 +124,6 @@ class StubTerminalSession implements TerminalBackendSession { startSend(request: TerminalSendRequest): TerminalSendOperation { this.sends += 1 - if (request.text.startsWith('function prompt')) { - if (this.mode === 'init-exit') { - this.statusValue = { kind: 'exited', exitCode: 1, signal: null } - return this.operation(Promise.resolve(this.result('', 'session_exit'))) - } - if (this.mode === 'init-timeout') { - return this.operation(Promise.resolve(this.result('', 'timeout'))) - } - return this.operation(Promise.resolve(this.result(this.motd, 'stdin_read'))) - } if (this.mode === 'send-error') throw new Error('stub send failed') if (this.throwOnSend) throw new Error('PTY session has exited') if (this.mode === 'wait-for-abort' || this.mode === 'end-on-abort') { @@ -346,7 +334,7 @@ describe('tool-pwsh-persistent', () => { expect(text(await call(ctx, owner, 'Write-Output one'))).toBe('hello from stub') expect(text(await call(ctx, owner, 'Write-Output two'))).toBe('hello from stub') expect(stub.sessions).toHaveLength(1) - expect(stub.sessions[0]?.sends).toBe(3) + expect(stub.sessions[0]?.sends).toBe(2) const ownerWithoutCwd = await agent(ctx, undefined) expect(text(await call(ctx, ownerWithoutCwd, 'pwd'))).toBe('hello from stub') @@ -392,7 +380,7 @@ describe('tool-pwsh-persistent', () => { expect(stub.sessions).toHaveLength(2) }) - it('handles inferred idle, prompt fallback, shell exit, clipping, and cleanup', async () => { + it('handles inferred idle, stdin_read fallback, shell exit, clipping, and cleanup', async () => { const { ctx, owner, stub, fiber } = await setup({ backendType: 'stub', maxOutputChars: 10, @@ -405,18 +393,16 @@ describe('tool-pwsh-persistent', () => { session.mode = 'incremental-fallback' session.scrollback = '' - expect(text(await call(ctx, owner, 'incremental fallback'))).toBe('increment') + expect(text(await call(ctx, owner, 'incremental fallback'))).toContain('increment') session.mode = 'prompt-only' const promptFallback = text(await call(ctx, owner, 'bad {')) expect(promptFallback).toContain('pwsh: synt') - expect(promptFallback).not.toContain('DSH_PERSISTENT_PWSH_PROMPT') session.mode = 'prompt-crlf' session.scrollback = '' const crlfPromptFallback = text(await call(ctx, owner, 'bad {')) expect(crlfPromptFallback).toContain('pwsh: synt') - expect(crlfPromptFallback).not.toContain('DSH_PERSISTENT_PWSH_PROMPT') session.mode = 'end-only' session.scrollback = '' @@ -502,7 +488,7 @@ describe('tool-pwsh-persistent', () => { expect(text(await call(ctx, owner, 'paged output'))).toBe('hello from stub') }) - it('sanitizes a prompt fallback reached after multiple polling rounds', async () => { + it('returns a stdin_read fallback reached after multiple polling rounds', async () => { const { ctx, owner, stub } = await setup({ backendType: 'stub', maxOutputChars: 1_000 }) await call(ctx, owner, 'warm up') const session = stub.sessions[0]! @@ -511,7 +497,8 @@ describe('tool-pwsh-persistent', () => { const result = text(await call(ctx, owner, 'bad {')) expect(result).toContain('partial syntax output') expect(result).toContain('pwsh: syntax error') - expect(result).not.toContain('DSH_PERSISTENT_PWSH_PROMPT') + // The backend owns the prompt text, so the fallback retains it verbatim. + expect(result.endsWith('stub> ')).toBe(true) expect(result).not.toContain('DSH_PERSISTENT_PWSH_START') }) @@ -546,7 +533,7 @@ describe('tool-pwsh-persistent', () => { const cancelled = call(ctx, owner, 'hang', controller.signal) const queued = call(ctx, owner, 'after cancellation') try { - await expect.poll(() => stub.sessions[0]!.sends).toBe(3) + await expect.poll(() => stub.sessions[0]!.sends).toBe(2) controller.abort({ kind: 'user' }) const result = await cancelled @@ -577,14 +564,14 @@ describe('tool-pwsh-persistent', () => { const running = call(ctx, owner, 'hang', runningController.signal) const queued = call(ctx, owner, 'never sent', queuedController.signal) try { - await expect.poll(() => session.sends).toBe(3) + await expect.poll(() => session.sends).toBe(2) await expect.poll(() => execute.mock.calls.length).toBe(2) queuedController.abort({ kind: 'user' }) runningController.abort({ kind: 'user' }) const result = await queued expect(text(result)).toBe('Error: tool call aborted') expect(result.error?.info).toEqual({ name: 'AbortError', code: 'ABORTED' }) - expect(session.sends).toBe(3) + expect(session.sends).toBe(2) expect(stub.sessions).toHaveLength(1) expect(session.closed).toContain('persistent pwsh command aborted') } finally { @@ -702,15 +689,6 @@ describe('tool-pwsh-persistent', () => { expect(stub.sessions).toEqual([]) }) - it.each(['init-exit', 'init-timeout'] as const)( - 'fails initialization and closes the unusable shell for %s', - async (mode) => { - const { ctx, owner, stub } = await setup({ backendType: 'stub' }, mode) - expect((await call(ctx, owner, 'pwd')).isError).toBe(true) - expect(stub.sessions[0]?.closed).toContain('persistent pwsh initialization failed') - }, - ) - it('clears a failed spawn without trying to close an unpublished shell', async () => { const { ctx, owner, stub } = await setup({ backendType: 'stub' }, 'spawn-error') expect((await call(ctx, owner, 'pwd')).isError).toBe(true) From 74f4c438de902567e8f28d82e58a654a627bc426 Mon Sep 17 00:00:00 2001 From: Huanqi Cao Date: Mon, 21 Sep 2026 16:53:15 +0800 Subject: [PATCH 02/23] test(pty): pin the pwsh fast path by settle reason The composition suite's idleSilenceMs: 30000 was below the suite's own send bound (dsh-terminal-bash timeoutMs: 300000), so the comment claiming silence could settle nothing was wrong: a regressed send still settled as inferred_idle after ~30 s and only the accumulated case timeout caught it. The case now records every send's waitReason and requires at least six stdin_read settlements with no inferred_idle. Reinstating the removed prompt override fails it in 30 s with 'expected 0 to be greater than or equal to 6' while the output assertions still pass. The silence tier returns to its product default. Also renames the two stale test titles ('private shell prompt', and the cancellation phase that no longer covers an initialization send), pins the stdin_read fallback's session retention, and records the interactive-child consequence of that retention in the package README pair and the Agent Note. --- ...ent-pwsh-keeps-controlled-prompt.i18n.yaml | 4 +-- ...persistent-pwsh-keeps-controlled-prompt.md | 4 +-- ...sistent-pwsh-keeps-controlled-prompt.zh.md | 4 +-- .../tool-pwsh-persistent/README.i18n.yaml | 4 +-- packages/shell/tool-pwsh-persistent/README.md | 2 +- .../shell/tool-pwsh-persistent/README.zh.md | 2 +- .../tests/loader-composition.spec.ts | 31 ++++++++++++++++--- .../tool-pwsh-persistent/tests/tools.spec.ts | 14 ++++++--- 8 files changed, 46 insertions(+), 19 deletions(-) diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml index db9c9a3ad8..4f16b7775b 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md -2026-09-21-persistent-pwsh-keeps-controlled-prompt.md: 748d18f6daafaf036576a911d26647dafbe92261 -2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md: 6425581a6dbb84dfc3b1c4cd4fb732353c4cd5e1 +2026-09-21-persistent-pwsh-keeps-controlled-prompt.md: 3fd42b77d4536215f34c32643526dbb03d21674f +2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md: 88d4e2deef26af4ad92ef4a69d8ae17403027f70 diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md index 748d18f6da..3fd42b77d4 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md @@ -30,8 +30,8 @@ The viewport-suffix fallback is replaced with the seam's own signal: a send that Windows, production defaults, real Loader composition: tool calls drop from 8493/3722/3832/3759 ms to 1340/255/251/241 ms (spawn + initialization + first command, then three warm commands). -The `stdin_read` fallback is behavior, not only cosmetics: where a provider proves a foreground stdin wait, an interactive child now returns captured partial output instead of spinning to the command deadline, and elsewhere the call still runs to `timeoutMs`; the tool README records both. Complete marker-delimited output is unchanged. +The `stdin_read` fallback is behavior, not only cosmetics: where a provider proves a foreground stdin wait, an interactive child returns captured partial output instead of spinning to the command deadline, and elsewhere the call still runs to `timeoutMs`. That early return keeps the session, so a child still reading stdin can consume the next call's command until that call reaches `timeoutMs` and resets the shell; `dsh-tool-bash-persistent` behaves the same way, and distinguishing the shell's own prompt readiness from a child's stdin wait belongs to the seam rather than to either tool. Complete marker-delimited output is unchanged. -The loader-composition suite now sets `idleSilenceMs: 30000`, above the send bound, so silence can settle nothing and every case fails if prompt readiness regresses. The stub suite drops the initialization-handshake modes and pins the prompt text retained in partial output instead of its absence. +The loader-composition suite records every send's `waitReason` and requires at least six `stdin_read` settlements and no `inferred_idle`: the regression is reported by the settle reason itself, not by how long silence takes. Reinstating the removed prompt override fails that assertion after 30 s with `expected 0 to be greater than or equal to 6`, while the case's output assertions still pass. The stub suite drops the initialization-handshake modes and pins the prompt text retained in partial output instead of its absence. A model command that redefines `prompt` still removes the readiness marker and degrades later sends to the silence tier: the backend installs its prompt once at startup and cannot re-assert it. diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md index 6425581a6d..88d4e2deef 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md +++ b/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md @@ -30,8 +30,8 @@ Status: implemented Windows、生产默认值、真实 Loader 组合:工具调用从 8493/3722/3832/3759 毫秒降至 1340/255/251/241 毫秒(spawn + 初始化 + 首条命令,随后三条热命令)。 -`stdin_read` 回退是行为而不只是美化:在提供方能证明前台 stdin 等待之处,交互式子进程现在返回已捕获的部分输出,而不是空转到命令期限;其他情况下调用仍会运行到 `timeoutMs`,两者都记入工具 README。由标记界定的完整输出保持不变。 +`stdin_read` 回退是行为而不只是美化:在提供方能证明前台 stdin 等待之处,交互式子进程会返回已捕获的部分输出,而不是空转到命令期限;其他情况下调用仍会运行到 `timeoutMs`。该提前返回保留会话,因此仍在读取 stdin 的子进程可能吞掉下一次调用的命令,直到那次调用到达 `timeoutMs` 并重置 shell;`dsh-tool-bash-persistent` 行为相同,而区分「shell 自身的提示符就绪」与「子进程的 stdin 等待」属于 seam,而不是任一工具。由标记界定的完整输出保持不变。 -loader 组合套件现在把 `idleSilenceMs` 设为 30000,位于 send 上限之上,静默无法结算任何 send,提示符就绪一旦回归,每个用例都会失败。stub 套件删除了初始化握手模式,并改为锚定部分输出中保留的提示符文本,而不是它的缺席。 +loader 组合套件记录每次 send 的 `waitReason`,要求至少六次 `stdin_read` 且没有 `inferred_idle`:回归由结算原因本身报告,而不是靠静默层耗时。把删掉的提示符覆盖加回去,该断言会在 30 秒后以 `expected 0 to be greater than or equal to 6` 失败,而同一用例的输出断言仍然通过。stub 套件删除了初始化握手模式,并改为锚定部分输出中保留的提示符文本,而不是它的缺席。 重定义 `prompt` 的模型命令仍会移除就绪标记,并把后续 send 降级到静默层:后端只在启动时安装一次提示符,无法重新设定。 diff --git a/packages/shell/tool-pwsh-persistent/README.i18n.yaml b/packages/shell/tool-pwsh-persistent/README.i18n.yaml index 00dcbdee79..d0e2b2e198 100644 --- a/packages/shell/tool-pwsh-persistent/README.i18n.yaml +++ b/packages/shell/tool-pwsh-persistent/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/shell/tool-pwsh-persistent/README.md -README.md: d4c52d9209118830364b7d20e8ee4a26452ad604 -README.zh.md: eedf8e7135e9bd2c73b70e891658920b5d6c64e8 +README.md: cd78f224f9f85899cca1f578fd0316c6f4caab2f +README.zh.md: 53b0b4cdd69ac94556f16621ccd3d9ca205cc6f4 diff --git a/packages/shell/tool-pwsh-persistent/README.md b/packages/shell/tool-pwsh-persistent/README.md index d4c52d9209..cd78f224f9 100644 --- a/packages/shell/tool-pwsh-persistent/README.md +++ b/packages/shell/tool-pwsh-persistent/README.md @@ -149,7 +149,7 @@ These limits define when the tool is a poor fit or needs special care. They are - **Input echo is unavoidable** — PowerShell's PSReadLine renders submitted input back into the terminal stream, and there is no `stty -echo` equivalent. The marker-anchored extraction excludes the echo in complete results; the wrapper-source strip covers fallback paths, but a wrapper that wraps across the terminal width may leave a partial echo in partial-output results, bounded by `maxOutputChars`. - **Raw ESC characters inside model commands are unsupported** — PSReadLine consumes them before execution. The wrapper escapes the control bytes it needs (`[char]27`-built OSC markers, backtick escapes for the body). - **A model redefinition of the `prompt` function removes the readiness marker** — the shell then settles on the silence tier instead of the marker fast path. -- **There is no interactive stdin during a command** — a foreground child that reads input returns early with partial output only where the provider proves its stdin wait; elsewhere the call runs to `timeoutMs`, which resets the shell. +- **There is no interactive stdin during a command** — where the provider proves a foreground stdin wait, a child that reads input returns early with partial output and leaves the session open, so that child can consume the next call's command until the call reaches `timeoutMs` and resets the shell. Everywhere else the original call itself runs to `timeoutMs`, which resets the shell. - **SIGTSTP/SIGHUP are unavailable on Windows** (backend-rejected); SIGINT is delivered as a console-wide Ctrl-C input write, which at a prompt cancels the pending line instead of signalling a process. - **Under the Windows ACL sandbox's read-only mode, pwsh starts in ConstrainedLanguage**, which may deny the bootstrap's `[Console]::` encoding pin and prompt marker. Commands can still settle through the printable prompt and silence tier, but non-ASCII output may follow the host code page. - **The BEL-terminated OSC marker remains a readiness signal only** — a BEL event channel to the model stays deferred, aligned with the current implementation. diff --git a/packages/shell/tool-pwsh-persistent/README.zh.md b/packages/shell/tool-pwsh-persistent/README.zh.md index eedf8e7135..53b0b4cdd6 100644 --- a/packages/shell/tool-pwsh-persistent/README.zh.md +++ b/packages/shell/tool-pwsh-persistent/README.zh.md @@ -149,7 +149,7 @@ kind: "package-reference" - **输入回显不可避免**——PowerShell 的 PSReadLine 会把提交的输入渲染回终端流,而且没有 `stty -echo` 等价物。标记锚定提取在完整结果中排除回显;包装源码剥离覆盖回退路径,但跨终端宽度换行的包装可能在部分输出结果中留下部分回显,受 `maxOutputChars` 设界。 - **模型命令内的原始 ESC 字符不受支持**——PSReadLine 会在执行前消费它们。包装器会转义它需要的控制字节(`[char]27` 构造的 OSC 标记、正文的反引号转义)。 - **模型重定义 `prompt` 函数会移除就绪标记**——shell 随后在静默层级而非标记快路径上结算。 -- **命令期间没有交互 stdin**——读取输入的前台子进程仅在提供方能证明其 stdin 等待时提前返回部分输出;否则调用会运行到 `timeoutMs`,随后重置 shell。 +- **命令期间没有交互 stdin**——在提供方能证明前台 stdin 等待之处,读取输入的子进程会提前返回部分输出并保留会话,因此该子进程可能吞掉下一次调用的命令,直到那次调用到达 `timeoutMs` 并重置 shell。其他情况下原调用本身会运行到 `timeoutMs`,随后重置 shell。 - **Windows 上 SIGTSTP/SIGHUP 不可用**(后端拒绝);SIGINT 以控制台级 Ctrl-C 输入写入投递,在提示词处会取消待处理行而不是向进程发信号。 - **在 Windows ACL 沙箱的只读模式下,pwsh 以 ConstrainedLanguage 启动**,可能拒绝引导的 `[Console]::` 编码固定与 prompt 标记。命令仍可通过可打印提示词与静默层级结算,但非 ASCII 输出可能跟随宿主代码页。 - **BEL 结尾的 OSC 标记目前只是就绪信号**——通向模型的 BEL 事件通道仍被推迟,与当前实现保持一致。 diff --git a/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts b/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts index 96fe69116c..8641952fb4 100644 --- a/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts +++ b/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts @@ -3,7 +3,7 @@ import { mkdtemp, realpath, rm, writeFile } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' import { pathToFileURL } from 'node:url' -import { afterEach, describe, expect, it } from 'vitest' +import { afterEach, describe, expect, it, vi } from 'vitest' import { Context } from '@deepseek-ai/cordis' import Loader from '@deepseek-ai/cordis-plugin-loader' import Include from '@deepseek-ai/cordis-plugin-include' @@ -13,6 +13,7 @@ import AgentRegistry from '@deepseek-ai/dsh-agent' import SessionProjectionRegistry from '@deepseek-ai/dsh-session-projection' import type { Agent } from '@deepseek-ai/dsh-agent' import TerminalSessionService from '@deepseek-ai/dsh-terminal' +import type { TerminalWaitReason } from '@deepseek-ai/dsh-terminal' import * as TerminalBash from '@deepseek-ai/dsh-terminal-bash' import SandboxProvider from '@deepseek-ai/dsh-sandbox' import type { ConfinedArgv, SandboxPolicy } from '@deepseek-ai/dsh-sandbox' @@ -95,10 +96,9 @@ describe.skipIf(!hasPwsh)('persistent pwsh through a real cordis.yml Loader comp ' shellDialect: pwsh', ' pollIntervalMs: 10', ' exactProbeAfterMs: 20', - // The silence tier is pushed beyond the send bound, so no send below can - // settle as inferred_idle: every case proves the controlled-prompt fast - // path that the production defaults (3.5s silence) would otherwise mask. - ' idleSilenceMs: 30000', + // The silence tier keeps its product default; the case body records each + // send's wait reason, which pins the controlled-prompt fast path directly + // instead of relying on how long silence would take to settle. ' handoffGraceMs: 300', ' scrollbackLines: 20000', // The first call pays the full pwsh cold-start latency (spawn + .NET + @@ -143,6 +143,22 @@ describe.skipIf(!hasPwsh)('persistent pwsh through a real cordis.yml Loader comp await context.loader.create({ name: 'cordis:include', config: { path: pathToFileURL(configPath).href } }) await context.loader.await() + const terminals = context.terminals + const startSend = terminals.startSend.bind(terminals) + // A send that lost the controlled-prompt fast path settles as inferred_idle + // after the silence tier, so recording why every send settled detects that + // regression immediately instead of through accumulated wall-clock. + const settleReasons: TerminalWaitReason[] = [] + vi.spyOn(terminals, 'startSend').mockImplementation((owner, id, request) => { + const operation = startSend(owner, id, request) + void operation.done.then( + (settled) => { settleReasons.push(settled.waitReason) }, + // A rejected send is the tool's error path, not a settle reason. + () => {}, + ) + return operation + }) + const owner = await agent(context, root) const signal = new AbortController().signal const execute = (id: string, command: string) => context!.tools.execute({ @@ -180,5 +196,10 @@ describe.skipIf(!hasPwsh)('persistent pwsh through a real cordis.yml Loader comp const exited = text(await execute('exit', 'exit')) expect(exited).toContain('next pwsh call starts from the workspace') expect(text(await execute('after-exit', 'Write-Output "$PWD"'))).toBe(root) + + // Six commands settle on the controlled prompt; no send may fall back to the + // silence tier, which is the 3.5 s-per-call degradation this suite pins. + expect(settleReasons.filter(reason => reason === 'stdin_read').length).toBeGreaterThanOrEqual(6) + expect(settleReasons).not.toContain('inferred_idle') }, 120_000) }) diff --git a/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts b/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts index bf2ff8454b..2957c34b54 100644 --- a/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts +++ b/packages/shell/tool-pwsh-persistent/tests/tools.spec.ts @@ -356,7 +356,7 @@ describe('tool-pwsh-persistent', () => { expect(result).not.toContain('Invoke-Expression') }) - it('preserves command output that equals the private shell prompt', async () => { + it("preserves command output that equals the backend's prompt text", async () => { const { ctx, owner, stub } = await setup({ backendType: 'stub' }) await call(ctx, owner, 'warm up') const session = stub.sessions[0]! @@ -404,6 +404,12 @@ describe('tool-pwsh-persistent', () => { const crlfPromptFallback = text(await call(ctx, owner, 'bad {')) expect(crlfPromptFallback).toContain('pwsh: synt') + // The stdin_read fallback returns captured output without resetting the + // shell, so later calls keep the same session; the README names the + // interactive-child consequence of that retention. + expect(session.closed).toEqual([]) + expect(stub.sessions).toHaveLength(1) + session.mode = 'end-only' session.scrollback = '' const missingStart = text(await call(ctx, owner, 'recover marker')) @@ -656,14 +662,14 @@ describe('tool-pwsh-persistent', () => { } }) - it.each(['initialization', 'command', 'cleanup'] as const)('preserves a distinct %s failure during cancellation', async (phase) => { + it.each(['command', 'cleanup'] as const)('preserves a distinct %s failure during cancellation', async (phase) => { const { ctx, owner } = await setup() - if (phase === 'command') await call(ctx, owner, 'warm up') + await call(ctx, owner, 'warm up') const controller = new AbortController() const failure = new Error(`${phase} failed`) vi.spyOn(ctx.terminals, 'startSend').mockImplementationOnce(() => { controller.abort({ kind: 'user' }) - throw phase === 'cleanup' ? new Error('initialization failed') : failure + throw phase === 'cleanup' ? new Error('send failed') : failure }) if (phase === 'cleanup') vi.spyOn(ctx.terminals, 'kill').mockRejectedValueOnce(failure) const result = await call(ctx, owner, 'fails', controller.signal) From 8d2cd0cf72090cc58fe8cfc9258ebbdf58ac9f1e Mon Sep 17 00:00:00 2001 From: yixiangihsiang Date: Mon, 21 Sep 2026 21:56:10 +0800 Subject: [PATCH 03/23] feat(web): unify code block styling and icon controls --- apps/web/tests/document-preview.e2e.ts | 7 +- .../clickable-links-gallery/ui.expected.md | 6 +- .../navigation-panes/code-card.expected.md | 4 + apps/web/tests/navigation-panes.e2e.ts | 23 +++++ packages/client/locale/src/locales/en.ts | 3 + packages/client/locale/src/locales/zh.ts | 3 + .../src/client/PresetGuideDialog.tsx | 9 +- .../ui-chat/src/client/markdown-labels.ts | 2 +- .../client/ui-plan/src/client/PlanPreview.tsx | 2 +- .../client/ui-primitives/README.i18n.yaml | 4 +- packages/client/ui-primitives/README.md | 2 + packages/client/ui-primitives/README.zh.md | 2 + .../ui-primitives/src/CodeCard.module.css | 81 ++++++++++++++++ .../client/ui-primitives/src/CodeToolbar.tsx | 62 ++++++++++++ .../ui-primitives/src/DiffBlock.module.css | 67 ++++--------- .../client/ui-primitives/src/DiffBlock.tsx | 15 ++- .../ui-primitives/src/ReadBlock.module.css | 92 +++--------------- .../client/ui-primitives/src/ReadBlock.tsx | 29 +++--- .../src/markdown/CodeBlock.module.css | 19 ++++ .../ui-primitives/src/markdown/CodeBlock.tsx | 20 +++- .../src/markdown/MarkdownText.tsx | 5 +- .../ui-primitives/src/markdown/render.tsx | 3 + .../tests/code-card-controls.client.spec.tsx | 96 +++++++++++++++++++ .../ui-primitives/tests/labels.client.ts | 2 + .../tests/read-block.client.spec.tsx | 7 +- .../README.i18n.yaml | 4 +- .../ui-sidebar-documentpreview/README.md | 2 +- .../ui-sidebar-documentpreview/README.zh.md | 2 +- .../src/client/code/CodeBody.module.css | 1 + .../src/client/code/CodeBody.tsx | 2 + .../src/client/markdown/MarkdownBody.tsx | 7 +- .../tests/code-body.client.spec.tsx | 11 ++- packages/client/ui-theme/src/styles/shiki.css | 7 ++ .../tool/components/ToolDetails.module.css | 8 +- .../client/tool/components/ToolDetails.tsx | 3 +- .../client/tool/components/ToolRow.module.css | 6 -- .../src/client/tool/components/ToolRow.tsx | 5 +- .../client/tool/models/primitive-labels.ts | 14 ++- .../ui-tool/tests/diff-card.client.spec.tsx | 2 +- .../src/client/QuestionComposer.tsx | 2 +- .../ui-cordis/src/client/CordisDefineRow.tsx | 1 + 41 files changed, 449 insertions(+), 193 deletions(-) create mode 100644 apps/web/tests/expected/navigation-panes/code-card.expected.md create mode 100644 packages/client/ui-primitives/src/CodeCard.module.css create mode 100644 packages/client/ui-primitives/src/CodeToolbar.tsx create mode 100644 packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx diff --git a/apps/web/tests/document-preview.e2e.ts b/apps/web/tests/document-preview.e2e.ts index 07e7397d12..fd0ebd02ad 100644 --- a/apps/web/tests/document-preview.e2e.ts +++ b/apps/web/tests/document-preview.e2e.ts @@ -797,7 +797,12 @@ else process.exit(1); })).toEqual({ scrollTop, scrollportBelowBanner: true, firstLineAbove: true }) await page.context().grantPermissions(['clipboard-read', 'clipboard-write'], { origin: new URL(page.url()).origin }) await page.evaluate(() => navigator.clipboard.writeText('')) - await codeBlock.getByRole('button', { name: 'Copy', exact: true }).click() + const copyCode = codeBlock.getByRole('button', { name: 'Copy', exact: true }) + expect(await codeBlock.getByRole('button').count()).toBe(1) + expect(await copyCode.textContent()).toBe('') + await copyCode.hover() + await page.getByRole('tooltip', { name: 'Copy', exact: true }).waitFor() + await copyCode.click() await expect.poll(() => page.evaluate(() => navigator.clipboard.readText())).toBe(codeLines.join('\n')) sections.push([ '## Code paging', '', diff --git a/apps/web/tests/expected/clickable-links-gallery/ui.expected.md b/apps/web/tests/expected/clickable-links-gallery/ui.expected.md index 43b462deac..feaeaa2468 100644 --- a/apps/web/tests/expected/clickable-links-gallery/ui.expected.md +++ b/apps/web/tests/expected/clickable-links-gallery/ui.expected.md @@ -32,6 +32,8 @@ - text: Edit - button "src/tokens.css" - text: +1 -1 +- text: css +- button "Wrap lines" - button "Copy" - text: "src/tokens.css - --inline-code: #EBEEF2; + --inline-code: #F5F5F5; └ +1 -1 · 1 file" - button "Inspect" @@ -43,7 +45,8 @@ - button "Read docs/guide.md" [expanded]: - text: Read - button "docs/guide.md" -- text: docs/guide.md +- text: Code block docs/guide.md +- button "Wrap lines" - button "Copy" - text: "# Link style guide guide line 2 guide line 3 guide line 4" - button "Expand 4 more lines": … 4 more lines @@ -134,6 +137,7 @@ - paragraph: - img "Token preview" - text: css +- button "Do not wrap lines" [pressed] - button "Copy" - code: "--inline-code: #F5F5F5;" - paragraph: LINK_GALLERY_DONE diff --git a/apps/web/tests/expected/navigation-panes/code-card.expected.md b/apps/web/tests/expected/navigation-panes/code-card.expected.md new file mode 100644 index 0000000000..3e48942224 --- /dev/null +++ b/apps/web/tests/expected/navigation-panes/code-card.expected.md @@ -0,0 +1,4 @@ +- text: Code block +- button "Do not wrap lines" [pressed] +- button "Copy" +- code: echo WATERFALL diff --git a/apps/web/tests/navigation-panes.e2e.ts b/apps/web/tests/navigation-panes.e2e.ts index 4ab75b3ba0..f43b020a60 100644 --- a/apps/web/tests/navigation-panes.e2e.ts +++ b/apps/web/tests/navigation-panes.e2e.ts @@ -27,6 +27,7 @@ const TRAJECTORY_EXPECTED = join(SNAPSHOT_DIR, 'trajectory.expected.md') const TIMING_EXPECTED = join(SNAPSHOT_DIR, 'timing.expected.md') const SEARCH_EXPECTED = join(SNAPSHOT_DIR, 'search-results.expected.md') const TERMINAL_EXPECTED = join(SNAPSHOT_DIR, 'terminal-card.expected.md') +const CODE_CARD_EXPECTED = fileURLToPath(new URL('./expected/navigation-panes/code-card.expected.md', import.meta.url)) const MODE = webSnapshotMode() const SEED_ID = 'navigation-panes-web-e2e' const EXPORTED_LOG_FILE = `session.v${SESSION_FORMAT_VERSION}.jsonl` @@ -218,6 +219,28 @@ describe('web e2e: navigation & panes over a rich seeded session', () => { await expect.poll(() => page.getByRole('heading', { name: 'Navigation Summary' }).count(), { timeout: 15_000 }).toBe(1) }, 90_000) + it.skipIf(MODE === 'record')('renders recorded Markdown with icon tooltips and switchable wrapping', async () => { + onTestFailed(() => saveFailureShot(page, 'web-e2e-navigation-code-card')) + await ensureSeedOpen(page) + const selector = '.md-code-block:has-text("echo WATERFALL")' + const block = page.locator(selector) + await block.waitFor({ timeout: 15_000 }) + await compareOrRefreshGolden(CODE_CARD_EXPECTED, await captureStableAria(page, selector, scaffold.workspaceCwd), MODE) + const code = block.locator('pre') + const source = await code.textContent() + const copy = block.getByRole('button', { name: 'Copy', exact: true }) + await copy.hover() + await page.getByRole('tooltip', { name: 'Copy', exact: true }).waitFor() + const unwrap = block.getByRole('button', { name: 'Do not wrap lines', exact: true }) + await unwrap.hover() + await page.getByRole('tooltip', { name: 'Do not wrap lines', exact: true }).waitFor() + await unwrap.click() + await expect.poll(() => code.evaluate(element => getComputedStyle(element).whiteSpace)).toBe('pre') + await block.getByRole('button', { name: 'Wrap lines', exact: true }).click() + await expect.poll(() => code.evaluate(element => getComputedStyle(element).whiteSpace)).toBe('pre-wrap') + expect(await code.textContent()).toBe(source) + }, 60_000) + it.skipIf(MODE === 'record')('renders the trajectory ledger and opens its local record inspector', async () => { onTestFailed(() => saveFailureShot(page, 'web-e2e-navigation-trajectory')) await ensureSeedOpen(page) diff --git a/packages/client/locale/src/locales/en.ts b/packages/client/locale/src/locales/en.ts index d16b4913ae..d21b7d67f7 100644 --- a/packages/client/locale/src/locales/en.ts +++ b/packages/client/locale/src/locales/en.ts @@ -7,6 +7,9 @@ export const en = { 'close': 'Close', 'copy': 'Copy', 'copied': 'Copied', + 'codeBlock.title': 'Code block', + 'codeBlock.wrap': 'Wrap lines', + 'codeBlock.unwrap': 'Do not wrap lines', 'copy.failed': 'Copy failed', 'copy.value': 'Copy value', 'copy.json': 'Copy JSON', diff --git a/packages/client/locale/src/locales/zh.ts b/packages/client/locale/src/locales/zh.ts index 2e932cef41..d7b215babd 100644 --- a/packages/client/locale/src/locales/zh.ts +++ b/packages/client/locale/src/locales/zh.ts @@ -5,6 +5,9 @@ export const zh = { 'close': '关闭', 'copy': '复制', 'copied': '复制成功', + 'codeBlock.title': '代码块', + 'codeBlock.wrap': '自动换行', + 'codeBlock.unwrap': '取消自动换行', 'copy.failed': '复制失败', 'copy.value': '复制值', 'copy.json': '复制 JSON', diff --git a/packages/client/ui-agent-preset/src/client/PresetGuideDialog.tsx b/packages/client/ui-agent-preset/src/client/PresetGuideDialog.tsx index 6ecb534f02..8ca5270d52 100644 --- a/packages/client/ui-agent-preset/src/client/PresetGuideDialog.tsx +++ b/packages/client/ui-agent-preset/src/client/PresetGuideDialog.tsx @@ -1,6 +1,7 @@ /** Read-only help stays local to Settings and never changes the selected preset. */ import { useId, useLayoutEffect, useRef, useState } from 'react' import type { KeyboardEvent, ReactNode } from 'react' +import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots' import { Button, IconCloseOutlineRegular, IconListPenOutlineRegular, MarkdownText, Modal, SegmentedTabs, Tag } from '@deepseek-ai/dsh-client-ui-primitives' import type { AgentPresetSettingsKey } from './locales.ts' import css from './PresetGuideDialog.module.css' @@ -35,10 +36,10 @@ export function presetGuide(id: string, trust: string): PresetGuide | undefined /** Curated usage dictionaries contain only level-three example sections. */ function GuideUsage({ text, t }: { text: string - t: (key: AgentPresetSettingsKey) => string + t: TranslateNS<'settings.agentPreset'> }): ReactNode { const labels = { - code: { copyLabel: t('guideCopy'), copiedLabel: t('guideCopied') }, + code: { copyLabel: t('guideCopy'), copiedLabel: t('guideCopied'), toolbarLabels: { codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') } }, footnotes: t('guideFootnotes'), } return text.split(/(?=^### )/m).map((section) => { @@ -67,7 +68,7 @@ function GuideUsage({ text, t }: { export function PresetGuideDialog({ guide, initialPage, t, onClose }: { guide: PresetGuide initialPage: PresetGuidePage - t: (key: AgentPresetSettingsKey) => string + t: TranslateNS<'settings.agentPreset'> onClose: () => void }): ReactNode { const [page, setPage] = useState(initialPage) @@ -144,7 +145,7 @@ export function PresetGuideDialog({ guide, initialPage, t, onClose }: { diff --git a/packages/client/ui-chat/src/client/markdown-labels.ts b/packages/client/ui-chat/src/client/markdown-labels.ts index 6c30b99396..8818ea8f14 100644 --- a/packages/client/ui-chat/src/client/markdown-labels.ts +++ b/packages/client/ui-chat/src/client/markdown-labels.ts @@ -10,7 +10,7 @@ import type { ChatViewSlotProps } from './contract/slots.ts' */ export function markdownLabels(t: ChatViewSlotProps['t']): MarkdownLabels { return { - code: { copyLabel: t('copy'), copiedLabel: t('copied') }, + code: { copyLabel: t('copy'), copiedLabel: t('copied'), toolbarLabels: { codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') } }, footnotes: t('markdown.footnotes'), } } diff --git a/packages/client/ui-plan/src/client/PlanPreview.tsx b/packages/client/ui-plan/src/client/PlanPreview.tsx index b1e1689fe8..fdee35e7b9 100644 --- a/packages/client/ui-plan/src/client/PlanPreview.tsx +++ b/packages/client/ui-plan/src/client/PlanPreview.tsx @@ -22,7 +22,7 @@ export function PlanPreview({ useTabInfo, useResource, t }: PlanPreviewProps) { const params = tab.tab.navigation.params const plan = temporary ? (params !== undefined && 'planReview' in params ? params.planReview : undefined) : resource.value const labels = useMemo(() => ({ - code: { copyLabel: t('copy'), copiedLabel: t('copied') }, + code: { copyLabel: t('copy'), copiedLabel: t('copied'), toolbarLabels: { codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') } }, footnotes: t('markdown.footnotes'), }), [t]) if (plan === undefined) return ( diff --git a/packages/client/ui-primitives/README.i18n.yaml b/packages/client/ui-primitives/README.i18n.yaml index 38355c398f..c14c318535 100644 --- a/packages/client/ui-primitives/README.i18n.yaml +++ b/packages/client/ui-primitives/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-primitives/README.md -README.md: 7dafaf759ac329a4162b7138e58ed13ca5afd651 -README.zh.md: db38df0a298f567287e9cc99e623287465213c74 +README.md: 069aea78dd08175a9ebb1e590bb03e97dc08daab +README.zh.md: d235e19a9f9c829d4d5d6587fdd147fda9a2884e diff --git a/packages/client/ui-primitives/README.md b/packages/client/ui-primitives/README.md index 7dafaf759a..069aea78dd 100644 --- a/packages/client/ui-primitives/README.md +++ b/packages/client/ui-primitives/README.md @@ -87,6 +87,8 @@ The nearest `MarkdownDelegateProvider` supplies optional `openExternalLink` and `MarkdownText` defaults to `variant="body"`. Use `variant="compact"` for secondary content: its 13px text and 20px line height follow the content-size setting, all heading levels use the same size with weight 600, and paragraphs and lists use tighter spacing. Text, links, and code keep the tertiary color; dotted underlines distinguish links. Code headers scroll with their blocks. Tables and math stay enabled at the surrounding text size and scroll horizontally within the available width. Both variants share the parser and streaming cache. +`CodeBlock.toolbarLabels` enables the shared code-card header and spacing. `ReadBlock` and `DiffBlock` use the same header: secondary-colored language text, copy and wrap icons, and hover or keyboard-focus tooltips. Missing or unsupported languages use the owner’s localized code-block title; mixed-language diffs use that title too. Code cards share typography and content insets. Wrapping is local to each mounted card and never changes copied text; code fences start wrapped, while reads and diffs preserve source columns until wrapping is enabled. Compact Markdown omits this toolbar. With `toolbarLabels`, source previews can pass `wrap` to follow their owner’s preference and show only the language and copy icon; owner CSS retains the source layout. + `DiffBlock` compares the old and new content by line. It shows actual additions and deletions with up to three neutral context lines on each side, separates distant changes with `⋯`, and excludes shared context from both summary and footer totals. Search stops beyond 256 line additions/deletions per fragment; those fragments display and count the complete old and new contents as a coarse replacement, including shared lines. Copy includes the full displayed diff with its prefixes. A final newline is treated as a terminator; differences only in the presence of a final newline are not displayed. `JsonTree` clamps collapsed strings to `collapsedStringLines` (three by default). Expanded strings show raw text, retain sibling commas, and fit within the window and outer scrolling containers. Resize and ancestor-scroll events update that limit. Row copy feedback updates independently of JSON value rendering; pending clipboard writes cannot update a different row or an unmounted tree. diff --git a/packages/client/ui-primitives/README.zh.md b/packages/client/ui-primitives/README.zh.md index db38df0a29..d235e19a9f 100644 --- a/packages/client/ui-primitives/README.zh.md +++ b/packages/client/ui-primitives/README.zh.md @@ -87,6 +87,8 @@ kind: "package-library" `MarkdownText` 默认为 `variant="body"`。次级内容使用 `variant="compact"`:其 13px 字号与 20px 行高跟随内容字号设置,各级标题保持同一字号并使用 600 字重,段落与列表采用更紧凑的间距。正文、链接和代码均保持 tertiary 颜色,以点状下划线区分链接。代码标题栏随代码块滚动。表格和公式仍然启用,使用周围文字的字号,并在可用宽度内横向滚动。两个变体共享解析器与流式缓存。 +`CodeBlock.toolbarLabels` 启用共享代码卡片的标题栏和间距。`ReadBlock` 与 `DiffBlock` 使用相同的标题栏:secondary 色的语言名称、复制与换行图标,以及悬停或键盘聚焦时的提示。语言缺失或不受支持时显示调用方提供的本地化代码块标题;混合语言的 Diff 也使用该标题。代码卡片共用字体和内容内边距。换行设置仅属于当前挂载的卡片,不改变复制的文本;代码围栏默认换行,读取和差异卡片则在启用换行前保留源码列位置。紧凑 Markdown 不使用此工具栏。源码预览传入 `toolbarLabels` 后,可用 `wrap` 跟随所属视图的换行设置,仅显示语言和复制图标;所属视图的 CSS 保留源码布局。 + `DiffBlock` 按行比较新旧内容。它显示实际增删行及两侧最多三行中性上下文,用 `⋯` 分隔远距离改动,摘要和底部统计都不计入共享上下文。若一个片段需要超过 256 次行新增或删除,则停止精确比较;该片段按完整新旧内容显示和统计为粗粒度替换,包含共享行。复制包含完整显示 diff 及其前缀。末尾换行视为行终止符;仅末尾换行不同不会显示为改动。 `JsonTree` 把折叠字符串限制为 `collapsedStringLines` 行(默认三行)。展开后显示原始文本、保留同级逗号,并限制在窗口与外层滚动容器内;尺寸变化和祖先滚动事件会更新此限制。行复制反馈独立于 JSON 值渲染更新;尚未完成的剪贴板写入不会更新另一行或已卸载的树。 diff --git a/packages/client/ui-primitives/src/CodeCard.module.css b/packages/client/ui-primitives/src/CodeCard.module.css new file mode 100644 index 0000000000..fa3a6e579a --- /dev/null +++ b/packages/client/ui-primitives/src/CodeCard.module.css @@ -0,0 +1,81 @@ +.card { + position: relative; + margin: 16px 0; + color: var(--dsw-alias-label-primary); + background: var(--dsw-alias-markdown-code-block); + border-radius: 12px; + font: var(--dsw-font-markdown-code-block); +} + +.header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 10px 18px 4px; + background: var(--dsw-alias-markdown-code-block-banner); + border-top-left-radius: inherit; + border-top-right-radius: inherit; + color: var(--dsw-alias-label-secondary); + font: 11px/18px var(--dsw-font-family); +} + +.heading { + display: flex; + align-items: baseline; + gap: 12px; + min-width: 0; +} + +.language { + flex: none; + font-family: var(--ds-font-family-code); +} + +.title { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.actions { + display: flex; + align-items: center; + gap: 4px; + flex: none; +} + +.status { + margin-right: 8px; + color: var(--dsw-alias-label-tertiary); + white-space: nowrap; +} + +.action { + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + padding: 0; + border: 0; + border-radius: 6px; + color: var(--dsw-alias-label-secondary); + background: transparent; + cursor: pointer; +} + +.action:hover { + background: var(--dsw-alias-interactive-bg-hover); +} + +.action:focus-visible { + outline: 1px solid var(--dsw-alias-state-business-primary); + outline-offset: 2px; +} + +.body { + padding: 6px 18px 16px; + font: var(--dsw-font-markdown-code-block); + overflow-x: auto; +} diff --git a/packages/client/ui-primitives/src/CodeToolbar.tsx b/packages/client/ui-primitives/src/CodeToolbar.tsx new file mode 100644 index 0000000000..755753e894 --- /dev/null +++ b/packages/client/ui-primitives/src/CodeToolbar.tsx @@ -0,0 +1,62 @@ +/** Shared language, wrapping, and clipboard controls for code cards. */ +import { + IconCheckOutlineRegular, IconCopyOutlineRegular, IconNowrapFillRegular, IconWrapFillRegular, +} from './icons/index.tsx' +import { Tooltip } from './Tooltip.tsx' +import { supportsHighlighting } from './markdown/highlight.ts' +import css from './CodeCard.module.css' + +/** Localized language fallback and wrapping actions supplied by the card owner. */ +export interface CodeToolbarLabels { + /** Title for an absent or unsupported language. */ + codeLabel: string + /** Action that enables wrapping. */ + wrapLabel: string + /** Action that preserves source columns with horizontal scrolling. */ + unwrapLabel: string +} + +/** Display state and callbacks for a code card's toolbar. */ +interface CodeToolbarProps { + lang?: string | undefined + title?: string | undefined + status?: string | undefined + labels: CodeToolbarLabels + copyLabel: string + copiedLabel: string + copied: boolean + wrapped: boolean + onCopy?: (() => void) | undefined + onWrap?: (() => void) | undefined +} + +/** + * Render a language label and keyboard-accessible icon actions with tooltips. + * @param props - Localized labels, current state, and card-owned actions. + * @returns The shared code-card header. + */ +export function CodeToolbar({ lang, title, status, labels, copyLabel, copiedLabel, copied, wrapped, onCopy, onWrap }: CodeToolbarProps) { + const wrapLabel = wrapped ? labels.unwrapLabel : labels.wrapLabel + const clipboardLabel = copied ? copiedLabel : copyLabel + return ( +
+
+ {supportsHighlighting(lang) ? lang : labels.codeLabel} + {title !== undefined && {title}} +
+
+ {status !== undefined && {status}} + {onWrap !== undefined && + + } + {onCopy !== undefined && + + } +
+
+ ) +} diff --git a/packages/client/ui-primitives/src/DiffBlock.module.css b/packages/client/ui-primitives/src/DiffBlock.module.css index dd1d621aeb..649237832c 100644 --- a/packages/client/ui-primitives/src/DiffBlock.module.css +++ b/packages/client/ui-primitives/src/DiffBlock.module.css @@ -1,79 +1,52 @@ .block { - --dsl-diff-radius: 12px; - --dsl-diff-line-height: 22px; - - position: relative; - margin: 16px 0; - color: var(--dsw-alias-label-primary); - background: var(--dsw-alias-markdown-code-block); - border-radius: var(--dsl-diff-radius); -} - -/* The copy control floats in the top-right corner over the body, so the card - has no empty banner row above its first diff line (the TUI diff card has no - banner either — only the footer). The block is position: relative, so this - anchors to the card. */ -.copyButton { - position: absolute; - top: 8px; - right: 12px; - z-index: 1; - background-color: transparent; - border: none; - padding: 0; - margin: 0; - color: var(--dsw-alias-label-secondary); - cursor: pointer; - font: var(--dsw-font-xs-13); + overflow: hidden; } .body { - padding: 12px 14px; + padding: 6px 0 16px; font: var(--dsw-font-markdown-code-block); overflow-x: auto; - overflow-y: hidden; } -/* No wrapping, no word-break: a diff is read by its indentation. */ .line { - min-height: var(--dsl-diff-line-height); + box-sizing: border-box; + min-height: 1lh; + padding: 0 18px; white-space: pre; } -/* A file header: the path in the primary tone, set apart by weight. The copy - button floats over this first row's top-right corner, so reserve space at the - line's end for it — a long path scrolls under the button otherwise, and the - button's hit area would eat clicks on the path's tail. */ +.block[data-code-wrap='true'] .line { + white-space: pre-wrap; + overflow-wrap: anywhere; +} + .path { - color: var(--dsw-alias-label-primary); - font-weight: 600; - padding-right: 56px; + color: var(--dsw-alias-label-secondary); + font-weight: 500; } -/* A same-file second hunk's separator (a scattered edit), in the dim tone. */ .gap { color: var(--dsw-alias-label-tertiary); } -/* The diff's own meaning-carrying colors: removed on the error token, added on - the success token. A `- `/`+ ` prefix is drawn here so a copied line and the - shown line agree, and so the sign reads without relying on color alone. */ .del::before { content: '- '; - color: var(--dsw-alias-state-error-primary); } .del { color: var(--dsw-alias-state-error-primary); + background: var(--dsw-alias-code-diff-deleted); + box-shadow: inset 3px 0 0 var(--dsw-alias-state-error-primary); } .add::before { content: '+ '; - color: var(--dsw-alias-state-success-primary); } .add { color: var(--dsw-alias-state-success-primary); + background: var(--dsw-alias-code-diff-added); + box-shadow: inset 3px 0 0 var(--dsw-alias-state-success-primary); } .context { @@ -87,9 +60,9 @@ .expand { display: block; width: 100%; - padding: 0; + padding: 0 18px; border: none; - background-color: transparent; + background: transparent; color: var(--dsw-alias-label-tertiary); cursor: pointer; font: inherit; @@ -100,10 +73,8 @@ color: var(--dsw-alias-label-secondary); } -/* The change summary, dim under the body: `└ +A -R · N file(s)`, the same - footer the TUI transcript's diff card draws. */ .footer { - padding: 0 14px 12px; + padding: 0 18px 16px; font: var(--dsw-font-markdown-code-block); color: var(--dsw-alias-label-tertiary); } diff --git a/packages/client/ui-primitives/src/DiffBlock.tsx b/packages/client/ui-primitives/src/DiffBlock.tsx index 339c4a4af1..d9acc67fff 100644 --- a/packages/client/ui-primitives/src/DiffBlock.tsx +++ b/packages/client/ui-primitives/src/DiffBlock.tsx @@ -3,6 +3,9 @@ import clsx from 'clsx' import { structuredPatch } from 'diff' import { FoldToggle } from './FoldToggle.tsx' import { writeClipboard } from './clipboard.ts' +import { CodeToolbar, type CodeToolbarLabels } from './CodeToolbar.tsx' +import { languageForPath } from './code-highlighting.ts' +import cardCss from './CodeCard.module.css' import css from './DiffBlock.module.css' /** Output lines shown before the height cap collapses the middle. */ @@ -33,7 +36,7 @@ export interface DiffBlockProps { } /** Localized chrome for {@link DiffBlock}. */ -export interface DiffBlockLabels { +export interface DiffBlockLabels extends CodeToolbarLabels { copy: string copied: string collapseAria: string @@ -174,6 +177,9 @@ export function DiffBlock({ diffs, labels, maxLines = DEFAULT_DIFF_MAX_LINES, cl const { rows, added, removed, files } = useMemo(() => buildRows(diffs), [diffs]) const [expanded, setExpanded] = useState(false) const [copied, setCopied] = useState(false) + const [wrapped, setWrapped] = useState(false) + const firstLanguage = diffs[0] === undefined ? undefined : languageForPath(diffs[0].path) + const language = diffs.every(diff => languageForPath(diff.path) === firstLanguage) ? firstLanguage : undefined const onCopy = useCallback(() => { if (copied) return @@ -198,10 +204,9 @@ export function DiffBlock({ diffs, labels, maxLines = DEFAULT_DIFF_MAX_LINES, cl const tail = capped ? rows.slice(rows.length - tailLines) : [] return ( -
- +
+ { setWrapped(value => !value) }} />
{head.map((row, index) => (
{row.text}
diff --git a/packages/client/ui-primitives/src/ReadBlock.module.css b/packages/client/ui-primitives/src/ReadBlock.module.css index 2c4cf0370d..fbff018f50 100644 --- a/packages/client/ui-primitives/src/ReadBlock.module.css +++ b/packages/client/ui-primitives/src/ReadBlock.module.css @@ -1,105 +1,41 @@ .block { - --dsl-read-radius: 12px; - --dsl-read-line-height: 22px; - /* Fixed-width gutter column for the line numbers, so the content edge stays - put down the whole window regardless of how wide the numbers grow. */ - --dsl-read-gutter: 48px; - - position: relative; - margin: 16px 0; - color: var(--dsw-alias-label-primary); - background: var(--dsw-alias-markdown-code-block); - border-radius: var(--dsl-read-radius); + --dsl-read-gutter: 3ch; } -.banner { - display: flex; - justify-content: space-between; - align-items: center; - gap: 12px; - padding: 9px 14px; - background: var(--dsw-alias-markdown-code-block-banner); - border-top-left-radius: var(--dsl-read-radius); - border-top-right-radius: var(--dsl-read-radius); -} - -.label { - min-width: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: var(--dsw-alias-label-primary); - font-family: var(--ds-font-family-code); - font-size: 12px; - line-height: 18px; -} - -.action { - display: flex; - align-items: center; - flex-shrink: 0; - gap: 12px; -} - -.count { - color: var(--dsw-alias-label-tertiary); - font: var(--dsw-font-xs-13); -} - -.lang { - color: var(--dsw-alias-label-tertiary); - font-family: var(--ds-font-family-code); - font-size: 12px; - line-height: 18px; -} - -.copyButton { - background-color: transparent; - border: none; - padding: 0; - margin: 0; - color: var(--dsw-alias-label-secondary); - cursor: pointer; - font: var(--dsw-font-xs-13); -} - -.body { - padding: 12px 0; - font: var(--dsw-font-markdown-code-block); - overflow-x: auto; - overflow-y: hidden; -} - -/* One row per file line: a fixed gutter column, then the content. No wrapping — - a source line's leading whitespace is meaningful and scrolls sideways. */ .line { display: flex; - min-height: var(--dsl-read-line-height); - line-height: var(--dsl-read-line-height); + min-height: 1lh; white-space: pre; } .gutter { flex: none; width: var(--dsl-read-gutter); - padding-right: 14px; + margin-right: 12px; text-align: right; color: var(--dsw-alias-label-tertiary); - /* The gutter is chrome, not content: keep it out of a text selection so a - copy of the visible rows carries the source, not the line numbers. */ user-select: none; } .content { + min-width: 0; color: var(--dsw-alias-label-primary); } +.block[data-code-wrap='true'] .line { + white-space: pre-wrap; +} + +.block[data-code-wrap='true'] .content { + overflow-wrap: anywhere; +} + .expand { display: block; width: 100%; - padding: 0 0 0 var(--dsl-read-gutter); + padding: 0 0 0 calc(var(--dsl-read-gutter) + 12px); border: none; - background-color: transparent; + background: transparent; color: var(--dsw-alias-label-tertiary); cursor: pointer; font: inherit; diff --git a/packages/client/ui-primitives/src/ReadBlock.tsx b/packages/client/ui-primitives/src/ReadBlock.tsx index 6c1b2eaec9..e1493e3316 100644 --- a/packages/client/ui-primitives/src/ReadBlock.tsx +++ b/packages/client/ui-primitives/src/ReadBlock.tsx @@ -2,6 +2,8 @@ import { useCallback, useMemo, useRef, useState, useSyncExternalStore } from 're import clsx from 'clsx' import { FoldToggle } from './FoldToggle.tsx' import { writeClipboard } from './clipboard.ts' +import { CodeToolbar, type CodeToolbarLabels } from './CodeToolbar.tsx' +import cardCss from './CodeCard.module.css' import { grammarLoadCount, highlightLines, @@ -44,7 +46,7 @@ export interface ReadBlockProps { } /** Localized chrome for {@link ReadBlock}. */ -export interface ReadBlockLabels { +export interface ReadBlockLabels extends CodeToolbarLabels { window: (shown: number, total: number) => string copy: string copied: string @@ -88,6 +90,7 @@ export function ReadBlock({ ) const [expanded, setExpanded] = useState(false) const [copied, setCopied] = useState(false) + const [wrapped, setWrapped] = useState(false) const onCopy = useCallback(() => { if (copied) return @@ -120,23 +123,13 @@ export function ReadBlock({ [line, highlighted?.[index]]) return ( -
-
-
{label ?? ''}
-
- {windowed && ( - {labels.window(lines.length, totalLines)} - )} - {lang ?? ''} - {/* Empty files omit Copy to avoid replacing the clipboard with an empty string. */} - {lines.length > 0 && ( - - )} -
-
-
+
+ 0 ? onCopy : undefined} onWrap={() => { setWrapped(value => !value) }} + /> +
{rows(capped ? paired.slice(0, headLines) : paired)} {hidden > 0 && ( { if (copied) return @@ -178,21 +185,26 @@ export function CodeBlock({ ) return ( -
{/* These paired attributes are stable semantic hooks for owner styling and DOM tests. */} {showHeader &&
-
+ {toolbarLabels !== undefined ? { setWrapped(value => !value) } : undefined} + /> :
{lang ?? ''}
-
+
}
}
{body}
diff --git a/packages/client/ui-primitives/src/markdown/MarkdownText.tsx b/packages/client/ui-primitives/src/markdown/MarkdownText.tsx index ab2c0b380a..25b9a00172 100644 --- a/packages/client/ui-primitives/src/markdown/MarkdownText.tsx +++ b/packages/client/ui-primitives/src/markdown/MarkdownText.tsx @@ -172,7 +172,7 @@ class StreamingRenderer { * absolute HTTP(S) images render directly. */ export const MarkdownText = memo(function MarkdownText({ - text, streaming = false, labels, fileMentions, pathImages, variant = 'body', + text, streaming = false, labels: providedLabels, fileMentions, pathImages, variant = 'body', }: { text: string streaming?: boolean @@ -181,6 +181,9 @@ export const MarkdownText = memo(function MarkdownText({ pathImages?: MarkdownPathImages | undefined variant?: 'body' | 'compact' }) { + const labels = useMemo(() => variant === 'compact' + ? { ...providedLabels, code: { ...providedLabels.code, toolbarLabels: undefined } } + : providedLabels, [providedLabels, variant]) const streamRef = useRef(null) const streamLabelsRef = useRef(labels) const children = useMemo(() => { diff --git a/packages/client/ui-primitives/src/markdown/render.tsx b/packages/client/ui-primitives/src/markdown/render.tsx index c378dacd2a..cdf1b62ec9 100644 --- a/packages/client/ui-primitives/src/markdown/render.tsx +++ b/packages/client/ui-primitives/src/markdown/render.tsx @@ -36,6 +36,8 @@ export interface MarkdownCodeLabels { copyLabel: string /** Copy-button label during the post-copy confirmation window. */ copiedLabel: string + /** Shared card controls; omitted in compact and owner-styled source views. */ + toolbarLabels?: import('../CodeToolbar.tsx').CodeToolbarLabels | undefined } /** Localized chrome for a Markdown document. */ @@ -399,6 +401,7 @@ function renderCode(node: Md.Code, key: Key, context: MarkdownRenderContext): Re streaming={context.streaming} copyLabel={context.labels.code.copyLabel} copiedLabel={context.labels.code.copiedLabel} + toolbarLabels={context.labels.code.toolbarLabels} /> ) } diff --git a/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx b/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx new file mode 100644 index 0000000000..467aa5e833 --- /dev/null +++ b/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx @@ -0,0 +1,96 @@ +// @vitest-environment jsdom + +import { afterEach, describe, expect, it, vi } from 'vitest' +import { act, cleanup, fireEvent, render, screen } from '@testing-library/react' +import { CodeBlock } from '../src/markdown/CodeBlock.tsx' +import { MarkdownText } from '../src/markdown/MarkdownText.tsx' +import { ReadBlock } from '../src/ReadBlock.tsx' +import { DiffBlock } from '../src/DiffBlock.tsx' +import { diffBlockLabels, readBlockLabels } from './labels.client.ts' + +const toolbarLabels = { codeLabel: 'Code block', wrapLabel: 'Wrap lines', unwrapLabel: 'Do not wrap lines' } +const labels = { copyLabel: 'Copy', copiedLabel: 'Copied', toolbarLabels } + +afterEach(() => { + cleanup() + vi.clearAllTimers() + vi.useRealTimers() +}) + +describe('code-card controls', () => { + it.each([undefined, 'unregistered'])('labels the %s language with the localized code title', (lang) => { + render() + expect(screen.getByText('Code block')).toBeTruthy() + expect(screen.getByRole('button', { name: 'Copy' }).textContent).toBe('') + }) + + it('keeps a known grammar name while its highlighter is not yet visible', () => { + render() + expect(screen.getByText('typescript')).toBeTruthy() + expect(screen.queryByText('Code block')).toBeNull() + }) + + it.each(['code', 'read', 'diff'] as const)('toggles %s wrapping without changing source text', (kind) => { + const code = 'const longName = "a long value whose source must stay intact"' + const view = render(kind === 'code' + ? + : kind === 'read' + ? + : ) + const button = screen.getByRole('button', { name: kind === 'code' ? 'Do not wrap lines' : 'Wrap lines' }) + const wasWrapped = button.getAttribute('aria-pressed') === 'true' + fireEvent.click(button) + expect(button.getAttribute('aria-pressed')).toBe(String(!wasWrapped)) + expect(view.container.textContent).toContain(code) + fireEvent.click(button) + expect(button.getAttribute('aria-pressed')).toBe(String(wasWrapped)) + }) + + it('shows hover tooltips for copying and wrapping and updates the wrapping action', () => { + render() + const copy = screen.getByRole('button', { name: 'Copy' }) + fireEvent.mouseEnter(copy) + expect(screen.getByRole('tooltip').textContent).toBe('Copy') + fireEvent.mouseLeave(copy) + const wrap = screen.getByRole('button', { name: 'Do not wrap lines' }) + fireEvent.mouseEnter(wrap) + expect(screen.getByRole('tooltip').textContent).toBe('Do not wrap lines') + fireEvent.click(wrap) + expect(screen.queryByRole('tooltip')).toBeNull() + fireEvent.mouseEnter(wrap) + expect(screen.getByRole('tooltip').textContent).toBe('Wrap lines') + }) + + it('copies source through the icon and announces success', async () => { + vi.useFakeTimers() + const original = Object.getOwnPropertyDescriptor(navigator, 'clipboard') + const writeText = vi.fn<(text: string) => Promise>().mockResolvedValue() + Object.defineProperty(navigator, 'clipboard', { configurable: true, value: { writeText } }) + try { + render() + await act(async () => { fireEvent.click(screen.getByRole('button', { name: 'Copy' })) }) + expect(writeText).toHaveBeenCalledWith('const x = 1') + expect(screen.getByRole('button', { name: 'Copied' })).toBeTruthy() + } finally { + if (original === undefined) Reflect.deleteProperty(navigator, 'clipboard') + else Object.defineProperty(navigator, 'clipboard', original) + } + }) + + it('preserves compact Markdown and owner-styled source controls', () => { + const view = render() + expect(screen.queryByRole('button', { name: 'Wrap lines' })).toBeNull() + expect(screen.queryByRole('button', { name: 'Do not wrap lines' })).toBeNull() + expect(screen.getByRole('button', { name: 'Copy' }).textContent).toBe('Copy') + view.rerender() + expect(screen.getByRole('button', { name: 'Copy' }).textContent).toBe('Copy') + }) + + it('uses the fallback title for diffs containing different languages', () => { + render() + expect(screen.getByText('Code block')).toBeTruthy() + }) +}) diff --git a/packages/client/ui-primitives/tests/labels.client.ts b/packages/client/ui-primitives/tests/labels.client.ts index 7849d8e9c7..80b8cb7305 100644 --- a/packages/client/ui-primitives/tests/labels.client.ts +++ b/packages/client/ui-primitives/tests/labels.client.ts @@ -14,6 +14,7 @@ export const markdownLabels: MarkdownLabels = { } export const diffBlockLabels: DiffBlockLabels = { + codeLabel: '代码块', wrapLabel: '自动换行', unwrapLabel: '取消自动换行', copy: '复制', copied: '复制成功', collapseAria: '收起差异', expandAria: hidden => `展开其余 ${hidden} 行差异`, collapse: '收起', expand: hidden => `… 其余 ${hidden} 行`, @@ -21,6 +22,7 @@ export const diffBlockLabels: DiffBlockLabels = { } export const readBlockLabels: ReadBlockLabels = { + codeLabel: '代码块', wrapLabel: '自动换行', unwrapLabel: '取消自动换行', window: (shown, total) => `显示 ${shown} / ${total} 行`, copy: '复制', copied: '复制成功', collapseAria: '收起内容', expandAria: hidden => `展开其余 ${hidden} 行`, diff --git a/packages/client/ui-primitives/tests/read-block.client.spec.tsx b/packages/client/ui-primitives/tests/read-block.client.spec.tsx index 4ad939838d..1e3c7f95a7 100644 --- a/packages/client/ui-primitives/tests/read-block.client.spec.tsx +++ b/packages/client/ui-primitives/tests/read-block.client.spec.tsx @@ -134,10 +134,9 @@ describe('ReadBlock banner', () => { expect(view.queryByText(/显示/u)).toBeNull() }) - it('draws an empty label and empty language when neither is given', () => { - const view = render() - expect(view.container.querySelector('[class^="_label_"]')?.textContent).toBe('') - expect(view.container.querySelector('[class^="_lang_"]')?.textContent).toBe('') + it('uses the localized code title when no language is given', () => { + render() + expect(screen.getByText('代码块')).toBeTruthy() }) }) diff --git a/packages/client/ui-sidebar-documentpreview/README.i18n.yaml b/packages/client/ui-sidebar-documentpreview/README.i18n.yaml index d46092d14f..89c03993c4 100644 --- a/packages/client/ui-sidebar-documentpreview/README.i18n.yaml +++ b/packages/client/ui-sidebar-documentpreview/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-sidebar-documentpreview/README.md -README.md: 510e43fb723039b918672a58ec2bd26cf3b6023a -README.zh.md: 5bd9fba7c7f60f7f477afb82b0e88a5dd8b5ac30 +README.md: f5d664db612f67d71ce509e44981a4678845b50d +README.zh.md: 0361adcc79d13f06ba14cb3f6c6072e3f78dcf18 diff --git a/packages/client/ui-sidebar-documentpreview/README.md b/packages/client/ui-sidebar-documentpreview/README.md index 510e43fb72..f5d664db61 100644 --- a/packages/client/ui-sidebar-documentpreview/README.md +++ b/packages/client/ui-sidebar-documentpreview/README.md @@ -61,7 +61,7 @@ PNG, JPEG, GIF, WebP, BMP, ICO, and SVG render through Blob URLs in an `` s Shared copy comes from `sidebarDocumentPreview`; each builtin renderer owns its localized labels. PDF and converted Office previews use a graphite background in light mode and a matte-black background in dark mode, with subtle page shadows and original document colors. PDF and image previews share a floating control with **Fit width**, 25%, 50%, 100%, 150%, and 200% choices plus 25% incremental zoom across the 25%–400% fixed range. Fit width is the default and tracks pane resizing; 100% means the PDF's 96-DPI page size or the image's intrinsic CSS-pixel size. On fine pointers, the control starts hidden, slides up when the pointer enters the bottom 72 CSS pixels, and slides down after a 420 ms leave delay; hover, keyboard focus, an open menu, and an active gesture keep it visible, while devices without hover keep it visible continuously. Chromium maps a macOS trackpad pinch to the same live, pointer-anchored path as Ctrl+wheel; the control displays the gesture percentage, and the settled value survives body remounts until the tab closes. HTML previews do not expose zoom controls. -Initial reads, additional pages, and HTML/PDF/image preparation share the ongoing `StateDot` loader, which exposes its label to assistive technology and respects reduced-motion preferences; every wait before content exists centres the loader in the pane, so opening a file shows one indicator in one position until the body appears. Loaded pages stay visible while another page loads. The PDF body loads its package-local `client.pdf.js` chunk only when a PDF preview mounts; PDF.js, its Worker source, and embedded support data stay out of the startup `client.js`. PDF pages fill the pane's width edge to edge as one vertical sequence and render lazily near the viewport; an unrendered page holds its place as a quiet 3:4 placeholder block. PDF.js’s official TextLayerBuilder manages selection boundaries and normalized copying over an aligned text layer. Its companion styles keep blank line breaks unhighlighted; alignment accounts for PDF page units, page rotation, and viewport resizing, and page disposal cancels both layers. Image-only PDFs contain no selectable text. Code previews show source line numbers by default without including them in copied text; plain text uses the same font size and line height as code. Code sits on the pane's own background rather than the chat card's fill; its banner is adjacent to a full-height inner scrollport, so both scrollbars begin below the copy control. +Initial reads, additional pages, and HTML/PDF/image preparation share the ongoing `StateDot` loader, which exposes its label to assistive technology and respects reduced-motion preferences; every wait before content exists centres the loader in the pane, so opening a file shows one indicator in one position until the body appears. Loaded pages stay visible while another page loads. The PDF body loads its package-local `client.pdf.js` chunk only when a PDF preview mounts; PDF.js, its Worker source, and embedded support data stay out of the startup `client.js`. PDF pages fill the pane's width edge to edge as one vertical sequence and render lazily near the viewport; an unrendered page holds its place as a quiet 3:4 placeholder block. PDF.js’s official TextLayerBuilder manages selection boundaries and normalized copying over an aligned text layer. Its companion styles keep blank line breaks unhighlighted; alignment accounts for PDF page units, page rotation, and viewport resizing, and page disposal cancels both layers. Image-only PDFs contain no selectable text. Code previews show a secondary-colored language label and a copy icon with a tooltip; wrapping remains in the document toolbar. They show source line numbers by default without including them in copied text; plain text uses the same font size and line height as code. Code sits on the pane's own background rather than the chat card's fill; its banner is adjacent to a full-height inner scrollport, so both scrollbars begin below the copy control. ## Excel preview diff --git a/packages/client/ui-sidebar-documentpreview/README.zh.md b/packages/client/ui-sidebar-documentpreview/README.zh.md index 5bd9fba7c7..0361adcc79 100644 --- a/packages/client/ui-sidebar-documentpreview/README.zh.md +++ b/packages/client/ui-sidebar-documentpreview/README.zh.md @@ -61,7 +61,7 @@ PNG、JPEG、GIF、WebP、BMP、ICO 和 SVG 通过 Blob URL 在 `` 静态 共享文案来自 `sidebarDocumentPreview`;各内置渲染器拥有自己的本地化标签。PDF 与转换后的 Office 预览在浅色模式下使用石墨灰底色,在深色模式下使用哑黑底色,页面带有轻微阴影并保留文档原色。PDF 与图片预览共用浮动控件,提供**适应宽度**、25%、50%、100%、150% 和 200% 选项,并在 25%–400% 固定范围内按 25% 逐级缩放。适应宽度是默认模式并跟随面板尺寸;100% 表示 PDF 的 96 DPI 页面尺寸或图片的固有 CSS 像素尺寸。在精细指针设备上,控件初始隐藏;指针进入底部 72 个 CSS 像素时向上滑入,离开 420 ms 后向下退出;控件悬停、键盘焦点、菜单展开和手势进行期间保持显示,无 hover 的设备则始终显示。Chromium 将 macOS 触控板捏合映射到与 Ctrl+滚轮相同的实时指针锚定路径;控件同步显示手势比例,静止后的值在正文重新挂载后继续保留,直至 tab 关闭。HTML 预览不显示缩放控件。 -首次读取、追加页及 HTML/PDF/图片准备共用 ongoing `StateDot` loading,其标签暴露给辅助技术,并遵循减少动态效果偏好;内容出现前的每个等待都把 loading 居中在面板中,打开文件到正文出现始终是同一位置的一个标记。下一页加载期间保留已显示的内容。PDF 正文仅在 PDF 预览挂载时加载包内 `client.pdf.js` chunk;PDF.js、Worker 源码和内嵌支持数据不会进入启动 `client.js`。PDF 页面贴边占满面板宽度,组成一个纵向连续序列并在接近视口时惰性渲染;未渲染的页以安静的 3:4 占位块保持位置。PDF.js 官方 TextLayerBuilder 在与画面重合的文字层上管理选区边界和复制文本规范化。配套样式不高亮空白换行;对齐同时考虑 PDF 页面单位、页面旋转与视口宽度变化,页面释放时取消两层渲染。纯图片 PDF 不包含可选取的文字。代码预览默认显示源码行号,但复制文本不包含行号;纯文本与代码使用相同字号和行高。代码直接坐在分栏自身的背景上,而不是会话卡片的填充色;复制条与占满剩余高度的内部滚动区相邻,因此横纵滚动条都从复制控件下方开始。 +首次读取、追加页及 HTML/PDF/图片准备共用 ongoing `StateDot` loading,其标签暴露给辅助技术,并遵循减少动态效果偏好;内容出现前的每个等待都把 loading 居中在面板中,打开文件到正文出现始终是同一位置的一个标记。下一页加载期间保留已显示的内容。PDF 正文仅在 PDF 预览挂载时加载包内 `client.pdf.js` chunk;PDF.js、Worker 源码和内嵌支持数据不会进入启动 `client.js`。PDF 页面贴边占满面板宽度,组成一个纵向连续序列并在接近视口时惰性渲染;未渲染的页以安静的 3:4 占位块保持位置。PDF.js 官方 TextLayerBuilder 在与画面重合的文字层上管理选区边界和复制文本规范化。配套样式不高亮空白换行;对齐同时考虑 PDF 页面单位、页面旋转与视口宽度变化,页面释放时取消两层渲染。纯图片 PDF 不包含可选取的文字。代码预览使用 secondary 色的语言名称和带提示的复制图标;换行仍由文档工具栏控制。默认显示源码行号,但复制文本不包含行号;纯文本与代码使用相同字号和行高。代码直接坐在分栏自身的背景上,而不是会话卡片的填充色;复制条与占满剩余高度的内部滚动区相邻,因此横纵滚动条都从复制控件下方开始。 ## Excel 预览 diff --git a/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.module.css b/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.module.css index 9e284f9ce9..c430564b19 100644 --- a/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.module.css +++ b/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.module.css @@ -43,6 +43,7 @@ .renderer .code pre { box-sizing: border-box; + padding: 16px; min-width: 100%; overflow: visible; white-space: pre; diff --git a/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.tsx b/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.tsx index a643654d5b..898c0eb596 100644 --- a/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.tsx +++ b/packages/client/ui-sidebar-documentpreview/src/client/code/CodeBody.tsx @@ -24,9 +24,11 @@ export function CodeBody({ resourceAddress, content, wrap, scrollportRef, t }: C code={content.text} lang={language} streaming={!content.eof} + wrap={wrap} lineNumbers copyLabel={t('copy')} copiedLabel={t('copied')} + toolbarLabels={{ codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') }} />
) diff --git a/packages/client/ui-sidebar-documentpreview/src/client/markdown/MarkdownBody.tsx b/packages/client/ui-sidebar-documentpreview/src/client/markdown/MarkdownBody.tsx index f6164af6f3..27c672c60e 100644 --- a/packages/client/ui-sidebar-documentpreview/src/client/markdown/MarkdownBody.tsx +++ b/packages/client/ui-sidebar-documentpreview/src/client/markdown/MarkdownBody.tsx @@ -24,9 +24,12 @@ export function MarkdownBody({ content, resourceAddress, useResource, t }: Markd const copyLabel = t('code.copy') const copiedLabel = t('code.copied') const footnotes = t('footnotes') + const codeLabel = t('codeBlock.title') + const wrapLabel = t('codeBlock.wrap') + const unwrapLabel = t('codeBlock.unwrap') const labels = useMemo(() => ({ - code: { copyLabel, copiedLabel }, footnotes, - }), [copyLabel, copiedLabel, footnotes]) + code: { copyLabel, copiedLabel, toolbarLabels: { codeLabel, wrapLabel, unwrapLabel } }, footnotes, + }), [copyLabel, copiedLabel, footnotes, codeLabel, wrapLabel, unwrapLabel]) if (content.kind !== 'text') return null return (
diff --git a/packages/client/ui-sidebar-documentpreview/tests/code-body.client.spec.tsx b/packages/client/ui-sidebar-documentpreview/tests/code-body.client.spec.tsx index c2b3f0daae..ce8e6b548f 100644 --- a/packages/client/ui-sidebar-documentpreview/tests/code-body.client.spec.tsx +++ b/packages/client/ui-sidebar-documentpreview/tests/code-body.client.spec.tsx @@ -4,7 +4,7 @@ import { readFileSync } from 'node:fs' import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { afterEach, describe, expect, it } from 'vitest' -import { cleanup, render, waitFor } from '@testing-library/react' +import { cleanup, fireEvent, render, waitFor } from '@testing-library/react' import type { SessionId } from '@deepseek-ai/dsh-session/types' import { absoluteFileAddress, sessionFileAddress } from '@deepseek-ai/dsh-util-workspace-path' import { CodeBody } from '../src/client/code/CodeBody.tsx' @@ -84,7 +84,11 @@ describe('CodeBody', () => { expect(view.getByText(language, { exact: true })).toBeTruthy() expect(element(view.container, '.shiki').textContent).toBe('const answer = 42') expect(view.container.querySelector('[data-line-numbers]')).not.toBeNull() - expect(view.getByRole('button', { name: 'Copy' })).toBeTruthy() + const copy = view.getByRole('button', { name: 'Copy' }) + expect(copy.textContent).toBe('') + expect(view.getAllByRole('button')).toHaveLength(1) + fireEvent.mouseEnter(copy) + expect(view.getByRole('tooltip').textContent).toBe('Copy') }) it('carries multiline grammar state across pages and preserves completed lines through settlement', () => { @@ -155,6 +159,7 @@ describe('CodeBody', () => { const view = render() const pre = element(view.container, '.shiki') const block = element(view.container, '.md-code-block') + expect(block.getAttribute('data-code-wrap')).toBe('false') const scrollport = element(view.container, '[data-code-block-content]') expect(getComputedStyle(block).marginTop).toBe('0px') expect(getComputedStyle(block).position).toBe('static') @@ -165,6 +170,8 @@ describe('CodeBody', () => { expect(getComputedStyle(pre).overflow).toBe('visible') expect(getComputedStyle(pre).wordBreak).toBe('normal') view.rerender() + expect(block.getAttribute('data-code-wrap')).toBe('true') + expect(view.getAllByRole('button')).toHaveLength(1) expect(element(view.container, '.shiki')).toBe(pre) expect(element(view.container, '[data-code-block-content]')).toBe(scrollport) expect(getComputedStyle(pre).whiteSpace).toBe('pre-wrap') diff --git a/packages/client/ui-theme/src/styles/shiki.css b/packages/client/ui-theme/src/styles/shiki.css index c7a3c5d272..f969d1b264 100644 --- a/packages/client/ui-theme/src/styles/shiki.css +++ b/packages/client/ui-theme/src/styles/shiki.css @@ -4,6 +4,11 @@ cascade as every other token sheet. Background/foreground deliberately alias the markdown code-block tokens so highlighted and plain blocks agree. */ +body { + --dsw-alias-code-diff-added: color-mix(in srgb, var(--dsw-alias-state-success-primary) 8%, transparent); + --dsw-alias-code-diff-deleted: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent); +} + :root { --shiki-foreground: var(--dsw-alias-label-primary); --shiki-background: var(--dsw-alias-markdown-code-block); @@ -19,6 +24,8 @@ } body[data-ds-dark-theme] { + --dsw-alias-code-diff-added: color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent); + --dsw-alias-code-diff-deleted: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent); --shiki-token-constant: #4dabf7; --shiki-token-string: #69db7c; --shiki-token-comment: #adb5bd; diff --git a/packages/client/ui-tool/src/client/tool/components/ToolDetails.module.css b/packages/client/ui-tool/src/client/tool/components/ToolDetails.module.css index 824bd18fde..c813c772cc 100644 --- a/packages/client/ui-tool/src/client/tool/components/ToolDetails.module.css +++ b/packages/client/ui-tool/src/client/tool/components/ToolDetails.module.css @@ -232,15 +232,13 @@ overflow: auto; } +.root .item:has(> .code:only-child) { padding: 0; } +.root .item > .code:only-child { margin: 0; } + .root .group .item:has(> .code:only-child) { padding: 4px 0 0 20px; } -.root .group .item > .code:only-child { margin: 0; } - -.root .code [data-code-block-banner] { padding: 4px 10px; } -.root .code pre { padding: 6px 10px 8px; } - .path { flex: 1; min-width: 0; diff --git a/packages/client/ui-tool/src/client/tool/components/ToolDetails.tsx b/packages/client/ui-tool/src/client/tool/components/ToolDetails.tsx index 801be3c7a0..618d998ce3 100644 --- a/packages/client/ui-tool/src/client/tool/components/ToolDetails.tsx +++ b/packages/client/ui-tool/src/client/tool/components/ToolDetails.tsx @@ -4,7 +4,7 @@ import { } from '@deepseek-ai/dsh-client-ui-primitives' import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots' import type { OpenFileOptions } from '@deepseek-ai/dsh-client-ui-chat/client' -import { markdownLabels } from '../models/primitive-labels.ts' +import { codeToolbarLabels, markdownLabels } from '../models/primitive-labels.ts' import css from './ToolDetails.module.css' /** One recorded entity, receipt, or collapsible group of related values. */ @@ -89,6 +89,7 @@ function DetailItem({ item, t, onOpenFile }: { item: ToolDetailItem } & DetailCo {item.markdown !== undefined &&
} {item.code !== undefined && ( diff --git a/packages/client/ui-tool/src/client/tool/components/ToolRow.module.css b/packages/client/ui-tool/src/client/tool/components/ToolRow.module.css index 1478b06961..5e54eeb7e5 100644 --- a/packages/client/ui-tool/src/client/tool/components/ToolRow.module.css +++ b/packages/client/ui-tool/src/client/tool/components/ToolRow.module.css @@ -324,12 +324,6 @@ color: var(--dsw-alias-label-tertiary); } -/* In-row code renders at the smaller code size (12/18) via each primitive's - rebindable content-font seam; standalone markdown code blocks keep 13/22. */ -.codeBody { - --dsl-code-block-content-font: var(--dsw-font-markdown-code-block-small); -} - /* The terminal card scrolls its OUTPUT inside its own surface (same l1 hairline as the IN/OUT card): the banner stays pinned and the scrollbar never rides over it. 224px = the 260px card cap minus the ~36px banner. */ diff --git a/packages/client/ui-tool/src/client/tool/components/ToolRow.tsx b/packages/client/ui-tool/src/client/tool/components/ToolRow.tsx index 62b91189fc..76fc93d13d 100644 --- a/packages/client/ui-tool/src/client/tool/components/ToolRow.tsx +++ b/packages/client/ui-tool/src/client/tool/components/ToolRow.tsx @@ -16,7 +16,7 @@ import { localizeTerminalCardModel, terminalBlockLabels, type TerminalCardModel, } from '../models/terminal-card-model.ts' import { - diffBlockLabels, readBlockLabels, searchBlockLabels, webBlockLabels, + codeToolbarLabels, diffBlockLabels, readBlockLabels, searchBlockLabels, webBlockLabels, } from '../models/primitive-labels.ts' import type { AskQuestionCardModel } from '../models/ask-question-card-model.ts' import { @@ -289,7 +289,8 @@ export const ToolRow = memo(function ToolRow({ <> {variant === 'code' && bodyText !== null && (
- +
)} {(cardBody !== null || outputText !== null) && ( diff --git a/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts b/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts index 4b48cf4f8e..156a1f3c21 100644 --- a/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts +++ b/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts @@ -1,6 +1,7 @@ /** Localized copy adapters for Cordis-free UI primitives used by Tool cards. */ import type { + CodeBlockProps, DiffBlockLabels, MarkdownLabels, ReadBlockLabels, @@ -11,6 +12,15 @@ import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots' type T = TranslateNS<'conversation'> +/** + * Localize the shared code-card toolbar. + * @param t - Conversation locale seat. + * @returns Language fallback and wrapping actions. + */ +export function codeToolbarLabels(t: T): NonNullable { + return { codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') } +} + /** * Build localized Markdown chrome labels. * @param t - Conversation locale seat. @@ -18,7 +28,7 @@ type T = TranslateNS<'conversation'> */ export function markdownLabels(t: T): MarkdownLabels { return { - code: { copyLabel: t('copy'), copiedLabel: t('copied') }, + code: { copyLabel: t('copy'), copiedLabel: t('copied'), toolbarLabels: codeToolbarLabels(t) }, footnotes: t('markdown.footnotes'), } } @@ -30,6 +40,7 @@ export function markdownLabels(t: T): MarkdownLabels { */ export function diffBlockLabels(t: T): DiffBlockLabels { return { + ...codeToolbarLabels(t), copy: t('copy'), copied: t('copied'), collapseAria: t('diff.collapseAria'), @@ -47,6 +58,7 @@ export function diffBlockLabels(t: T): DiffBlockLabels { */ export function readBlockLabels(t: T): ReadBlockLabels { return { + ...codeToolbarLabels(t), window: (shown, total) => t('read.window', { shown, total }), copy: t('copy'), copied: t('copied'), diff --git a/packages/client/ui-tool/tests/diff-card.client.spec.tsx b/packages/client/ui-tool/tests/diff-card.client.spec.tsx index d7e37d6962..57233ea381 100644 --- a/packages/client/ui-tool/tests/diff-card.client.spec.tsx +++ b/packages/client/ui-tool/tests/diff-card.client.spec.tsx @@ -224,7 +224,7 @@ describe('FileMutationRow diff card', () => { toggleRow(view) expect(view.container.querySelector('[data-diff]')).not.toBeNull() expect(view.getByText('hello fixture')).toBeTruthy() - expect(view.getByText('复制')).toBeTruthy() + expect(view.getByRole('button', { name: '复制' })).toBeTruthy() }) it('the summary is a path link that opens the tool path through the host', () => { diff --git a/packages/client/ui-user-questions/src/client/QuestionComposer.tsx b/packages/client/ui-user-questions/src/client/QuestionComposer.tsx index 4b99d20991..4068deb520 100644 --- a/packages/client/ui-user-questions/src/client/QuestionComposer.tsx +++ b/packages/client/ui-user-questions/src/client/QuestionComposer.tsx @@ -131,7 +131,7 @@ type QuestionFlowProps = function QuestionFlow({ pending, t, useStore, actions }: QuestionFlowProps) { const questions = pending.questions const markdownLabels = useMemo(() => ({ - code: { copyLabel: t('copy'), copiedLabel: t('copied') }, + code: { copyLabel: t('copy'), copiedLabel: t('copied'), toolbarLabels: { codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') } }, footnotes: t('markdown.footnotes'), }), [t]) const initialProgress = useMemo(() => ({ diff --git a/packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx b/packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx index 0c0806a1ef..b36b62b599 100644 --- a/packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx +++ b/packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx @@ -134,6 +134,7 @@ export function CordisDefineRow({ aria-labelledby={`${sourcePanelId}-${activeSource}`} > Date: Mon, 21 Sep 2026 22:40:55 +0800 Subject: [PATCH 04/23] fix(web): cover code-card overflow and refresh browser expectations --- apps/web/tests/code-card-layout.e2e.ts | 160 ++++++++++++++++++ .../clickable-links-gallery/ui.expected.md | 2 +- .../expected/cordis-history/ui.expected.md | 1 + .../navigation-panes/code-card.expected.md | 2 +- apps/web/tests/navigation-panes.e2e.ts | 6 +- .../mid-stream.expected.md | 1 + .../tests/streaming-fence-highlight.e2e.ts | 2 +- apps/web/tsconfig.json | 1 + .../client/ui-primitives/README.i18n.yaml | 4 +- packages/client/ui-primitives/README.md | 2 +- packages/client/ui-primitives/README.zh.md | 2 +- .../client/ui-primitives/src/CodeToolbar.tsx | 2 +- .../ui-primitives/src/DiffBlock.module.css | 6 + .../ui-primitives/src/ReadBlock.module.css | 4 - .../client/ui-primitives/src/ReadBlock.tsx | 8 +- packages/client/ui-primitives/src/index.ts | 1 + .../src/markdown/CodeBlock.module.css | 4 - .../ui-primitives/src/markdown/render.tsx | 3 +- .../tests/code-card-controls.client.spec.tsx | 5 +- packages/client/ui-theme/README.i18n.yaml | 4 +- packages/client/ui-theme/README.md | 2 +- packages/client/ui-theme/README.zh.md | 2 +- .../ui-theme/src/styles/design-platform.css | 12 ++ packages/client/ui-theme/src/styles/shiki.css | 7 - .../client/tool/models/primitive-labels.ts | 4 +- snapshots/web/diff-bounded/ui.expected.md | 2 + snapshots/web/diff-context/ui.expected.md | 2 + .../ui-expanded.expected.md | 14 +- .../goal-multi-turn-actions/ui.expected.md | 10 +- snapshots/web/tool-details/ui.expected.md | 14 +- tsconfig.host.json | 1 + 31 files changed, 248 insertions(+), 42 deletions(-) create mode 100644 apps/web/tests/code-card-layout.e2e.ts diff --git a/apps/web/tests/code-card-layout.e2e.ts b/apps/web/tests/code-card-layout.e2e.ts new file mode 100644 index 0000000000..172d2d2ec9 --- /dev/null +++ b/apps/web/tests/code-card-layout.e2e.ts @@ -0,0 +1,160 @@ +/** Browser geometry for read offsets and horizontally scrolled diff fills. */ +import type { Browser, Page } from 'playwright' +import { chromium } from 'playwright' +import { afterAll, beforeAll, describe, expect, it, onTestFailed } from 'vitest' +import { ToolCallId, createAssistantMessage, createToolResultMessage, createUserMessage } from '@deepseek-ai/dsh-llm' +import { SESSION_FORMAT_VERSION, Session, SessionId } from '@deepseek-ai/dsh-session' +import type { JsonValue } from '@deepseek-ai/dsh-util-values' +import { launchWebScaffold, seedSession, watchConsole, type WebScaffold } from './scaffold.ts' +import { expandTurnProcesses, newEnglishPage, saveFailureShot } from './support.ts' + +const LONG_LINE = 'source_columns_'.repeat(80) +const OFFSETS = [999, 99_999] + +/** Seed durable tool results without invoking a model or allocating a large file. */ +function layoutFixture(): string { + const calls: { name: string; args: Record; result: string; meta: JsonValue }[] = OFFSETS.map((offset) => { + const path = `offset-${offset}.txt` + const lines = [{ number: offset, text: 'short' }, { number: offset + 1, text: LONG_LINE }] + return { + name: 'read', args: { file_path: path, offset }, + result: `${path}\nfile\n\n${lines.map(line => `${line.number}: ${line.text}`).join('\n')}\n`, + meta: { path, offset, lines, totalLines: offset + 2 }, + } + }) + const oldText = `old_${LONG_LINE}\nshort old` + const newText = `new_${LONG_LINE}\nshort new` + calls.push({ + name: 'edit', args: { file_path: 'long.txt', old_string: oldText, new_string: newText }, + result: 'Edited long.txt', meta: { diffs: [{ path: 'long.txt', oldText, newText }] }, + }) + const session = Session.create(SessionId('code-card-layout-source')) + session.append('turn/start', { turn: 1 }) + session.append('user/message', createUserMessage({ + content: [{ type: 'text', text: 'Inspect the source windows and edit the long lines.' }], source: { kind: 'user' }, + }), { surfaceOp: 'append' }) + session.append('step/start', { turn: 1, step: 1 }) + const namedCalls = calls.map((call, index) => ({ ...call, id: ToolCallId(`layout-${index}`), arguments: JSON.stringify(call.args) })) + session.append('assistant/message', { + stream: [], turn: 1, step: 1, + message: createAssistantMessage({ + content: namedCalls.map(call => ({ type: 'tool-call', id: call.id, name: call.name, arguments: call.arguments })), + source: { provider: 'fixture', model: 'fixture' }, + }), + }, { surfaceOp: 'append' }) + for (const call of namedCalls) { + const source = session.append('tool/call', { turn: 1, step: 1, callId: call.id, name: call.name, arguments: call.arguments }) + session.append('tool/result', { + turn: 1, step: 1, meta: call.meta, + message: createToolResultMessage({ callId: call.id, content: [{ type: 'text', text: call.result }], isError: false }), + }, { surfaceOp: 'append', sourceEventSeqs: [source.seq] }) + } + session.append('step/end', { turn: 1, step: 1 }) + session.append('step/start', { turn: 1, step: 2 }) + session.append('assistant/message', { + stream: [], turn: 1, step: 2, + message: createAssistantMessage({ + content: [{ type: 'text', text: 'CODE_LAYOUT_DONE' }], source: { provider: 'fixture', model: 'fixture' }, + }), + }, { surfaceOp: 'append' }) + session.append('step/end', { turn: 1, step: 2 }) + session.append('turn/end', { turn: 1, reason: { kind: 'completed' } }) + return [ + JSON.stringify({ type: 'session', version: SESSION_FORMAT_VERSION, id: '{{sessionId}}', createdAt: 0, cwd: '{{cwd}}', isSeeded: false, delegationDepth: 0 }), + ...session.snapshotEvents().map(event => JSON.stringify(event)), '', + ].join('\n') +} + +describe('web e2e: code-card layout', () => { + let scaffold: WebScaffold + let browser: Browser + let page: Page + let tripwire: ReturnType + + beforeAll(async () => { + scaffold = await launchWebScaffold({}) + await seedSession(scaffold, layoutFixture(), 'code-card-layout') + browser = await chromium.launch() + page = await newEnglishPage(browser) + tripwire = watchConsole(page) + await page.goto(scaffold.authenticatedUrl, { waitUntil: 'load' }) + await page.locator('[role="treeitem"]').first().click() + await page.locator('[role="treeitem"]').nth(1).click() + await page.getByText('CODE_LAYOUT_DONE', { exact: true }).waitFor() + await expandTurnProcesses(page) + for (const row of await page.locator('[data-variant="read"], [data-variant="edit"]').all()) { + await row.locator('[data-expandable]').click() + } + await page.locator('[data-read]').nth(1).waitFor() + await page.locator('[data-diff]').waitFor() + }) + + afterAll(async () => { + try { await browser?.close() } finally { await scaffold?.close() } + }) + + it.each(OFFSETS)('keeps offset %i line numbers clear of aligned source in both wrap modes', async (offset) => { + onTestFailed(() => saveFailureShot(page, `code-card-offset-${offset}`)) + const card = page.locator('[data-read]').filter({ hasText: `offset-${offset}.txt` }) + const wrap = card.getByRole('button', { name: 'Wrap lines', exact: true }) + const heights: number[] = [] + for (const wrapped of [false, true]) { + if (wrapped) await wrap.click() + expect(await wrap.getAttribute('aria-pressed')).toBe(String(wrapped)) + const rows = await card.locator('[class*="gutter"]').evaluateAll(gutters => gutters.map((gutter) => { + const content = gutter.nextElementSibling! + const range = document.createRange() + range.selectNodeContents(gutter) + const glyphs = range.getBoundingClientRect() + const slot = gutter.getBoundingClientRect() + const source = content.getBoundingClientRect() + return { + fits: glyphs.left >= slot.left - 1 && glyphs.right <= slot.right + 1, + gap: source.left - glyphs.right, left: source.left, height: source.height, + } + })) + expect(rows).toHaveLength(2) + expect(rows.every(row => row.fits && row.gap >= 11)).toBe(true) + expect(rows[0]!.left).toBe(rows[1]!.left) + heights.push(rows[1]!.height) + } + expect(heights[1]!).toBeGreaterThan(heights[0]!) + await wrap.click() + }) + + it.each([false, true])('fills long diff rows through horizontal scrolling with dark=%s', async (dark) => { + onTestFailed(() => saveFailureShot(page, `code-card-diff-${dark}`)) + await page.evaluate(value => document.body.toggleAttribute('data-ds-dark-theme', value), dark) + const card = page.locator('[data-diff]') + const body = card.locator(':scope > div').nth(1) + const wrap = card.getByRole('button', { name: 'Wrap lines', exact: true }) + for (const wrapped of [false, true]) { + if (wrapped) await wrap.click() + const result = await body.evaluate((element) => { + element.scrollLeft = element.scrollWidth + const viewport = element.getBoundingClientRect() + const rows = [...element.children].filter(row => ['+ ', '- '].includes(getComputedStyle(row, '::before').content.replaceAll('"', ''))) + return { + overflow: element.scrollWidth - element.clientWidth, + fills: rows.map(row => ({ + width: row.getBoundingClientRect().width, right: row.getBoundingClientRect().right, + fill: getComputedStyle(row).backgroundColor, marker: getComputedStyle(row).boxShadow, + })), + scrollWidth: element.scrollWidth, right: viewport.right, + } + }) + expect(result.fills).toHaveLength(4) + if (wrapped) expect(result.overflow).toBeLessThanOrEqual(1) + else expect(result.overflow).toBeGreaterThan(100) + for (const row of result.fills) { + expect(row.width).toBeGreaterThanOrEqual(result.scrollWidth - 1) + expect(row.right).toBeGreaterThanOrEqual(result.right - 1) + expect(row.fill).toMatch(dark ? /0\.12\)$/ : /0\.08\)$/) + expect(row.marker).toContain('inset') + } + } + await wrap.click() + expect(tripwire.pageErrors).toEqual([]) + expect(tripwire.warnings).toEqual([]) + }) +}) diff --git a/apps/web/tests/expected/clickable-links-gallery/ui.expected.md b/apps/web/tests/expected/clickable-links-gallery/ui.expected.md index feaeaa2468..dea186cddd 100644 --- a/apps/web/tests/expected/clickable-links-gallery/ui.expected.md +++ b/apps/web/tests/expected/clickable-links-gallery/ui.expected.md @@ -137,7 +137,7 @@ - paragraph: - img "Token preview" - text: css -- button "Do not wrap lines" [pressed] +- button "Wrap lines" [pressed] - button "Copy" - code: "--inline-code: #F5F5F5;" - paragraph: LINK_GALLERY_DONE diff --git a/apps/web/tests/expected/cordis-history/ui.expected.md b/apps/web/tests/expected/cordis-history/ui.expected.md index 1b37b0484f..d492597420 100644 --- a/apps/web/tests/expected/cordis-history/ui.expected.md +++ b/apps/web/tests/expected/cordis-history/ui.expected.md @@ -22,6 +22,7 @@ - tab "Host" [selected] - tabpanel "Host": - text: javascript + - button "Wrap lines" [pressed] - button "Copy" - code: "return { name: \"snapshot-noop\", apply(ctx) {} }" - text: Result Defined snap-1/pkg-1 (snapshot noop); it is not running yet. Use cordis_run to activate this Package. Run controls live in the Cordis panel above Settings diff --git a/apps/web/tests/expected/navigation-panes/code-card.expected.md b/apps/web/tests/expected/navigation-panes/code-card.expected.md index 3e48942224..20b377502a 100644 --- a/apps/web/tests/expected/navigation-panes/code-card.expected.md +++ b/apps/web/tests/expected/navigation-panes/code-card.expected.md @@ -1,4 +1,4 @@ - text: Code block -- button "Do not wrap lines" [pressed] +- button "Wrap lines" [pressed] - button "Copy" - code: echo WATERFALL diff --git a/apps/web/tests/navigation-panes.e2e.ts b/apps/web/tests/navigation-panes.e2e.ts index f43b020a60..2aaaaf5d0a 100644 --- a/apps/web/tests/navigation-panes.e2e.ts +++ b/apps/web/tests/navigation-panes.e2e.ts @@ -27,7 +27,8 @@ const TRAJECTORY_EXPECTED = join(SNAPSHOT_DIR, 'trajectory.expected.md') const TIMING_EXPECTED = join(SNAPSHOT_DIR, 'timing.expected.md') const SEARCH_EXPECTED = join(SNAPSHOT_DIR, 'search-results.expected.md') const TERMINAL_EXPECTED = join(SNAPSHOT_DIR, 'terminal-card.expected.md') -const CODE_CARD_EXPECTED = fileURLToPath(new URL('./expected/navigation-panes/code-card.expected.md', import.meta.url)) +const CODE_CARD_DIR = fileURLToPath(new URL('./expected/navigation-panes', import.meta.url)) +const CODE_CARD_EXPECTED = join(CODE_CARD_DIR, 'code-card.expected.md') const MODE = webSnapshotMode() const SEED_ID = 'navigation-panes-web-e2e' const EXPORTED_LOG_FILE = `session.v${SESSION_FORMAT_VERSION}.jsonl` @@ -231,7 +232,7 @@ describe('web e2e: navigation & panes over a rich seeded session', () => { const copy = block.getByRole('button', { name: 'Copy', exact: true }) await copy.hover() await page.getByRole('tooltip', { name: 'Copy', exact: true }).waitFor() - const unwrap = block.getByRole('button', { name: 'Do not wrap lines', exact: true }) + const unwrap = block.getByRole('button', { name: 'Wrap lines', exact: true }) await unwrap.hover() await page.getByRole('tooltip', { name: 'Do not wrap lines', exact: true }).waitFor() await unwrap.click() @@ -544,6 +545,7 @@ describe('web e2e: navigation & panes over a rich seeded session', () => { }, 60_000) it.skipIf(MODE === 'record')('keeps the recorded fixture inventory exact', async () => { + await assertFixtureInventory(CODE_CARD_DIR, ['code-card.expected.md']) await assertFixtureInventory(SNAPSHOT_DIR, [ 'session.v3.jsonl', 'search-results.expected.md', 'trajectory.expected.md', 'terminal-card.expected.md', 'timing.expected.md', diff --git a/apps/web/tests/snapshots/streaming-fence-highlight/mid-stream.expected.md b/apps/web/tests/snapshots/streaming-fence-highlight/mid-stream.expected.md index 19c2becc76..87f67da186 100644 --- a/apps/web/tests/snapshots/streaming-fence-highlight/mid-stream.expected.md +++ b/apps/web/tests/snapshots/streaming-fence-highlight/mid-stream.expected.md @@ -10,6 +10,7 @@ - button "Copy" - button "Context injection runtime-context" - text: ts +- button "Wrap lines" [pressed] - button "Copy" - code: "const first: number = 1 const second = \"two\" let tail" - status: Deep diving... diff --git a/apps/web/tests/streaming-fence-highlight.e2e.ts b/apps/web/tests/streaming-fence-highlight.e2e.ts index 6d65cdca0d..48017c982d 100644 --- a/apps/web/tests/streaming-fence-highlight.e2e.ts +++ b/apps/web/tests/streaming-fence-highlight.e2e.ts @@ -85,7 +85,7 @@ async function fenceTree(block: ReturnType): Promise const pre = element.querySelector('pre.shiki') if (pre === null) throw new Error('streaming fence did not render through the shiki arm') return { - language: element.querySelector('[class*="infostring"]')?.textContent ?? '', + language: element.querySelector('[data-code-block-banner] [class*="language"]')?.textContent ?? '', pre: { className: pre.className, style: pre.style.cssText, diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 9af71ce894..e7cc7396eb 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -24,6 +24,7 @@ "exclude": [ "tests/default-product-isolation.e2e.ts", "tests/diff-context.e2e.ts", + "tests/code-card-layout.e2e.ts", "tests/scaffold.ts", "tests/voice-input.e2e.ts", "tests/voice-setup.e2e.ts", diff --git a/packages/client/ui-primitives/README.i18n.yaml b/packages/client/ui-primitives/README.i18n.yaml index c14c318535..6f7cab38b8 100644 --- a/packages/client/ui-primitives/README.i18n.yaml +++ b/packages/client/ui-primitives/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-primitives/README.md -README.md: 069aea78dd08175a9ebb1e590bb03e97dc08daab -README.zh.md: d235e19a9f9c829d4d5d6587fdd147fda9a2884e +README.md: 09eab3840b7cfea7f84d12688787f6bd0344efc0 +README.zh.md: c5e46728f9ae8dfe33dc3e67812602ecc6d58af0 diff --git a/packages/client/ui-primitives/README.md b/packages/client/ui-primitives/README.md index 069aea78dd..09eab3840b 100644 --- a/packages/client/ui-primitives/README.md +++ b/packages/client/ui-primitives/README.md @@ -87,7 +87,7 @@ The nearest `MarkdownDelegateProvider` supplies optional `openExternalLink` and `MarkdownText` defaults to `variant="body"`. Use `variant="compact"` for secondary content: its 13px text and 20px line height follow the content-size setting, all heading levels use the same size with weight 600, and paragraphs and lists use tighter spacing. Text, links, and code keep the tertiary color; dotted underlines distinguish links. Code headers scroll with their blocks. Tables and math stay enabled at the surrounding text size and scroll horizontally within the available width. Both variants share the parser and streaming cache. -`CodeBlock.toolbarLabels` enables the shared code-card header and spacing. `ReadBlock` and `DiffBlock` use the same header: secondary-colored language text, copy and wrap icons, and hover or keyboard-focus tooltips. Missing or unsupported languages use the owner’s localized code-block title; mixed-language diffs use that title too. Code cards share typography and content insets. Wrapping is local to each mounted card and never changes copied text; code fences start wrapped, while reads and diffs preserve source columns until wrapping is enabled. Compact Markdown omits this toolbar. With `toolbarLabels`, source previews can pass `wrap` to follow their owner’s preference and show only the language and copy icon; owner CSS retains the source layout. +`CodeBlock.toolbarLabels` enables the shared code-card header and spacing. `ReadBlock` and `DiffBlock` use the same header: secondary-colored language text, copy and wrap icons, and hover or keyboard-focus tooltips. Missing or unsupported languages use the owner’s localized code-block title; mixed-language diffs use that title too. Code cards share typography and content insets. Read gutters fit the largest returned line number, and diff fills cover the full scrollable row. The wrap toggle keeps a fixed accessible name and exposes its state through `aria-pressed`; its tooltip describes the next action. Wrapping is local to each mounted card and never changes copied text; code fences start wrapped, while reads and diffs preserve source columns until wrapping is enabled. Compact Markdown omits this toolbar. With `toolbarLabels`, source previews can pass `wrap` to follow their owner’s preference and show only the language and copy icon; owner CSS retains the source layout. `DiffBlock` compares the old and new content by line. It shows actual additions and deletions with up to three neutral context lines on each side, separates distant changes with `⋯`, and excludes shared context from both summary and footer totals. Search stops beyond 256 line additions/deletions per fragment; those fragments display and count the complete old and new contents as a coarse replacement, including shared lines. Copy includes the full displayed diff with its prefixes. A final newline is treated as a terminator; differences only in the presence of a final newline are not displayed. diff --git a/packages/client/ui-primitives/README.zh.md b/packages/client/ui-primitives/README.zh.md index d235e19a9f..c5e46728f9 100644 --- a/packages/client/ui-primitives/README.zh.md +++ b/packages/client/ui-primitives/README.zh.md @@ -87,7 +87,7 @@ kind: "package-library" `MarkdownText` 默认为 `variant="body"`。次级内容使用 `variant="compact"`:其 13px 字号与 20px 行高跟随内容字号设置,各级标题保持同一字号并使用 600 字重,段落与列表采用更紧凑的间距。正文、链接和代码均保持 tertiary 颜色,以点状下划线区分链接。代码标题栏随代码块滚动。表格和公式仍然启用,使用周围文字的字号,并在可用宽度内横向滚动。两个变体共享解析器与流式缓存。 -`CodeBlock.toolbarLabels` 启用共享代码卡片的标题栏和间距。`ReadBlock` 与 `DiffBlock` 使用相同的标题栏:secondary 色的语言名称、复制与换行图标,以及悬停或键盘聚焦时的提示。语言缺失或不受支持时显示调用方提供的本地化代码块标题;混合语言的 Diff 也使用该标题。代码卡片共用字体和内容内边距。换行设置仅属于当前挂载的卡片,不改变复制的文本;代码围栏默认换行,读取和差异卡片则在启用换行前保留源码列位置。紧凑 Markdown 不使用此工具栏。源码预览传入 `toolbarLabels` 后,可用 `wrap` 跟随所属视图的换行设置,仅显示语言和复制图标;所属视图的 CSS 保留源码布局。 +`CodeBlock.toolbarLabels` 启用共享代码卡片的标题栏和间距。`ReadBlock` 与 `DiffBlock` 使用相同的标题栏:secondary 色的语言名称、复制与换行图标,以及悬停或键盘聚焦时的提示。语言缺失或不受支持时显示调用方提供的本地化代码块标题;混合语言的 Diff 也使用该标题。代码卡片共用字体和内容内边距。读取卡片的行号栏容纳返回窗口中的最大行号,Diff 底色覆盖完整可滚动行。换行按钮保留固定的无障碍名称,以 `aria-pressed` 表达状态;提示文本说明下一步操作。换行设置仅属于当前挂载的卡片,不改变复制的文本;代码围栏默认换行,读取和差异卡片则在启用换行前保留源码列位置。紧凑 Markdown 不使用此工具栏。源码预览传入 `toolbarLabels` 后,可用 `wrap` 跟随所属视图的换行设置,仅显示语言和复制图标;所属视图的 CSS 保留源码布局。 `DiffBlock` 按行比较新旧内容。它显示实际增删行及两侧最多三行中性上下文,用 `⋯` 分隔远距离改动,摘要和底部统计都不计入共享上下文。若一个片段需要超过 256 次行新增或删除,则停止精确比较;该片段按完整新旧内容显示和统计为粗粒度替换,包含共享行。复制包含完整显示 diff 及其前缀。末尾换行视为行终止符;仅末尾换行不同不会显示为改动。 diff --git a/packages/client/ui-primitives/src/CodeToolbar.tsx b/packages/client/ui-primitives/src/CodeToolbar.tsx index 755753e894..897d4cd1f7 100644 --- a/packages/client/ui-primitives/src/CodeToolbar.tsx +++ b/packages/client/ui-primitives/src/CodeToolbar.tsx @@ -47,7 +47,7 @@ export function CodeToolbar({ lang, title, status, labels, copyLabel, copiedLabe
{status !== undefined && {status}} {onWrap !== undefined && - } diff --git a/packages/client/ui-primitives/src/DiffBlock.module.css b/packages/client/ui-primitives/src/DiffBlock.module.css index 649237832c..8e78a0b708 100644 --- a/packages/client/ui-primitives/src/DiffBlock.module.css +++ b/packages/client/ui-primitives/src/DiffBlock.module.css @@ -3,6 +3,8 @@ } .body { + display: grid; + grid-template-columns: minmax(max-content, 1fr); padding: 6px 0 16px; font: var(--dsw-font-markdown-code-block); overflow-x: auto; @@ -15,6 +17,10 @@ white-space: pre; } +.block[data-code-wrap='true'] .body { + grid-template-columns: minmax(0, 1fr); +} + .block[data-code-wrap='true'] .line { white-space: pre-wrap; overflow-wrap: anywhere; diff --git a/packages/client/ui-primitives/src/ReadBlock.module.css b/packages/client/ui-primitives/src/ReadBlock.module.css index fbff018f50..601bb29f48 100644 --- a/packages/client/ui-primitives/src/ReadBlock.module.css +++ b/packages/client/ui-primitives/src/ReadBlock.module.css @@ -1,7 +1,3 @@ -.block { - --dsl-read-gutter: 3ch; -} - .line { display: flex; min-height: 1lh; diff --git a/packages/client/ui-primitives/src/ReadBlock.tsx b/packages/client/ui-primitives/src/ReadBlock.tsx index e1493e3316..0eaf96374f 100644 --- a/packages/client/ui-primitives/src/ReadBlock.tsx +++ b/packages/client/ui-primitives/src/ReadBlock.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo, useRef, useState, useSyncExternalStore } from 'react' +import { useCallback, useMemo, useRef, useState, useSyncExternalStore, type CSSProperties } from 'react' import clsx from 'clsx' import { FoldToggle } from './FoldToggle.tsx' import { writeClipboard } from './clipboard.ts' @@ -119,14 +119,18 @@ export function ReadBlock({
)) + const gutterDigits = lines.reduce((digits, line) => Math.max(digits, String(line.number).length), 3) + const gutterStyle = { '--dsl-read-gutter': `${gutterDigits}ch` } as CSSProperties + const paired = lines.map((line, index): readonly [ReadBlockLine, readonly HighlightSpan[] | undefined] => [line, highlighted?.[index]]) return ( -
+
0 ? onCopy : undefined} onWrap={() => { setWrapped(value => !value) }} />
diff --git a/packages/client/ui-primitives/src/index.ts b/packages/client/ui-primitives/src/index.ts index 12518ed198..b8ec370298 100644 --- a/packages/client/ui-primitives/src/index.ts +++ b/packages/client/ui-primitives/src/index.ts @@ -2,6 +2,7 @@ * Cordis-free React primitives styled only through `--dsw-*` tokens. */ +export type { CodeToolbarLabels } from './CodeToolbar.tsx' export { StateDot } from './StateDot.tsx' export type { StateDotState } from './StateDot.tsx' export { DisclosureRow } from './DisclosureRow.tsx' diff --git a/packages/client/ui-primitives/src/markdown/CodeBlock.module.css b/packages/client/ui-primitives/src/markdown/CodeBlock.module.css index 3c2cf7eebe..49bcfe33a7 100644 --- a/packages/client/ui-primitives/src/markdown/CodeBlock.module.css +++ b/packages/client/ui-primitives/src/markdown/CodeBlock.module.css @@ -104,10 +104,6 @@ color: var(--dsw-alias-label-primary); } -.card { - --dsl-code-block-content-font: var(--dsw-font-markdown-code-block); -} - .card :where(pre) { padding: 6px 18px 16px; word-break: normal; diff --git a/packages/client/ui-primitives/src/markdown/render.tsx b/packages/client/ui-primitives/src/markdown/render.tsx index cdf1b62ec9..a7bb8a2365 100644 --- a/packages/client/ui-primitives/src/markdown/render.tsx +++ b/packages/client/ui-primitives/src/markdown/render.tsx @@ -22,6 +22,7 @@ import clsx from 'clsx' import type * as Md from 'mdast' import type {} from 'mdast-util-math' import { normalizeUri } from 'micromark-util-sanitize-uri' +import type { CodeToolbarLabels } from '../CodeToolbar.tsx' import { CodeBlock } from './CodeBlock.tsx' import { parseFileLink } from './file-link.ts' import { renderTexToReact } from './katex.tsx' @@ -37,7 +38,7 @@ export interface MarkdownCodeLabels { /** Copy-button label during the post-copy confirmation window. */ copiedLabel: string /** Shared card controls; omitted in compact and owner-styled source views. */ - toolbarLabels?: import('../CodeToolbar.tsx').CodeToolbarLabels | undefined + toolbarLabels?: CodeToolbarLabels | undefined } /** Localized chrome for a Markdown document. */ diff --git a/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx b/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx index 467aa5e833..e4b152650f 100644 --- a/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx +++ b/packages/client/ui-primitives/tests/code-card-controls.client.spec.tsx @@ -37,10 +37,11 @@ describe('code-card controls', () => { : kind === 'read' ? : ) - const button = screen.getByRole('button', { name: kind === 'code' ? 'Do not wrap lines' : 'Wrap lines' }) + const button = screen.getByRole('button', { name: 'Wrap lines' }) const wasWrapped = button.getAttribute('aria-pressed') === 'true' fireEvent.click(button) expect(button.getAttribute('aria-pressed')).toBe(String(!wasWrapped)) + expect(button.getAttribute('aria-label')).toBe('Wrap lines') expect(view.container.textContent).toContain(code) fireEvent.click(button) expect(button.getAttribute('aria-pressed')).toBe(String(wasWrapped)) @@ -52,7 +53,7 @@ describe('code-card controls', () => { fireEvent.mouseEnter(copy) expect(screen.getByRole('tooltip').textContent).toBe('Copy') fireEvent.mouseLeave(copy) - const wrap = screen.getByRole('button', { name: 'Do not wrap lines' }) + const wrap = screen.getByRole('button', { name: 'Wrap lines' }) fireEvent.mouseEnter(wrap) expect(screen.getByRole('tooltip').textContent).toBe('Do not wrap lines') fireEvent.click(wrap) diff --git a/packages/client/ui-theme/README.i18n.yaml b/packages/client/ui-theme/README.i18n.yaml index e48e09fdac..819e09548b 100644 --- a/packages/client/ui-theme/README.i18n.yaml +++ b/packages/client/ui-theme/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-theme/README.md -README.md: 9526078829a882f18b08e5cc7ac8a9bb5ac7dfe4 -README.zh.md: e487d85191d1afdb4d1d013459f94c0742d93b1d +README.md: f1fb30221bb176648cc99f1b2a39984ff3b84871 +README.zh.md: c1e44eb5b9307dbb49e0868b0c68af3410b38928 diff --git a/packages/client/ui-theme/README.md b/packages/client/ui-theme/README.md index 9526078829..f1fb30221b 100644 --- a/packages/client/ui-theme/README.md +++ b/packages/client/ui-theme/README.md @@ -51,7 +51,7 @@ The service owns theme and font-size state and publishes snapshots. The ui-layou ### Stylesheets -`src/styles/` holds six sheets imported in order by ui-theme's dynamic client entry: `base.css`, `corner-shape.css`, `design-platform.css`, `scrollbar.css`, `gradient-shadow-text.css`, and `shiki.css`. The client bundle compiles and injects them as plugin-owned global styles, so unload and HMR remove them with ui-theme. `scrollbar.css` consumes the `--dsw-alias-scrollbar-*` tokens and must follow `design-platform.css`, which declares them. Status marks use their own semantic state tokens. +`src/styles/` holds six sheets imported in order by ui-theme's dynamic client entry: `base.css`, `corner-shape.css`, `design-platform.css`, `scrollbar.css`, `gradient-shadow-text.css`, and `shiki.css`. The client bundle compiles and injects them as plugin-owned global styles, so unload and HMR remove them with ui-theme. `scrollbar.css` consumes the `--dsw-alias-scrollbar-*` tokens and must follow `design-platform.css`, which declares them. Status marks use their own semantic state tokens. `design-platform.css` also owns the code-diff fill aliases and their static alpha palette entries; `shiki.css` owns syntax colors. `corner-shape.css` smooths every rounded corner: inside `@supports (corner-shape: superellipse(1.5))` it defines `--dsw-corner-shape` and applies it to all elements and their `::before`/`::after` through the universal selector, so engines without `corner-shape` keep circular corners. Full-round shapes — `border-radius: 50%` circles and pill radii — pair `corner-shape: round` with their radius in the owning component sheet because a superellipse deforms them; the corner-shape stylesheet spec enforces that pairing across every package stylesheet. diff --git a/packages/client/ui-theme/README.zh.md b/packages/client/ui-theme/README.zh.md index e487d85191..c1e44eb5b9 100644 --- a/packages/client/ui-theme/README.zh.md +++ b/packages/client/ui-theme/README.zh.md @@ -51,7 +51,7 @@ kind: "package-reference" ### 样式表 -`src/styles/` 下有六张样式表,由 ui-theme 的动态客户端 entry 依次导入:`base.css`、`corner-shape.css`、`design-platform.css`、`scrollbar.css`、`gradient-shadow-text.css` 与 `shiki.css`。客户端 bundle 将其编译并注入为插件持有的全局样式,因此卸载与 HMR(热模块替换)会随 ui-theme 一同移除。`scrollbar.css` 消费 `--dsw-alias-scrollbar-*` token,必须排在声明这些 token 的 `design-platform.css` 之后。状态标记使用各自的语义状态 token。 +`src/styles/` 下有六张样式表,由 ui-theme 的动态客户端 entry 依次导入:`base.css`、`corner-shape.css`、`design-platform.css`、`scrollbar.css`、`gradient-shadow-text.css` 与 `shiki.css`。客户端 bundle 将其编译并注入为插件持有的全局样式,因此卸载与 HMR(热模块替换)会随 ui-theme 一同移除。`scrollbar.css` 消费 `--dsw-alias-scrollbar-*` token,必须排在声明这些 token 的 `design-platform.css` 之后。状态标记使用各自的语义状态 token。`design-platform.css` 还负责代码差异底色的别名及其静态透明度色阶;`shiki.css` 负责语法颜色。 `corner-shape.css` 平滑所有圆角:在 `@supports (corner-shape: superellipse(1.5))` 内定义 `--dsw-corner-shape`,并通过通配选择器应用到所有元素及其 `::before`/`::after`,因此不支持 `corner-shape` 的引擎保持普通圆弧。正圆形状——`border-radius: 50%` 的圆与胶囊半径——因超级椭圆会使其变形,须在所属组件样式表中把 `corner-shape: round` 与半径声明配对;corner-shape 样式表 spec 跨全部包样式表强制这一配对。 diff --git a/packages/client/ui-theme/src/styles/design-platform.css b/packages/client/ui-theme/src/styles/design-platform.css index 4cc18f3be5..929b24be6c 100644 --- a/packages/client/ui-theme/src/styles/design-platform.css +++ b/packages/client/ui-theme/src/styles/design-platform.css @@ -34,6 +34,8 @@ body { --dsw-static-green-100: rgb(230, 250, 237); --dsw-static-green-400: rgb(78, 209, 126); --dsw-static-green-500: rgb(34, 197, 94); + --dsw-static-green-500-a08: rgb(34 197 94 / 8%); + --dsw-static-green-500-a12: rgb(34 197 94 / 12%); --dsw-static-green-900: rgb(35, 60, 44); --dsw-static-neutral-00: rgb(255, 255, 255); --dsw-static-neutral-1000: rgb(0, 0, 0); @@ -72,9 +74,11 @@ body { --dsw-static-neutral-bluish-950: rgb(21, 21, 23); --dsw-static-red-100: rgb(254, 226, 226); --dsw-static-red-400: rgb(242, 90, 90); + --dsw-static-red-400-a12: rgb(242 90 90 / 12%); --dsw-static-red-500: rgb(239, 68, 68); --dsw-static-red-50: rgb(254, 242, 242); --dsw-static-red-600: rgb(236, 19, 19); + --dsw-static-red-600-a08: rgb(236 19 19 / 8%); --dsw-static-red-900: rgb(87, 12, 12); } @@ -111,6 +115,8 @@ body[data-ds-dark-theme] { --dsw-static-green-100: rgb(230, 250, 237); --dsw-static-green-400: rgb(78, 209, 126); --dsw-static-green-500: rgb(34, 197, 94); + --dsw-static-green-500-a08: rgb(34 197 94 / 8%); + --dsw-static-green-500-a12: rgb(34 197 94 / 12%); --dsw-static-green-900: rgb(35, 60, 44); --dsw-static-neutral-00: rgb(255, 255, 255); --dsw-static-neutral-1000: rgb(0, 0, 0); @@ -149,9 +155,11 @@ body[data-ds-dark-theme] { --dsw-static-neutral-bluish-950: rgb(21, 21, 23); --dsw-static-red-100: rgb(254, 226, 226); --dsw-static-red-400: rgb(242, 90, 90); + --dsw-static-red-400-a12: rgb(242 90 90 / 12%); --dsw-static-red-500: rgb(239, 68, 68); --dsw-static-red-50: rgb(254, 242, 242); --dsw-static-red-600: rgb(236, 19, 19); + --dsw-static-red-600-a08: rgb(236 19 19 / 8%); --dsw-static-red-900: rgb(87, 12, 12); } @@ -226,6 +234,8 @@ body { --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-300); --dsw-alias-state-business-primary: var(--dsw-static-deepseek-500); --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-100); + --dsw-alias-code-diff-added: var(--dsw-static-green-500-a08); + --dsw-alias-code-diff-deleted: var(--dsw-static-red-600-a08); --dsw-alias-state-error-primary: var(--dsw-static-red-600); --dsw-alias-state-error-secondary: var(--dsw-static-red-400); --dsw-alias-state-idle-primary: var(--dsw-static-neutral-300); @@ -324,6 +334,8 @@ body[data-ds-dark-theme] { --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-550); --dsw-alias-state-business-primary: var(--dsw-static-deepseek-400); --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-800); + --dsw-alias-code-diff-added: var(--dsw-static-green-500-a12); + --dsw-alias-code-diff-deleted: var(--dsw-static-red-400-a12); --dsw-alias-state-error-primary: var(--dsw-static-red-400); --dsw-alias-state-error-secondary: var(--dsw-static-red-400); --dsw-alias-state-idle-primary: var(--dsw-static-neutral-600); diff --git a/packages/client/ui-theme/src/styles/shiki.css b/packages/client/ui-theme/src/styles/shiki.css index f969d1b264..c7a3c5d272 100644 --- a/packages/client/ui-theme/src/styles/shiki.css +++ b/packages/client/ui-theme/src/styles/shiki.css @@ -4,11 +4,6 @@ cascade as every other token sheet. Background/foreground deliberately alias the markdown code-block tokens so highlighted and plain blocks agree. */ -body { - --dsw-alias-code-diff-added: color-mix(in srgb, var(--dsw-alias-state-success-primary) 8%, transparent); - --dsw-alias-code-diff-deleted: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent); -} - :root { --shiki-foreground: var(--dsw-alias-label-primary); --shiki-background: var(--dsw-alias-markdown-code-block); @@ -24,8 +19,6 @@ body { } body[data-ds-dark-theme] { - --dsw-alias-code-diff-added: color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent); - --dsw-alias-code-diff-deleted: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent); --shiki-token-constant: #4dabf7; --shiki-token-string: #69db7c; --shiki-token-comment: #adb5bd; diff --git a/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts b/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts index 156a1f3c21..af1e13679b 100644 --- a/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts +++ b/packages/client/ui-tool/src/client/tool/models/primitive-labels.ts @@ -1,7 +1,7 @@ /** Localized copy adapters for Cordis-free UI primitives used by Tool cards. */ import type { - CodeBlockProps, + CodeToolbarLabels, DiffBlockLabels, MarkdownLabels, ReadBlockLabels, @@ -17,7 +17,7 @@ type T = TranslateNS<'conversation'> * @param t - Conversation locale seat. * @returns Language fallback and wrapping actions. */ -export function codeToolbarLabels(t: T): NonNullable { +export function codeToolbarLabels(t: T): CodeToolbarLabels { return { codeLabel: t('codeBlock.title'), wrapLabel: t('codeBlock.wrap'), unwrapLabel: t('codeBlock.unwrap') } } diff --git a/snapshots/web/diff-bounded/ui.expected.md b/snapshots/web/diff-bounded/ui.expected.md index 056f1e2156..1883ed4a1c 100644 --- a/snapshots/web/diff-bounded/ui.expected.md +++ b/snapshots/web/diff-bounded/ui.expected.md @@ -2,6 +2,8 @@ - text: Edit - button "large.txt" - text: +130 -130 +- text: Code block +- button "Wrap lines" - button "Copy" - text: large.txt - shared heading - old setting 0 - old setting 1 - old setting 2 - button "Expand 252 more diff lines": … 252 more lines diff --git a/snapshots/web/diff-context/ui.expected.md b/snapshots/web/diff-context/ui.expected.md index 628877899b..44e1810526 100644 --- a/snapshots/web/diff-context/ui.expected.md +++ b/snapshots/web/diff-context/ui.expected.md @@ -2,6 +2,8 @@ - text: Edit - button "config.txt" - text: +1 -1 +- text: Code block +- button "Wrap lines" - button "Copy" - text: config.txt - mode=DEBUG + mode=RELEASE level=info └ +1 -1 · 1 file - button "Inspect" diff --git a/snapshots/web/goal-multi-turn-actions/ui-expanded.expected.md b/snapshots/web/goal-multi-turn-actions/ui-expanded.expected.md index 7c9f533f8c..1492d81803 100644 --- a/snapshots/web/goal-multi-turn-actions/ui-expanded.expected.md +++ b/snapshots/web/goal-multi-turn-actions/ui-expanded.expected.md @@ -31,8 +31,12 @@ - text: — 随机选中的包: - code: packages/context/session-reference - text: 📦 +- text: Code block +- button "Wrap lines" [pressed] - button "Copy" - code: session-reference ├── README.md ├── package.json ├── src │ ├── index.ts │ └── uri.ts └── tests └── session-reference.spec.ts +- text: Code block +- button "Wrap lines" [pressed] - button "Copy" - code: "session-reference/ ├── README.md # 包说明文档 ├── package.json # 包元数据与依赖声明 ├── src/ │ ├── index.ts # 入口,导出公共 API │ └── uri.ts # 会话引用 URI 相关实现 └── tests/ └── session-reference.spec.ts # 单元测试" - paragraph: 这是一个很典型的轻量 TypeScript 包结构:入口 + 实现 + 测试。这一轮到此结束,等系统开启下一个 turn。 @@ -54,8 +58,12 @@ - text: — 随机选中的包: - code: packages/llm/token-meter - text: 📦 +- text: Code block +- button "Wrap lines" [pressed] - button "Copy" - code: token-meter ├── README.md ├── package.json ├── src │ └── index.ts └── tests └── token-meter.spec.ts +- text: Code block +- button "Wrap lines" [pressed] - button "Copy" - code: "token-meter/ ├── README.md # 包说明文档 ├── package.json # 包元数据与依赖声明 ├── src/ │ └── index.ts # 入口,导出公共 API(token 计量逻辑) └── tests/ └── token-meter.spec.ts # 单元测试" - paragraph: @@ -76,14 +84,16 @@ - strong: Turn 1 - text: — 随机选中 - code: packages/context/session-reference - - text: ,输出了文件结构: + - text: ,输出了文件结构: Code block + - button "Wrap lines" [pressed] - button "Copy" - code: session-reference/ ├── README.md ├── package.json ├── src/ │ ├── index.ts │ └── uri.ts └── tests/ └── session-reference.spec.ts - listitem: - strong: Turn 2 - text: — 随机选中 - code: packages/llm/token-meter - - text: ,输出了文件结构: + - text: ,输出了文件结构: Code block + - button "Wrap lines" [pressed] - button "Copy" - code: token-meter/ ├── README.md ├── package.json ├── src/ │ └── index.ts └── tests/ └── token-meter.spec.ts - paragraph: diff --git a/snapshots/web/goal-multi-turn-actions/ui.expected.md b/snapshots/web/goal-multi-turn-actions/ui.expected.md index 2d7d6a5d24..0251c8d0e7 100644 --- a/snapshots/web/goal-multi-turn-actions/ui.expected.md +++ b/snapshots/web/goal-multi-turn-actions/ui.expected.md @@ -17,8 +17,12 @@ - text: — 随机选中的包: - code: packages/context/session-reference - text: 📦 +- text: Code block +- button "Wrap lines" [pressed] - button "Copy" - code: session-reference ├── README.md ├── package.json ├── src │ ├── index.ts │ └── uri.ts └── tests └── session-reference.spec.ts +- text: Code block +- button "Wrap lines" [pressed] - button "Copy" - code: "session-reference/ ├── README.md # 包说明文档 ├── package.json # 包元数据与依赖声明 ├── src/ │ ├── index.ts # 入口,导出公共 API │ └── uri.ts # 会话引用 URI 相关实现 └── tests/ └── session-reference.spec.ts # 单元测试" - paragraph: 这是一个很典型的轻量 TypeScript 包结构:入口 + 实现 + 测试。这一轮到此结束,等系统开启下一个 turn。 @@ -36,14 +40,16 @@ - strong: Turn 1 - text: — 随机选中 - code: packages/context/session-reference - - text: ,输出了文件结构: + - text: ,输出了文件结构: Code block + - button "Wrap lines" [pressed] - button "Copy" - code: session-reference/ ├── README.md ├── package.json ├── src/ │ ├── index.ts │ └── uri.ts └── tests/ └── session-reference.spec.ts - listitem: - strong: Turn 2 - text: — 随机选中 - code: packages/llm/token-meter - - text: ,输出了文件结构: + - text: ,输出了文件结构: Code block + - button "Wrap lines" [pressed] - button "Copy" - code: token-meter/ ├── README.md ├── package.json ├── src/ │ └── index.ts └── tests/ └── token-meter.spec.ts - paragraph: diff --git a/snapshots/web/tool-details/ui.expected.md b/snapshots/web/tool-details/ui.expected.md index bd5a22851a..4a7cc83df9 100644 --- a/snapshots/web/tool-details/ui.expected.md +++ b/snapshots/web/tool-details/ui.expected.md @@ -129,6 +129,7 @@ - list: - listitem: - text: json + - button "Wrap lines" [pressed] - button "Copy" - code: "{ \"type\": \"object\", \"properties\": { \"service\": { \"type\": \"string\" } } }" - group: @@ -136,6 +137,7 @@ - list: - listitem: - text: json + - button "Wrap lines" [pressed] - button "Copy" - code: "{ \"type\": \"object\" }" - listitem: @@ -154,6 +156,7 @@ - list: - listitem: - text: json + - button "Wrap lines" [pressed] - button "Copy" - code: "{ \"type\": \"object\", \"properties\": { \"root\": { \"type\": \"string\" } } }" - group: @@ -161,6 +164,7 @@ - list: - listitem: - text: json + - button "Wrap lines" [pressed] - button "Copy" - code: "{ \"type\": \"object\" }" - button "Inspect" @@ -224,6 +228,7 @@ - list: - listitem: - text: javascript + - button "Wrap lines" [pressed] - button "Copy" - code: "return { reviewed: 12, needsDetails: [\"list_agents\", \"job_list\", \"terminal_list\"] };" - listitem: @@ -440,7 +445,8 @@ - text: Recorded result - list: - listitem: - - text: job-demo-build Running + - text: job-demo-build Running Code block + - button "Wrap lines" [pressed] - button "Copy" - code: Building client assets… ✓ 184 modules transformed. dist/index.js 92.4 kB - button "Inspect" @@ -458,6 +464,8 @@ - text: preview Started terminal-demo-1 - term: Type - definition: shell + - text: Code block + - button "Wrap lines" [pressed] - button "Copy" - code: /workspace/demo % - button "Inspect" @@ -465,7 +473,8 @@ - text: Recorded result - list: - listitem: - - text: terminal-demo-1 Lines 16–18 of 18 + - text: terminal-demo-1 Lines 16–18 of 18 Code block + - button "Wrap lines" [pressed] - button "Copy" - code: "VITE v7.0.0 ready in {{duration}} Local: http://localhost:5173/ Watching for file changes…" - button "Inspect" @@ -545,6 +554,7 @@ - listitem: - button "src/tool-details.ts:24:1" - text: typescript + - button "Wrap lines" [pressed] - button "Copy" - code: "function renderToolDetails(model: ToolDetailsModel): ReactNode" - paragraph: Render compact fields and list rows from a recorded tool result. diff --git a/tsconfig.host.json b/tsconfig.host.json index 140e9f5894..f359eaba9a 100644 --- a/tsconfig.host.json +++ b/tsconfig.host.json @@ -12,6 +12,7 @@ "apps/web/product-isolation.ts", "apps/web/tests/default-product-isolation.e2e.ts", "apps/web/tests/diff-context.e2e.ts", + "apps/web/tests/code-card-layout.e2e.ts", "apps/web/tests/scaffold.ts", "apps/web/tests/voice-input.e2e.ts", "apps/web/tests/voice-setup.e2e.ts", From adbb0e0dc4c0b8a5cf97b9be736490453631df03 Mon Sep 17 00:00:00 2001 From: lsdsjy <1356263+lsdsjy@users.noreply.github.com> Date: Tue, 22 Sep 2026 11:39:14 +0800 Subject: [PATCH 05/23] fix(client): update the contact form URL and drop its account UID prefill The Contact us entry now opens the current Feishu questionnaire, and the URL no longer carries the signed-in account UID: contactUs stops reading the account profile, contactUrl stops writing prefill_uid and hide_uid, and the remaining build and browser context fields keep their existing behavior. The url, package tests and the bilingual README and account-login note state the same current facts. --- ...026-09-14-deepseek-account-login.i18n.yaml | 4 ++-- .../2026-09-14-deepseek-account-login.md | 2 +- .../2026-09-14-deepseek-account-login.zh.md | 2 +- .../ui-settings-account/README.i18n.yaml | 4 ++-- packages/client/ui-settings-account/README.md | 2 +- .../client/ui-settings-account/README.zh.md | 2 +- .../src/client/contact-url.ts | 6 ++--- .../ui-settings-account/src/client/index.ts | 2 -- .../ui-settings-account/src/contact-config.ts | 2 +- .../tests/apply.client.spec.ts | 7 ++++-- .../tests/contact-url.client.spec.ts | 23 ++++++++++--------- 11 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml index a97feda0c1..3d6874cde0 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md -2026-09-14-deepseek-account-login.md: 65405b293cdea14a231d8d700589f9c3e7ef6db7 -2026-09-14-deepseek-account-login.zh.md: 0aca011826006a0fb8f0557464187b73da377238 +2026-09-14-deepseek-account-login.md: 9b323e03d6c60612092ac5834064770719d71560 +2026-09-14-deepseek-account-login.zh.md: ab50c4758de0567a96a59cfe8966e378d6b8de14 diff --git a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md index 65405b293c..9b323e03d6 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md +++ b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md @@ -36,7 +36,7 @@ The account plugin supplies choice, waiting, failure and timeout dialogs through Platform embedding transfers a grant from Host to Electron over private Node IPC and then once to the trusted Platform main frame through a sandboxed preload. Preload performs one synchronous IPC before page scripts execute; the main process only validates the sender and returns prepared memory. Platform reads the token synchronously thereafter without a readiness API. A failed initialization retains embedded mode and a throwing getter. Account UI projections remain credential-free. The Platform document can read this credential, so its script security is part of account protection; context isolation protects native capabilities, not a token intentionally returned to the document. Replacing or removing the grant destroys the document and its temporary session. -Support questionnaires receive only the Platform UID and available environment metadata through explicit prefill fields. Account tokens and masked contact details stay out of questionnaire URLs. The account provider projects the current-user UID for this purpose; the UI uses the latest account snapshot so sign-out cannot reuse a previous UID. +Support questionnaires receive only available environment metadata through explicit prefill fields. Account UIDs, tokens and masked contact details stay out of questionnaire URLs. Private proxy development can explicitly map authorization and completion URLs to platformOrigin with rewriteBrowserOrigin. Both pages retain their fixed paths and full query strings; allowing a remote origin without mapping it would send the browser outside the configured environment. Shipped configuration requires same-origin URLs. diff --git a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md index 0aca011826..ab50c4758d 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md +++ b/.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md @@ -36,7 +36,7 @@ API Key 与账号记录独立保存。账号 token 没有过期或刷新流程 Platform 内嵌通过私有 Node IPC 将授权从 Host 传给 Electron,再经沙箱 preload 一次性传给受信任的 Platform 主 frame。preload 在页面脚本执行前执行一次同步 IPC;主进程仅校验调用来源并返回已准备的内存数据。Platform 此后同步读取 token,无需就绪接口。初始化失败时保留内嵌模式,由 getter 抛错。账号 UI 投影仍不包含凭证。Platform 文档能够读取此凭证,因此其脚本安全也是账号保护的一部分;上下文隔离保护原生能力,不能隐藏有意返回给文档的 token。替换或移除授权会销毁文档及其临时会话。 -支持问卷仅通过显式预填字段接收 Platform UID 和已有的环境信息,URL 不包含账号 token 或脱敏联系方式。账号提供者为此投影 current-user 的 UID;UI 使用最新账号快照,避免退出登录后复用旧 UID。 +支持问卷仅通过显式预填字段接收已有的环境信息,URL 不包含账号 UID、token 或脱敏联系方式。 私有代理开发可通过 rewriteBrowserOrigin 显式将授权页和完成页映射到 platformOrigin。两者保留固定路径和完整查询字符串;仅放宽来源而不做映射会让浏览器离开配置的环境。发布配置要求浏览器地址同源。 diff --git a/packages/client/ui-settings-account/README.i18n.yaml b/packages/client/ui-settings-account/README.i18n.yaml index cb697284a7..67f94258b5 100644 --- a/packages/client/ui-settings-account/README.i18n.yaml +++ b/packages/client/ui-settings-account/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-settings-account/README.md -README.md: fdbbc4c391e7b4d6f6111de936b23f2fa101f3e3 -README.zh.md: 64acaa4b975c5b37213990bb866b268c9a689d1e +README.md: 30d41fb49262619fd34f1bcd1abfec49d1248438 +README.zh.md: 1916bb2bb37704e5ecc22589620add82ce74780f diff --git a/packages/client/ui-settings-account/README.md b/packages/client/ui-settings-account/README.md index fdbbc4c391..30d41fb492 100644 --- a/packages/client/ui-settings-account/README.md +++ b/packages/client/ui-settings-account/README.md @@ -28,7 +28,7 @@ Balances use Platform Web currency formatting: two decimal places and digit grou Desktop usage and top-up actions open an isolated native Platform view below a 48px return bar. Back destroys the view and preserves the Account settings page. Browser clients retain external links. Loading failures retain the return action and show a centered localized error with Retry. Retry reloads the same destination; renderer commands never receive the account token. -Contact us opens the Feishu questionnaire in the system browser on Desktop or a new browser tab on Web. It supplies the available Platform UID, build version, UI locale and physical screen resolution as prefill_* parameters, with hide_*=1 for every context field; tokens and contact details are excluded. Configure contactFormUrl on the ui-settings-account plugin to select another HTTPS form. contactSource defaults to empty until the questionnaire supports a Harness source option; OS and device fields remain unfilled, matching the Web implementation. +Contact us opens the Feishu questionnaire in the system browser on Desktop or a new browser tab on Web. It supplies the available build version, UI locale and physical screen resolution as prefill_* parameters, with hide_*=1 for every context field; the account UID, tokens and contact details are excluded. Configure contactFormUrl on the ui-settings-account plugin to select another HTTPS form. contactSource defaults to empty until the questionnaire supports a Harness source option; OS and device fields remain unfilled, matching the Web implementation. The sidebar account menu uses the shared Menu surface, backdrop blur, spacing, and row typography; feature styles only size its launcher. diff --git a/packages/client/ui-settings-account/README.zh.md b/packages/client/ui-settings-account/README.zh.md index 64acaa4b97..1916bb2bb3 100644 --- a/packages/client/ui-settings-account/README.zh.md +++ b/packages/client/ui-settings-account/README.zh.md @@ -28,7 +28,7 @@ kind: "package-reference" Desktop 的用量和充值操作在 48px 返回栏下方打开隔离的原生 Platform 视图。返回操作销毁视图并保留 Account 设置页。浏览器客户端继续使用外链。加载失败时保留返回操作,居中显示本地化错误提示和“重试”按钮。重试重新加载同一目标页面;渲染进程命令不接收账号 token。 -“联系我们”在 Desktop 的系统浏览器或 Web 的新标签页打开飞书问卷。链接通过 prefill_* 参数填写已有的 Platform UID、构建版本、界面语言和屏幕物理分辨率,并为所有上下文字段设置 hide_*=1;不传 token 或联系方式。可在 ui-settings-account 插件配置 contactFormUrl,切换到另一个 HTTPS 问卷。问卷支持 Harness 来源选项前,contactSource 默认为空;OS 和设备字段沿用 Web 实现,保持未填写。 +“联系我们”在 Desktop 的系统浏览器或 Web 的新标签页打开飞书问卷。链接通过 prefill_* 参数填写已有的构建版本、界面语言和屏幕物理分辨率,并为所有上下文字段设置 hide_*=1;不传账号 UID、token 或联系方式。可在 ui-settings-account 插件配置 contactFormUrl,切换到另一个 HTTPS 问卷。问卷支持 Harness 来源选项前,contactSource 默认为空;OS 和设备字段沿用 Web 实现,保持未填写。 侧边栏账号菜单使用公共 Menu 的表面、背景模糊、间距和菜单项排版;功能样式仅设置入口布局。 diff --git a/packages/client/ui-settings-account/src/client/contact-url.ts b/packages/client/ui-settings-account/src/client/contact-url.ts index f285260c64..5620f99d00 100644 --- a/packages/client/ui-settings-account/src/client/contact-url.ts +++ b/packages/client/ui-settings-account/src/client/contact-url.ts @@ -1,15 +1,13 @@ /** Feishu questionnaire context follows the Platform Web ticket fields. */ import type { Config } from '../contact-config.ts' -import type { AccountProfile } from '@deepseek-ai/dsh-deepseek-account/types' /** * Build an external questionnaire URL without authentication credentials. * @param config - questionnaire destination and supported source option. - * @param context - currently available account and browser environment. + * @param context - currently available build and browser environment. * @returns questionnaire URL with hidden, optionally prefilled context fields. */ export function contactUrl(config: Config, context: { - uid: AccountProfile['id'] version: string | undefined locale: string width: number @@ -21,7 +19,7 @@ export function contactUrl(config: Config, context: { const width = Math.round(context.width * ratio) const height = Math.round(context.height * ratio) const fields = { - uid: context.uid, source: config.contactSource, app_version: context.version, + source: config.contactSource, app_version: context.version, os_version: undefined, device_brand: undefined, device_model: undefined, app_locale: context.locale, screen_resolution: width > 0 && height > 0 ? `${width}x${height}` : undefined, } diff --git a/packages/client/ui-settings-account/src/client/index.ts b/packages/client/ui-settings-account/src/client/index.ts index 3226eab0e6..3cc65e4668 100644 --- a/packages/client/ui-settings-account/src/client/index.ts +++ b/packages/client/ui-settings-account/src/client/index.ts @@ -84,9 +84,7 @@ export function apply(ctx: Context): void { ...nativePlatform === undefined ? {} : { platform: nativePlatform }, refresh, contactUs() { - const profile = snapshot.details?.profile const url = contactUrl(config, { - uid: profile?.status === 'ready' ? profile.value.id : null, version: process.env.DSH_CLIENT_VERSION, locale: ctx.locale.getSnapshot().active === 'zh' ? 'zh-CN' : 'en', width: window.screen.width, height: window.screen.height, pixelRatio: window.devicePixelRatio, diff --git a/packages/client/ui-settings-account/src/contact-config.ts b/packages/client/ui-settings-account/src/contact-config.ts index 65d4bb06a0..ee9cc3f3b6 100644 --- a/packages/client/ui-settings-account/src/contact-config.ts +++ b/packages/client/ui-settings-account/src/contact-config.ts @@ -10,7 +10,7 @@ export interface Config { } /** Validate public questionnaire options. */ export const Config: z, Config> = z.object({ - contactFormUrl: z.string().pattern(/^https:\/\/[^/\s]+\//).default('https://trtgsjkv6r.feishu.cn/share/base/form/shrcnhcHE4A6lQaQ3v0raCXmBAg'), + contactFormUrl: z.string().pattern(/^https:\/\/[^/\s]+\//).default('https://trtgsjkv6r.feishu.cn/share/base/form/shrcnlCoGElW7MQznGy9r3YYXcg'), contactSource: z.string().default(''), }) /** Bootstrap key containing no account credentials. */ diff --git a/packages/client/ui-settings-account/tests/apply.client.spec.ts b/packages/client/ui-settings-account/tests/apply.client.spec.ts index e1bf83f08e..348924b9ca 100644 --- a/packages/client/ui-settings-account/tests/apply.client.spec.ts +++ b/packages/client/ui-settings-account/tests/apply.client.spec.ts @@ -38,7 +38,9 @@ it('shares account actions across seats, publishes dialog ownership, and opens c actions.showLogin(false) expect(listener).toHaveBeenCalledTimes(2) actions.contactUs() - expect(new URL(String(open.mock.calls.at(-1)![0])).searchParams.has('prefill_uid')).toBe(false) + const signedOut = new URL(String(open.mock.calls.at(-1)![0])) + expect(signedOut.searchParams.has('prefill_uid')).toBe(false) + expect(signedOut.searchParams.has('hide_uid')).toBe(false) c.mock.remote.account.getProfile.mockResolvedValue(ok(profile)) c.mock.streams.push('account/watch', stored) await vi.waitFor(() => { expect(actions.hooks.account.getSnapshot().details?.profile).toEqual(profile) }) @@ -48,7 +50,8 @@ it('shares account actions across seats, publishes dialog ownership, and opens c vi.spyOn(c.ctx.locale, 'getSnapshot').mockReturnValue({ ...c.ctx.locale.getSnapshot(), active: 'zh' }) actions.contactUs() const support = new URL(String(open.mock.calls.at(-1)![0])) - expect(support.searchParams.get('prefill_uid')).toBe('account-user') + expect(support.searchParams.has('prefill_uid')).toBe(false) + expect(support.searchParams.has('hide_uid')).toBe(false) expect(support.searchParams.get('prefill_app_locale')).toBe('zh-CN') await c.unload(SELF) expect(c.ctx.slots.entries('settings.launcher')).toHaveLength(0) diff --git a/packages/client/ui-settings-account/tests/contact-url.client.spec.ts b/packages/client/ui-settings-account/tests/contact-url.client.spec.ts index 57d049e559..943c75cfe8 100644 --- a/packages/client/ui-settings-account/tests/contact-url.client.spec.ts +++ b/packages/client/ui-settings-account/tests/contact-url.client.spec.ts @@ -1,38 +1,39 @@ import { expect, it } from 'vitest' -import type { AccountUserId } from '@deepseek-ai/dsh-deepseek-account/types' import { Config } from '../src/contact-config.ts' import { contactUrl } from '../src/client/contact-url.ts' it('prefills available support context and hides all context fields', () => { const config = Config({ contactSource: 'app_harness' }) const url = new URL(contactUrl(config, { - uid: 'user&123' as AccountUserId, version: '1.2.3', locale: 'zh-CN', - width: 1512, height: 982, pixelRatio: 2, + version: '1.2.3', locale: 'zh-CN', width: 1512, height: 982, pixelRatio: 2, })) expect(url.origin).toBe('https://trtgsjkv6r.feishu.cn') expect(Object.fromEntries(url.searchParams)).toEqual({ - hide_uid: '1', prefill_uid: 'user&123', hide_source: '1', prefill_source: 'app_harness', - hide_app_version: '1', prefill_app_version: '1.2.3', hide_os_version: '1', + hide_source: '1', prefill_source: 'app_harness', hide_app_version: '1', prefill_app_version: '1.2.3', + hide_os_version: '1', hide_device_brand: '1', hide_device_model: '1', hide_app_locale: '1', prefill_app_locale: 'zh-CN', hide_screen_resolution: '1', prefill_screen_resolution: '3024x1964', }) + expect(url.searchParams.has('prefill_uid')).toBe(false) + expect(url.searchParams.has('hide_uid')).toBe(false) }) -it('opens a configured form without stale account context when signed out', () => { - const url = new URL(contactUrl(Config({ contactFormUrl: 'https://example.test/form/?prefill_uid=old&prefill_source=old' }), { - uid: null, version: undefined, locale: 'en', width: 0, height: 0, pixelRatio: 1, +it('opens a configured form without stale context when unavailable', () => { + const url = new URL(contactUrl(Config({ contactFormUrl: 'https://example.test/form/?prefill_app_version=old&prefill_source=old' }), { + version: undefined, locale: 'en', width: 0, height: 0, pixelRatio: 1, })) expect(url.origin).toBe('https://example.test') - expect(url.searchParams.has('prefill_uid')).toBe(false) + expect(url.searchParams.has('prefill_app_version')).toBe(false) expect(url.searchParams.has('prefill_source')).toBe(false) expect(url.searchParams.has('prefill_screen_resolution')).toBe(false) - expect(url.searchParams.get('hide_uid')).toBe('1') + expect(url.searchParams.get('hide_source')).toBe('1') + expect(url.searchParams.get('hide_app_version')).toBe('1') expect(() => Config({ contactFormUrl: 'javascript:alert(1)' })).toThrow() }) it.each([NaN, Infinity])('uses CSS pixel dimensions when device pixel ratio is %s', (pixelRatio) => { const url = new URL(contactUrl(Config({}), { - uid: null, version: undefined, locale: 'en', width: 800, height: 600, pixelRatio, + version: undefined, locale: 'en', width: 800, height: 600, pixelRatio, })) expect(url.searchParams.get('prefill_screen_resolution')).toBe('800x600') }) From 817623750aac9578b4e8cfa381f3d7eb5004f8f7 Mon Sep 17 00:00:00 2001 From: lsdsjy <1356263+lsdsjy@users.noreply.github.com> Date: Tue, 22 Sep 2026 12:02:54 +0800 Subject: [PATCH 06/23] fix(desktop): match Platform login theme Opened and copied authorization links carried no palette, so the Platform login page rendered its own stored preference. Append the effective Desktop palette as theme=light or theme=dark, resolving system through the theme source the preload publishes. The theme source now reaches nativeTheme on Windows as well: the preload drops its macOS-only guard, since shouldUseDarkColors is read for every platform, and gates the DOMContentLoaded listener with once. --- apps/desktop/README.i18n.yaml | 4 +- apps/desktop/README.md | 2 +- apps/desktop/README.zh.md | 2 +- apps/desktop/src/main.ts | 18 +++++- apps/desktop/src/preload-theme.ts | 15 +++-- apps/desktop/tests/main-startup.spec.ts | 20 ++++++- .../tests/preload-theme.client.spec.ts | 58 +++++++++++++++++++ apps/desktop/tests/welcome-startup.spec.ts | 11 +++- 8 files changed, 112 insertions(+), 18 deletions(-) create mode 100644 apps/desktop/tests/preload-theme.client.spec.ts diff --git a/apps/desktop/README.i18n.yaml b/apps/desktop/README.i18n.yaml index d74baaa4b8..6e44ed8a7c 100644 --- a/apps/desktop/README.i18n.yaml +++ b/apps/desktop/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write apps/desktop/README.md -README.md: 711e65fb5feaea601800218801d138a0df9b3f97 -README.zh.md: 183d195a9af485c9ffe5a3e5bf65e3a459582b93 +README.md: 59f18ea269f303e267d5e9597d8748e2a8fed134 +README.zh.md: eb1594e032fea2da38f778e6b2217bd52587af91 diff --git a/apps/desktop/README.md b/apps/desktop/README.md index 711e65fb5f..59f18ea269 100644 --- a/apps/desktop/README.md +++ b/apps/desktop/README.md @@ -405,7 +405,7 @@ An unpackaged Electron process uses `.desktop-build/development/project` under i - Dependency lifecycle scripts follow pnpm’s build permissions; Desktop provides no separate approval dialog. - The desktop shell shares sessions, settings, credentials, workspaces, and storage under `$DSH_HOME` with CLI dsh, while executable packages, plugin activation, and lockfiles remain separate. -Sign in opens the configured platform page in the system browser. The Host owns PKCE and a temporary loopback callback, saves the credential before entering the workspace, and redirects the browser to the platform completion page. Cancel withdraws the local attempt even if the platform page later approves it. Settings offers Account sign-out; without a separate API key, sign-out returns to the welcome window. Packaged applications register dsh://open to show the window without passing credentials. On macOS, the development launcher prepares an ad-hoc-signed `Harness Dev.app` under `.desktop-build/development`, declares `dsh` in its Info.plist, and registers it with Launch Services. It loads the current workspace and records the selected development home, browser-data path, and debug settings for cold starts. Starting this bundle makes it the default `dsh://` handler; starting the packaged application registers the packaged handler again. The generated bundle does not contain account tokens and requires the workspace and prepared runtime to remain available. +Sign in opens the configured platform page in the system browser. The Host owns PKCE and a temporary loopback callback, saves the credential before entering the workspace, and redirects the browser to the platform completion page. Opened and copied authorization links carry the effective Desktop theme as `theme=light` or `theme=dark`; `system` resolves at the time of the action. Cancel withdraws the local attempt even if the platform page later approves it. Settings offers Account sign-out; without a separate API key, sign-out returns to the welcome window. Packaged applications register dsh://open to show the window without passing credentials. On macOS, the development launcher prepares an ad-hoc-signed `Harness Dev.app` under `.desktop-build/development`, declares `dsh` in its Info.plist, and registers it with Launch Services. It loads the current workspace and records the selected development home, browser-data path, and debug settings for cold starts. Starting this bundle makes it the default `dsh://` handler; starting the packaged application registers the packaged handler again. The generated bundle does not contain account tokens and requires the workspace and prepared runtime to remain available. An expired login displays a timeout heading with explicit Sign in again and Add API Key actions. Opening the API-key form dismisses the authorization view; late account-state notifications do not replace an in-progress key entry. diff --git a/apps/desktop/README.zh.md b/apps/desktop/README.zh.md index 183d195a9a..eb1594e032 100644 --- a/apps/desktop/README.zh.md +++ b/apps/desktop/README.zh.md @@ -405,7 +405,7 @@ node apps/desktop/node_modules/pnpm/bin/pnpm.mjs --dir apps/desktop run test:upd - 依赖的生命周期脚本遵循 pnpm 的构建权限;Desktop 不提供单独的审批对话框。 - 桌面壳与 CLI dsh 共享 `$DSH_HOME` 下的会话、设置、凭据、工作区和存储,但可执行包、插件激活和锁文件彼此隔离。 -登录会在系统浏览器中打开配置的平台页面。Host 负责 PKCE 和临时本机回调,在进入工作区前保存凭证,再将浏览器跳转到平台完成页。即使平台页面随后批准,取消仍会撤销本地尝试。设置中的账号页面提供退出;没有独立 API Key 时,退出后返回欢迎窗。打包应用注册 dsh://open,只显示窗口而不传递凭证。macOS 开发启动器在 `.desktop-build/development` 下准备经临时签名的 `Harness Dev.app`,在 Info.plist 中声明 `dsh` 并注册到 Launch Services。它加载当前工作区,并记录选定的开发 home、浏览器数据路径和调试设置,以供冷启动使用。启动此应用会将其设为 `dsh://` 默认处理程序;启动打包应用会重新注册打包版处理程序。生成的应用包不包含账号 token,依赖工作区和已准备的运行环境继续存在。 +登录会在系统浏览器中打开配置的平台页面。Host 负责 PKCE 和临时本机回调,在进入工作区前保存凭证,再将浏览器跳转到平台完成页。打开和复制的授权链接通过 `theme=light` 或 `theme=dark` 携带当前生效的 Desktop 主题;`system` 在执行操作时解析。即使平台页面随后批准,取消仍会撤销本地尝试。设置中的账号页面提供退出;没有独立 API Key 时,退出后返回欢迎窗。打包应用注册 dsh://open,只显示窗口而不传递凭证。macOS 开发启动器在 `.desktop-build/development` 下准备经临时签名的 `Harness Dev.app`,在 Info.plist 中声明 `dsh` 并注册到 Launch Services。它加载当前工作区,并记录选定的开发 home、浏览器数据路径和调试设置,以供冷启动使用。启动此应用会将其设为 `dsh://` 默认处理程序;启动打包应用会重新注册打包版处理程序。生成的应用包不包含账号 token,依赖工作区和已准备的运行环境继续存在。 登录超时后显示超时标题,并提供重新登录和添加 API Key 按钮。打开 API Key 表单会关闭授权视图;后续账号状态通知不会覆盖正在填写的密钥。 diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index 46ce1f45c1..9d5497101e 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -127,6 +127,20 @@ function chromeFallbackFill(): string { return nativeTheme.shouldUseDarkColors ? '#1b1b1c' : '#f9fafb' } +/** + * Add the effective Desktop palette to a Platform authorization URL so the + * login page opens in the application's theme. `system` resolves through + * `nativeTheme.shouldUseDarkColors`, which follows the theme source the + * application preload publishes. + * @param authorizeUrl - validated Platform authorization URL. + * @returns the authorization URL carrying `theme=light` or `theme=dark`. + */ +function platformLoginUrl(authorizeUrl: string): string { + const url = new URL(authorizeUrl) + url.searchParams.set('theme', nativeTheme.shouldUseDarkColors ? 'dark' : 'light') + return url.href +} + function createWindow(preload: string, show = false, primary = false): BrowserWindow { const window = new BrowserWindow({ width: 1280, @@ -333,7 +347,7 @@ async function main(): Promise { const attempt = state.attempt if (attempt?.phase === 'waiting-browser' && attempt.authorizeUrl !== undefined && openedAttempt !== attempt.id) { openedAttempt = attempt.id - void shell.openExternal(attempt.authorizeUrl).catch(() => undefined) + void shell.openExternal(platformLoginUrl(attempt.authorizeUrl)).catch(() => undefined) } if ((attempt?.phase === 'failed' || attempt?.phase === 'expired') && returnedAttempt !== attempt.id) { returnedAttempt = attempt.id @@ -892,7 +906,7 @@ async function main(): Promise { if (state?.attempt?.id !== id || state.attempt.phase !== 'waiting-browser' || state.attempt.authorizeUrl === undefined) { throw new Error('desktop welcome: login link is unavailable') } - await clipboard.writeText(state.attempt.authorizeUrl) + await clipboard.writeText(platformLoginUrl(state.attempt.authorizeUrl)) }, saveApiKey: async (apiKey) => { if (backend.host === undefined || welcomeBackend === undefined) return { ok: false } diff --git a/apps/desktop/src/preload-theme.ts b/apps/desktop/src/preload-theme.ts index cb1acb9699..1274e5b3c4 100644 --- a/apps/desktop/src/preload-theme.ts +++ b/apps/desktop/src/preload-theme.ts @@ -1,4 +1,4 @@ -/** Mirrors the Web UI's theme source into the macOS native theme so window vibrancy follows the app palette. */ +/** Mirrors the Web UI's theme source into Electron's native theme so native chrome and Platform login pages follow the app palette. */ import { ipcRenderer } from 'electron' import { DESKTOP_IPC } from './ipc.ts' @@ -7,14 +7,13 @@ import { DESKTOP_IPC } from './ipc.ts' const THEME_SOURCE_ATTRIBUTE = 'data-ds-theme-source' /** - * On macOS, watches `html[data-ds-theme-source]` and forwards each value to - * the main process, which sets `nativeTheme.themeSource` — the sidebar - * vibrancy material then follows the app's theme preference instead of the - * OS appearance, while `system` keeps following the OS. Other platforms - * never send. + * Watches `html[data-ds-theme-source]` and forwards each value to the main + * process, which sets `nativeTheme.themeSource`. The macOS sidebar vibrancy + * material then follows the app's theme preference instead of the OS + * appearance while `system` keeps following the OS, and the resolved + * `shouldUseDarkColors` palette travels with the Platform login link. */ export function syncNativeTheme(): void { - if (process.platform !== 'darwin') return let sent: string | undefined const send = (): void => { const value = document.documentElement.getAttribute(THEME_SOURCE_ATTRIBUTE) @@ -28,6 +27,6 @@ export function syncNativeTheme(): void { } // The preload runs before the document root exists; the theme bootstrap // script writes the attribute before DOMContentLoaded. - if (document.readyState === 'loading') window.addEventListener('DOMContentLoaded', observe) + if (document.readyState === 'loading') window.addEventListener('DOMContentLoaded', observe, { once: true }) else observe() } diff --git a/apps/desktop/tests/main-startup.spec.ts b/apps/desktop/tests/main-startup.spec.ts index 26c31d906c..00a79e9963 100644 --- a/apps/desktop/tests/main-startup.spec.ts +++ b/apps/desktop/tests/main-startup.spec.ts @@ -165,7 +165,7 @@ const harness = await vi.hoisted(async () => { get publishUpdate() { return publishUpdate! }, set publishUpdate(value: (state: DesktopUpdateState) => DesktopUpdateState) { publishUpdate = value }, dialog: { showOpenDialog: vi.fn(), showErrorBox: vi.fn(), showMessageBox: vi.fn() }, - openExternal: vi.fn(), + openExternal: vi.fn(async () => {}), protocolHandle: vi.fn<(scheme: string, handler: (request: Request) => Response | Promise) => void>(), applyRelease: vi.fn(() => { preparing.resolve(); return prepared.promise }), disableAllPlugins: vi.fn(async () => { @@ -1617,3 +1617,21 @@ it.each(['failed', 'expired'] as const)('focuses DSH once when browser authoriza harness.publishAccount(state) expect(window.focus).toHaveBeenCalledTimes(1) }) + +it.each([['light', false], ['dark', true]] as const)('opens Platform authorization in the effective %s palette', async (theme, shouldUseDarkColors) => { + await import('../src/main.ts') + await harness.preparing.promise + harness.prepared.resolve() + await harness.hostStarted.promise + harness.hosts[0]!.ready.resolve() + await Promise.resolve(invoke(DESKTOP_IPC.boot)) + harness.nativeTheme.shouldUseDarkColors = shouldUseDarkColors + const state: AccountView = { + status: 'signed-out', links: { usageUrl: 'https://platform.deepseek.com/usage', topUpUrl: 'https://platform.deepseek.com/top_up' }, + attempt: { id: 'test-theme-attempt' as NonNullable['id'], phase: 'waiting-browser', + authorizeUrl: 'https://platform.deepseek.com/dsh/authorize?state=state-1' }, + } + harness.publishAccount(state) + harness.publishAccount(state) + expect(harness.openExternal).toHaveBeenCalledExactlyOnceWith(`https://platform.deepseek.com/dsh/authorize?state=state-1&theme=${theme}`) +}) diff --git a/apps/desktop/tests/preload-theme.client.spec.ts b/apps/desktop/tests/preload-theme.client.spec.ts new file mode 100644 index 0000000000..90cd23eab0 --- /dev/null +++ b/apps/desktop/tests/preload-theme.client.spec.ts @@ -0,0 +1,58 @@ +// @vitest-environment jsdom +import { afterEach, expect, it, vi } from 'vitest' +import { DESKTOP_IPC } from '../src/ipc.ts' +import { syncNativeTheme } from '../src/preload-theme.ts' + +const send = vi.hoisted(() => vi.fn()) +vi.mock('electron', () => ({ ipcRenderer: { send } })) + +/** Observers created by the module under test; jsdom keeps one document per file. */ +const observers = new Set() +const NativeMutationObserver = MutationObserver + +/** Records every observer so teardown detaches it from the shared document. */ +class TrackedMutationObserver extends NativeMutationObserver { + constructor(callback: MutationCallback) { + super(callback) + observers.add(this) + } +} + +afterEach(() => { + for (const observer of observers) observer.disconnect() + observers.clear() + document.documentElement.removeAttribute('data-ds-theme-source') + vi.unstubAllGlobals() + vi.restoreAllMocks() + send.mockClear() +}) + +it.each(['darwin', 'win32'] as const)('mirrors the application theme source on %s', async (platform) => { + vi.stubGlobal('MutationObserver', TrackedMutationObserver) + vi.spyOn(process, 'platform', 'get').mockReturnValue(platform) + document.documentElement.setAttribute('data-ds-theme-source', 'dark') + syncNativeTheme() + expect(send).toHaveBeenCalledExactlyOnceWith(DESKTOP_IPC.nativeThemeSet, 'dark') + document.documentElement.setAttribute('data-ds-theme-source', 'system') + await vi.waitFor(() => { expect(send).toHaveBeenLastCalledWith(DESKTOP_IPC.nativeThemeSet, 'system') }) + expect(send).toHaveBeenCalledTimes(2) + for (const observer of observers) observer.disconnect() + send.mockClear() + document.documentElement.setAttribute('data-ds-theme-source', 'light') + await new Promise((resolve) => { queueMicrotask(resolve) }) + expect(send).not.toHaveBeenCalled() +}) + +it('waits for the document root and then stops listening for it', () => { + vi.stubGlobal('MutationObserver', TrackedMutationObserver) + vi.spyOn(process, 'platform', 'get').mockReturnValue('win32') + vi.spyOn(document, 'readyState', 'get').mockReturnValue('loading') + syncNativeTheme() + expect(send).not.toHaveBeenCalled() + document.documentElement.setAttribute('data-ds-theme-source', 'light') + window.dispatchEvent(new Event('DOMContentLoaded')) + expect(send).toHaveBeenCalledExactlyOnceWith(DESKTOP_IPC.nativeThemeSet, 'light') + document.documentElement.setAttribute('data-ds-theme-source', 'dark') + window.dispatchEvent(new Event('DOMContentLoaded')) + expect(send).toHaveBeenCalledOnce() +}) diff --git a/apps/desktop/tests/welcome-startup.spec.ts b/apps/desktop/tests/welcome-startup.spec.ts index db461e59e2..6dd4080692 100644 --- a/apps/desktop/tests/welcome-startup.spec.ts +++ b/apps/desktop/tests/welcome-startup.spec.ts @@ -31,6 +31,7 @@ const state = vi.hoisted(() => ({ windowOptions: undefined as BrowserWindowConstructorOptions | undefined, menu: vi.fn(), operations: undefined as WelcomeOperations | undefined, + nativeTheme: { themeSource: 'system', shouldUseDarkColors: false }, })) vi.mock('electron', () => ({ @@ -67,7 +68,7 @@ vi.mock('electron', () => ({ async loadURL(url: string) { state.contents = this.webContents; await state.loadWorkspace(url); this.ready?.() } }, net: { fetch: vi.fn() }, - nativeTheme: { themeSource: 'system' }, + nativeTheme: state.nativeTheme, session: { defaultSession: { setPermissionCheckHandler: vi.fn(), setPermissionRequestHandler: vi.fn(), webRequest: { onBeforeSendHeaders: vi.fn() }, } }, @@ -177,11 +178,15 @@ it('starts the Host for welcome onboarding and opens the workspace on skip witho attempt: { id: attemptId, phase: 'waiting-browser', authorizeUrl: 'https://example.test/login' } } state.accountState.mockResolvedValue(account) await state.operations!.copySignInLink(attemptId) - expect(state.copy).toHaveBeenCalledExactlyOnceWith('https://example.test/login') + expect(state.copy).toHaveBeenCalledExactlyOnceWith('https://example.test/login?theme=light') + state.nativeTheme.shouldUseDarkColors = true + await state.operations!.copySignInLink(attemptId) + expect(state.copy).toHaveBeenLastCalledWith('https://example.test/login?theme=dark') + state.nativeTheme.shouldUseDarkColors = false await expect(state.operations!.copySignInLink('stale' as typeof attemptId)).rejects.toThrow('login link is unavailable') state.accountState.mockResolvedValue({ ...account, attempt: { id: attemptId, phase: 'expired' } }) await expect(state.operations!.copySignInLink(attemptId)).rejects.toThrow('login link is unavailable') - expect(state.copy).toHaveBeenCalledOnce() + expect(state.copy).toHaveBeenCalledTimes(2) await state.operations!.skip() expect(state.loadWorkspace).not.toHaveBeenCalled() expect(state.showWorkspace).toHaveBeenCalledOnce() From f5c96b63409c5eb4f5fded1833495df2376f16f0 Mon Sep 17 00:00:00 2001 From: lsdsjy <1356263+lsdsjy@users.noreply.github.com> Date: Tue, 22 Sep 2026 12:07:45 +0800 Subject: [PATCH 07/23] fix(credentials): identify web account requests with client platform header --- docs/config-catalog.i18n.yaml | 4 ++-- docs/config-catalog.md | 2 +- docs/config-catalog.zh.md | 2 +- .../deepseek-account-platform/README.i18n.yaml | 4 ++-- .../deepseek-account-platform/README.md | 2 +- .../deepseek-account-platform/README.zh.md | 2 +- .../deepseek-account-platform/src/index.ts | 6 +++--- .../tests/account.spec.ts | 14 ++++++++------ 8 files changed, 19 insertions(+), 17 deletions(-) diff --git a/docs/config-catalog.i18n.yaml b/docs/config-catalog.i18n.yaml index 29fa75561d..06dbc0e20e 100644 --- a/docs/config-catalog.i18n.yaml +++ b/docs/config-catalog.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write docs/config-catalog.md -config-catalog.md: 573d16f37b9ce3c123c55c366d8ee6424feb3d64 -config-catalog.zh.md: 9d827a4c65ec198239d7d1ef29735747a39838b9 +config-catalog.md: 27b0c8124c172fceb77dd50b9706c274c3773178 +config-catalog.zh.md: 18c5fe6726981cec602ee19578e3d737fb25c568 diff --git a/docs/config-catalog.md b/docs/config-catalog.md index 573d16f37b..27b0c8124c 100644 --- a/docs/config-catalog.md +++ b/docs/config-catalog.md @@ -679,7 +679,7 @@ Requires: `credentials` · `authorization` export interface Config { /** Platform origin serving auth-api and browser pages. */ platformOrigin?: string - /** Native desktop identity for Host API and embedded Platform requests; null omits the client platform header. */ + /** Native desktop identity for Host API and embedded Platform requests; null identifies the client as web. */ desktopPlatform?: 'darwin' | 'win32' | null /** Optional frontend deployment selector for embedded Usage and Top-up pages. */ embeddedPageDist?: string diff --git a/docs/config-catalog.zh.md b/docs/config-catalog.zh.md index 9d827a4c65..18c5fe6726 100644 --- a/docs/config-catalog.zh.md +++ b/docs/config-catalog.zh.md @@ -681,7 +681,7 @@ export interface Config { export interface Config { /** Platform origin serving auth-api and browser pages. */ platformOrigin?: string - /** Native desktop identity for Host API and embedded Platform requests; null omits the client platform header. */ + /** Native desktop identity for Host API and embedded Platform requests; null identifies the client as web. */ desktopPlatform?: 'darwin' | 'win32' | null /** Optional frontend deployment selector for embedded Usage and Top-up pages. */ embeddedPageDist?: string diff --git a/packages/credentials/deepseek-account-platform/README.i18n.yaml b/packages/credentials/deepseek-account-platform/README.i18n.yaml index 0d9e62a069..0474a63be1 100644 --- a/packages/credentials/deepseek-account-platform/README.i18n.yaml +++ b/packages/credentials/deepseek-account-platform/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/credentials/deepseek-account-platform/README.md -README.md: 34da2313ea99b989ea3a0692d2cca050116b5b6a -README.zh.md: e24036ebf7a5c431ab34abdb1f01415b7b3a4f36 +README.md: 94816e5819027b0d68d39379a9905dfe02768029 +README.zh.md: 9e1df8a19881960e4d4b4423f9cfa89c463d237d diff --git a/packages/credentials/deepseek-account-platform/README.md b/packages/credentials/deepseek-account-platform/README.md index 34da2313ea..94816e5819 100644 --- a/packages/credentials/deepseek-account-platform/README.md +++ b/packages/credentials/deepseek-account-platform/README.md @@ -11,7 +11,7 @@ New attempts map the caller’s UI language to Platform en_US or zh_CN; active a getPlatformSession exports the stored grant only when its issuer matches platformOrigin. This Host-only operation supports native Platform embedding without widening the model/file origin configured for resolveToken. -`desktopPlatform` defaults to `null`. The Desktop profile supplies `darwin` or `win32`; Host authorization, profile, balance, and logout requests then carry `x-client-platform: desktop-mac` or `desktop-win`, overriding that header in deployment configuration. Embedded Platform document and API requests receive the same platform header alongside their deployment headers, only at the configured origin. Other profiles omit the automatic header. +`desktopPlatform` defaults to `null`. Every profile then sends `x-client-platform: web` on Host authorization, profile, balance, and logout requests; the Desktop profile supplies `darwin` or `win32`, replacing it with `x-client-platform: desktop-mac` or `desktop-win`. The provider owns that header, so deployment configuration cannot override it. Embedded Platform document and API requests receive the same platform header alongside their deployment headers, only at the configured origin. ## Summary diff --git a/packages/credentials/deepseek-account-platform/README.zh.md b/packages/credentials/deepseek-account-platform/README.zh.md index e24036ebf7..9e1df8a198 100644 --- a/packages/credentials/deepseek-account-platform/README.zh.md +++ b/packages/credentials/deepseek-account-platform/README.zh.md @@ -11,7 +11,7 @@ kind: "package-reference" getPlatformSession 仅在已存授权的 issuer 与 platformOrigin 一致时导出该授权。这个仅限 Host 的操作支持原生 Platform 内嵌,不扩大 resolveToken 配置的模型及文件请求来源。 -`desktopPlatform` 默认为 `null`。Desktop profile 提供 `darwin` 或 `win32`,使 Host 的授权、资料、余额和退登请求携带 `x-client-platform: desktop-mac` 或 `desktop-win`,覆盖部署配置中的同名请求头。内嵌 Platform 的文档与 API 请求仅向配置来源发送相同的平台请求头,同时保留其他部署请求头;其他 profile 不自动添加平台请求头。 +`desktopPlatform` 默认为 `null`。此时所有 profile 的 Host 授权、资料、余额和退登请求都携带 `x-client-platform: web`;Desktop profile 提供 `darwin` 或 `win32`,改为携带 `x-client-platform: desktop-mac` 或 `desktop-win`。该请求头由 provider 拥有,部署配置无法覆盖。内嵌 Platform 的文档与 API 请求仅向配置来源发送相同的平台请求头,同时保留其他部署请求头。 ## 概述 diff --git a/packages/credentials/deepseek-account-platform/src/index.ts b/packages/credentials/deepseek-account-platform/src/index.ts index e3f760cded..6eb4071350 100644 --- a/packages/credentials/deepseek-account-platform/src/index.ts +++ b/packages/credentials/deepseek-account-platform/src/index.ts @@ -23,7 +23,7 @@ const device = z.object({ id: z.uuid() }) export interface Config { /** Platform origin serving auth-api and browser pages. */ platformOrigin?: string - /** Native desktop identity for Host API and embedded Platform requests; null omits the client platform header. */ + /** Native desktop identity for Host API and embedded Platform requests; null identifies the client as web. */ desktopPlatform?: 'darwin' | 'win32' | null /** Optional frontend deployment selector for embedded Usage and Top-up pages. */ embeddedPageDist?: string @@ -112,7 +112,7 @@ export class PlatformAccount extends DeepSeekAccount { } this.inferenceOrigin = inference.origin this.rewriteBrowserOrigin = resolved.rewriteBrowserOrigin - this.clientHeaders = desktopClientHeaders(resolved.desktopPlatform) + this.clientHeaders = { 'x-client-platform': 'web', ...desktopClientHeaders(resolved.desktopPlatform) } this.requestHeaders = platformHeaders(resolved.requestHeaders) const accountHeaders = platformHeaders(resolved.accountRequestHeaders) this.accountRequestHeaders = { ...this.requestHeaders, ...accountHeaders } @@ -207,7 +207,7 @@ export class PlatformAccount extends DeepSeekAccount { const requestHeaders = { ...this.accountRequestHeaders, ...this.clientHeaders } return { origin: this.origin, token: stored.token, ...(this.embeddedPageDist ? { embeddedPageDist: this.embeddedPageDist } : {}), - ...(Object.keys(requestHeaders).length ? { requestHeaders } : {}) } + requestHeaders } } private async readCurrentGrant(lifetime: AbortController): Promise | null> { diff --git a/packages/credentials/deepseek-account-platform/tests/account.spec.ts b/packages/credentials/deepseek-account-platform/tests/account.spec.ts index f1b22c47b0..47c86e4853 100644 --- a/packages/credentials/deepseek-account-platform/tests/account.spec.ts +++ b/packages/credentials/deepseek-account-platform/tests/account.spec.ts @@ -239,7 +239,8 @@ it('stores a grant before redirecting, restores account presence, and signs out expect(response.headers.get('location')).toBe(`${f.origin}/dsh/authorized?result=test&locale=zh_CN&login_source=desktop`) expect((await f.account.getState()).status).toBe('credential-stored') expect(await readFile(join(f.home, 'credentials.yaml'), 'utf8')).toContain('dsh_mock_test') - expect(await f.account.getPlatformSession()).toEqual({ origin: f.origin, token: 'dsh_mock_test' }) + expect(await f.account.getPlatformSession()).toEqual({ origin: f.origin, token: 'dsh_mock_test', + requestHeaders: { 'x-client-platform': 'web' } }) expect(await f.account.resolveToken('https://api.deepseek.com')).toBeUndefined() await f.account.signOut() expect((await f.account.getState()).status).toBe('signed-out') @@ -779,13 +780,14 @@ it('carries the configured embedded frontend selector in the private Platform se await f.account.startSignIn('en', f.callbackOrigin, 'desktop') await f.wait('waiting-browser') await fetch(f.callback(), { redirect: 'manual' }) - expect(await f.account.getPlatformSession()).toEqual({ origin: f.origin, token: 'dsh_mock_test', embeddedPageDist: 'feat/test' }) + expect(await f.account.getPlatformSession()).toEqual({ origin: f.origin, token: 'dsh_mock_test', embeddedPageDist: 'feat/test', + requestHeaders: { 'x-client-platform': 'web' } }) }) it.each([ - ['darwin', 'desktop-mac'], ['win32', 'desktop-win'], [null, undefined], + ['darwin', 'desktop-mac'], ['win32', 'desktop-win'], [null, 'web'], ] as const)('identifies %s Host API and embedded Platform requests', async (desktopPlatform, expected) => { - const f = await fixture(undefined, { Cookie: 'test_gate=synthetic', ...(desktopPlatform === null ? {} : { 'X-Client-Platform': 'web' }) }, + const f = await fixture(undefined, { Cookie: 'test_gate=synthetic', 'X-Client-Platform': 'deployment-override' }, false, {}, undefined, undefined, '', desktopPlatform) await f.account.startSignIn('en', f.callbackOrigin, 'desktop') await f.wait('waiting-browser') @@ -796,8 +798,8 @@ it.each([ await f.wait('waiting-browser') await fetch(f.callback(), { redirect: 'manual' }) await readDetails(f.account) - expect(await f.account.getPlatformSession()).toMatchObject({ requestHeaders: { cookie: 'test_gate=synthetic' } }) - expect((await f.account.getPlatformSession())?.requestHeaders?.['x-client-platform']).toBe(expected) + expect(await f.account.getPlatformSession()).toEqual({ origin: f.origin, token: 'dsh_mock_test', + requestHeaders: { cookie: 'test_gate=synthetic', 'x-client-platform': expected } }) await f.account.signOut() await expect.poll(f.logoutCount).toBe(1) expect(f.receivedHeaders.map(item => item.path)).toEqual([ From 943af81a185ea4d70eda2b36598938857b1f851b Mon Sep 17 00:00:00 2001 From: imccyu Date: Tue, 22 Sep 2026 13:07:34 +0800 Subject: [PATCH 08/23] fix(release): pin vendor dependencies for dsh 0.1.5 --- apps/cli/package.json | 12 +- apps/desktop-host/package.json | 4 +- apps/web/package.json | 2 +- benchmarks/package.json | 4 +- packages/acp/acp/package.json | 6 +- packages/api/gateway/package.json | 6 +- packages/api/remotes/package.json | 4 +- packages/api/session-controller/package.json | 6 +- packages/api/settings-controller/package.json | 6 +- .../api/workspace-controller/package.json | 4 +- packages/api/workspace-files/package.json | 6 +- .../attachment/attachment-local/package.json | 6 +- packages/attachment/attachment/package.json | 4 +- packages/boot/app-boot/package.json | 22 +- packages/boot/cmdline/package.json | 10 +- packages/bundle/acp-app/package.json | 6 +- packages/bundle/base/package.json | 8 +- packages/bundle/headless/package.json | 10 +- packages/bundle/sdk-app/package.json | 8 +- packages/bundle/sdk-minimal/package.json | 6 +- packages/bundle/web-app/package.json | 10 +- packages/client/connection/package.json | 6 +- packages/client/file-upload/package.json | 4 +- packages/client/hmr/package.json | 8 +- packages/client/locale/package.json | 6 +- packages/client/modules/package.json | 6 +- packages/client/resources/package.json | 4 +- packages/client/store/package.json | 4 +- packages/client/ui-agent-preset/package.json | 4 +- packages/client/ui-approval/package.json | 4 +- packages/client/ui-attachment/package.json | 4 +- .../client/ui-brand-official/package.json | 4 +- packages/client/ui-chat/package.json | 6 +- packages/client/ui-commands/package.json | 4 +- packages/client/ui-conversation/package.json | 6 +- packages/client/ui-deliverables/package.json | 4 +- .../ui-directory-picker-browse/package.json | 4 +- .../ui-directory-picker-native/package.json | 4 +- packages/client/ui-dockkit/package.json | 4 +- packages/client/ui-goal/package.json | 4 +- packages/client/ui-input-trigger/package.json | 4 +- packages/client/ui-jobs/package.json | 4 +- packages/client/ui-layout/package.json | 4 +- .../client/ui-message-feedback/package.json | 4 +- .../client/ui-model-selection/package.json | 4 +- packages/client/ui-open-in-app/package.json | 4 +- .../client/ui-permission-presets/package.json | 4 +- packages/client/ui-plan/package.json | 4 +- packages/client/ui-primitives/package.json | 4 +- packages/client/ui-reference/package.json | 4 +- packages/client/ui-renderer/package.json | 4 +- packages/client/ui-schedule/package.json | 4 +- packages/client/ui-session/package.json | 4 +- .../client/ui-settings-general/package.json | 6 +- .../client/ui-settings-models/package.json | 4 +- .../ui-settings-plugin-inventory/package.json | 4 +- .../client/ui-settings-plugins/package.json | 4 +- packages/client/ui-settings/package.json | 6 +- .../ui-sidebar-documentpreview/package.json | 4 +- packages/client/ui-sidebar-files/package.json | 4 +- packages/client/ui-sidebar-right/package.json | 4 +- packages/client/ui-sidebar/package.json | 4 +- packages/client/ui-skill/package.json | 4 +- packages/client/ui-slots/package.json | 4 +- packages/client/ui-subagent/package.json | 4 +- packages/client/ui-theme/package.json | 6 +- packages/client/ui-tool/package.json | 4 +- packages/client/ui-trajectory/package.json | 4 +- .../client/ui-user-questions/package.json | 4 +- packages/client/ui-workflow-run/package.json | 4 +- packages/client/ui-workspace/package.json | 4 +- packages/client/web/package.json | 6 +- .../code-runtime-worker-thread/package.json | 6 +- .../code-runtime/code-runtime/package.json | 4 +- .../compaction/command-compact/package.json | 8 +- .../compaction/compaction-basic/package.json | 10 +- .../package.json | 10 +- packages/compaction/compaction/package.json | 4 +- .../context/agent-instructions/package.json | 8 +- .../context/file-reference-local/package.json | 6 +- packages/context/file-reference/package.json | 4 +- .../context/session-reference/package.json | 10 +- packages/context/time-context/package.json | 6 +- packages/context/tmux-context/package.json | 6 +- .../core/agent-default-model/package.json | 6 +- packages/core/agent-loop/package.json | 6 +- .../core/agent-tool-presentation/package.json | 6 +- packages/core/agent/package.json | 4 +- packages/core/scope/package.json | 4 +- packages/core/session/package.json | 4 +- packages/core/system-prompt/package.json | 6 +- packages/core/tools/package.json | 6 +- .../credentials/authorization/package.json | 4 +- .../credentials-local/package.json | 6 +- packages/credentials/credentials/package.json | 4 +- packages/e2b/e2b/package.json | 6 +- packages/e2b/fs-e2b/package.json | 4 +- packages/e2b/subprocess-e2b/package.json | 6 +- .../agent-team-profile/package.json | 6 +- .../agent-team-web-profile/package.json | 6 +- packages/experimental/agent-team/package.json | 6 +- .../client-ui-agent-team/package.json | 4 +- .../code-runtime-python/package.json | 6 +- packages/experimental/inspector/package.json | 12 +- .../experimental/tool-agent-team/package.json | 6 +- .../webworker-packer/package.json | 6 +- .../webworker-runtime/package.json | 8 +- .../cordis-client-runner/package.json | 6 +- .../cordis-host-runner/package.json | 8 +- packages/extensions/tool-cordis/package.json | 6 +- packages/extensions/ui-cordis/package.json | 4 +- .../feedback/command-feedback/package.json | 8 +- .../feedback/message-feedback/package.json | 10 +- packages/fs/fs-local/package.json | 6 +- .../fs/fs-observation-policy/package.json | 4 +- packages/fs/fs-sandbox/package.json | 4 +- packages/fs/fs/package.json | 4 +- packages/fs/tool-fs-search/package.json | 6 +- packages/fs/tool-fs/package.json | 6 +- packages/fs/tool-present/package.json | 6 +- .../fs/tool-str-replace-editor/package.json | 6 +- packages/goal/command-goal/package.json | 6 +- packages/goal/goal-round-driver/package.json | 4 +- packages/goal/goal/package.json | 6 +- packages/goal/tool-goal/package.json | 8 +- .../guard/repeat-tool-reminder/package.json | 6 +- packages/guard/timeout-policy/package.json | 4 +- packages/hooks/hook-protocol/package.json | 4 +- packages/hooks/hooks-claude-code/package.json | 6 +- packages/hooks/hooks-codex/package.json | 6 +- .../host/directory-picker-auto/package.json | 10 +- .../host/directory-picker-browse/package.json | 6 +- .../host/directory-picker-native/package.json | 4 +- packages/host/directory-picker/package.json | 4 +- packages/host/frontend-static/package.json | 8 +- packages/host/open-in-app/package.json | 8 +- packages/host/plugin-inventory/package.json | 8 +- packages/host/webserver/package.json | 6 +- .../identity/anonymous-user-id/package.json | 4 +- packages/interaction/commands/package.json | 4 +- .../permission-presets/package.json | 6 +- .../interaction/tool-ask-user/package.json | 4 +- .../interaction/user-approval/package.json | 6 +- .../interaction/user-questions/package.json | 4 +- packages/jobs/jobs-local/package.json | 10 +- packages/jobs/jobs/package.json | 4 +- packages/jobs/tool-jobs/package.json | 6 +- .../deepseek-llm-api-extensions/package.json | 4 +- packages/llm/llm-deepseek/package.json | 6 +- packages/llm/llm-pi-ai/package.json | 6 +- packages/llm/llm-retry/package.json | 10 +- packages/llm/llm/package.json | 6 +- .../package.json | 12 +- packages/llm/token-meter/package.json | 6 +- packages/lsp/lsp-stdio/package.json | 6 +- packages/lsp/lsp/package.json | 4 +- packages/lsp/tool-lsp/package.json | 6 +- packages/mcp/mcp-client/package.json | 6 +- packages/plan/plan-mode/package.json | 4 +- packages/preset/agent-presets/package.json | 16 +- packages/preset/persona/package.json | 6 +- .../invariants/package.json | 6 +- packages/sandbox/sandbox-local/package.json | 6 +- packages/sandbox/sandbox-policy/package.json | 6 +- .../sandbox/sandbox-windows-acl/package.json | 4 +- packages/sandbox/sandbox/package.json | 4 +- packages/schedule/schedule/package.json | 6 +- packages/sdk/client/package.json | 4 +- packages/sdk/protocol/package.json | 4 +- packages/sdk/server/package.json | 8 +- .../session-log-export/package.json | 8 +- .../session-query-sqlite/package.json | 8 +- .../session-query/session-query/package.json | 4 +- .../tool-session-query/package.json | 6 +- .../session-checkpoint-policy/package.json | 6 +- .../session-format-catalog/package.json | 4 +- .../session-format-v0-to-v1/package.json | 4 +- .../session-format-v1-to-v2/package.json | 4 +- .../session-format-v2-to-v3/package.json | 4 +- packages/session/session-format/package.json | 4 +- .../session/session-log-deepseek/package.json | 10 +- .../session-persistence-jsonl/package.json | 6 +- .../session/session-persistence/package.json | 4 +- .../session-projection-cache/package.json | 6 +- .../session/session-projection/package.json | 4 +- packages/session/session-stats/package.json | 8 +- .../session-telemetry-otel/package.json | 10 +- .../session/session-telemetry/package.json | 4 +- .../package.json | 6 +- .../package.json | 10 +- .../session/session-title-llm/package.json | 6 +- packages/session/session-title/package.json | 6 +- .../session/session-turn-outline/package.json | 8 +- packages/settings/settings-file/package.json | 6 +- packages/settings/settings/package.json | 8 +- packages/shell/bash-local/package.json | 6 +- packages/shell/bash-sandbox/package.json | 4 +- packages/shell/pwsh-local/package.json | 6 +- packages/shell/pwsh-sandbox/package.json | 4 +- packages/shell/shell-env/package.json | 6 +- packages/shell/shell/package.json | 4 +- .../shell/tool-bash-persistent/package.json | 10 +- packages/shell/tool-bash/package.json | 6 +- .../shell/tool-pwsh-persistent/package.json | 10 +- packages/shell/tool-pwsh/package.json | 6 +- packages/skill/skill-badge/package.json | 4 +- packages/skill/skill-filesystem/package.json | 6 +- packages/skill/skill/package.json | 6 +- packages/skill/tool-skill/package.json | 6 +- packages/spill/spill-local/package.json | 10 +- packages/spill/spill-policy/package.json | 6 +- packages/spill/spill/package.json | 4 +- packages/storage/storage-domain/package.json | 6 +- packages/storage/storage-json/package.json | 6 +- packages/storage/storage-sqlite/package.json | 6 +- packages/storage/storage/package.json | 4 +- packages/subagent/subagent-acp/package.json | 8 +- .../subagent-claude-code/package.json | 6 +- packages/subagent/subagent-codex/package.json | 8 +- .../subagent/subagent-dsh-sdk/package.json | 8 +- .../subagent-fork-in-process/package.json | 8 +- .../subagent-in-process-driver/package.json | 8 +- .../subagent-spawn-in-process/package.json | 8 +- packages/subagent/subagent/package.json | 4 +- .../tool-subagent-control/package.json | 4 +- packages/subagent/tool-subagent/package.json | 8 +- .../subprocess/subprocess-local/package.json | 4 +- packages/subprocess/subprocess/package.json | 4 +- .../subprocess/win32-process/package.json | 4 +- packages/terminal/terminal-bash/package.json | 6 +- packages/terminal/terminal/package.json | 4 +- packages/terminal/tool-terminal/package.json | 10 +- .../agent-loop-testkit/package.json | 4 +- .../test-support/client-runtime/package.json | 4 +- .../test-support/llm-mock-server/package.json | 4 +- packages/test-support/llm-replay/package.json | 4 +- .../test-support/loader-smoke/package.json | 4 +- .../session-snapshot/package.json | 4 +- packages/todo/tool-todo/package.json | 10 +- packages/typert/generator/package.json | 4 +- packages/typert/loader/package.json | 10 +- packages/typert/protocol/package.json | 4 +- packages/typert/registry/package.json | 4 +- packages/util/atomic-write/package.json | 4 +- packages/util/brand/package.json | 4 +- packages/util/chunked-list/package.json | 4 +- packages/util/crypto/package.json | 4 +- packages/util/deque/package.json | 4 +- packages/util/home-paths/package.json | 4 +- packages/util/http-proxy/package.json | 4 +- packages/util/launch-environment/package.json | 4 +- packages/util/native-command/package.json | 4 +- packages/util/output-retention/package.json | 4 +- packages/util/package-manifest/package.json | 4 +- packages/util/time/package.json | 4 +- packages/util/timeout/package.json | 4 +- packages/util/values/package.json | 4 +- packages/util/workspace-path/package.json | 4 +- packages/web/tool-web/package.json | 6 +- packages/web/web-fetch-http/package.json | 6 +- packages/web/web-search-deepseek/package.json | 6 +- packages/web/web-search-exa/package.json | 6 +- .../web/web-search-perplexity/package.json | 6 +- packages/web/web/package.json | 6 +- packages/webhook/webhook-github/package.json | 10 +- packages/webhook/webhook/package.json | 8 +- packages/workflow/tool-ralph/package.json | 8 +- packages/workflow/tool-workflow/package.json | 6 +- .../workflow-worker-thread/package.json | 6 +- packages/workflow/workflow/package.json | 4 +- packages/workspace/workspace/package.json | 4 +- pnpm-lock.yaml | 750 +++++++++--------- python/sdk-runtime/package.json | 14 +- scripts/verify-package-dependencies.spec.ts | 33 +- scripts/verify-package-dependencies.ts | 34 +- 275 files changed, 1212 insertions(+), 1171 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index 97881b4cfa..b265db2e3e 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -28,11 +28,11 @@ }, "license": "MIT", "dependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-hmr": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", - "@deepseek-ai/cordis-plugin-timer": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-hmr": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", + "@deepseek-ai/cordis-plugin-timer": "workspace:*", "@deepseek-ai/dsh-acp-app": "workspace:^", "@deepseek-ai/dsh-agent-instructions": "workspace:^", "@deepseek-ai/dsh-agent-tool-presentation": "workspace:^", @@ -95,7 +95,7 @@ "@deepseek-ai/dsh-webhook": "workspace:^", "@deepseek-ai/dsh-webhook-github": "workspace:^", "@deepseek-ai/dsh-workflow-worker-thread": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "commander": "^15.0.0", "js-yaml": "^4.2.0", "node-addon-require-builtin": "^0.1.4", diff --git a/apps/desktop-host/package.json b/apps/desktop-host/package.json index 83b1ed2a5b..99eb2b4904 100644 --- a/apps/desktop-host/package.json +++ b/apps/desktop-host/package.json @@ -11,8 +11,8 @@ "config/desktop.cordis.patch.yml" ], "dependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", "@deepseek-ai/dsh": "workspace:^", "@deepseek-ai/dsh-api-gateway": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", diff --git a/apps/web/package.json b/apps/web/package.json index cc504af02b..50e6e88070 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -30,7 +30,7 @@ }, "license": "MIT", "devDependencies": { - "@deepseek-ai/cordis-plugin-group": "workspace:^", + "@deepseek-ai/cordis-plugin-group": "workspace:*", "@deepseek-ai/dsh-client-modules": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", "@deepseek-ai/dsh-client-ui-dockkit": "workspace:^", diff --git a/benchmarks/package.json b/benchmarks/package.json index cc8c60cf71..4fd9edcd60 100644 --- a/benchmarks/package.json +++ b/benchmarks/package.json @@ -7,7 +7,7 @@ "devDependencies": { "playwright": "^1.49.0", "@deepseek-ai/dsh-llm-replay": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -32,6 +32,6 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/acp/acp/package.json b/packages/acp/acp/package.json index 1e18f54543..3bf01229ec 100644 --- a/packages/acp/acp/package.json +++ b/packages/acp/acp/package.json @@ -29,10 +29,10 @@ "dependencies": { "@agentclientprotocol/sdk": "1.4.0", "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -48,7 +48,7 @@ } }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/api/gateway/package.json b/packages/api/gateway/package.json index 985db89e9e..03dbbc8245 100644 --- a/packages/api/gateway/package.json +++ b/packages/api/gateway/package.json @@ -53,12 +53,12 @@ "dependencies": { "@deepseek-ai/dsh-deque": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "ws": "^8.21.0", "@deepseek-ai/dsh-typert-protocol": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", @@ -67,7 +67,7 @@ "@deepseek-ai/dsh-typert-registry": "workspace:^", "@deepseek-ai/dsh-util-crypto": "workspace:^", "@types/ws": "^8.18.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "zod": "^4.4.3" } } diff --git a/packages/api/remotes/package.json b/packages/api/remotes/package.json index 73f4bbdd13..1415ffdc5f 100644 --- a/packages/api/remotes/package.json +++ b/packages/api/remotes/package.json @@ -55,11 +55,11 @@ "@deepseek-ai/dsh-util-values": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-scope": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-api-gateway": "workspace:^", diff --git a/packages/api/session-controller/package.json b/packages/api/session-controller/package.json index e07392fe5c..f8378d4010 100644 --- a/packages/api/session-controller/package.json +++ b/packages/api/session-controller/package.json @@ -70,12 +70,12 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-deque": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "mime-types": "^3.0.2", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", @@ -117,7 +117,7 @@ } }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", diff --git a/packages/api/settings-controller/package.json b/packages/api/settings-controller/package.json index c9bcbf578a..28caa71fed 100644 --- a/packages/api/settings-controller/package.json +++ b/packages/api/settings-controller/package.json @@ -44,11 +44,11 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-native-command": "workspace:^", @@ -57,7 +57,7 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-native-command": "workspace:^", diff --git a/packages/api/workspace-controller/package.json b/packages/api/workspace-controller/package.json index e73fe14586..dc6691b4f9 100644 --- a/packages/api/workspace-controller/package.json +++ b/packages/api/workspace-controller/package.json @@ -69,7 +69,7 @@ "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-gateway": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-host-directory-picker": "workspace:^", @@ -79,7 +79,7 @@ "@deepseek-ai/dsh-workspace": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-gateway": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", diff --git a/packages/api/workspace-files/package.json b/packages/api/workspace-files/package.json index c5130dbe89..9592cc40be 100644 --- a/packages/api/workspace-files/package.json +++ b/packages/api/workspace-files/package.json @@ -54,14 +54,14 @@ "dependencies": { "@deepseek-ai/dsh-deque": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-gateway": "workspace:^", "@deepseek-ai/dsh-client-resources": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", diff --git a/packages/attachment/attachment-local/package.json b/packages/attachment/attachment-local/package.json index 1d2a37a9e4..8e4f2850b4 100644 --- a/packages/attachment/attachment-local/package.json +++ b/packages/attachment/attachment-local/package.json @@ -23,15 +23,15 @@ "peerDependencies": { "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "sharp": "^0.35.3" }, "devDependencies": { "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/attachment/attachment/package.json b/packages/attachment/attachment/package.json index e030ce0e71..8bfc20cb06 100644 --- a/packages/attachment/attachment/package.json +++ b/packages/attachment/attachment/package.json @@ -23,10 +23,10 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/boot/app-boot/package.json b/packages/boot/app-boot/package.json index 9b51435015..c4b1a011e7 100644 --- a/packages/boot/app-boot/package.json +++ b/packages/boot/app-boot/package.json @@ -33,14 +33,14 @@ "resolve.exports": "^2.0.3" }, "peerDependencies": { - "@deepseek-ai/cordis-plugin-group": "workspace:^", - "@deepseek-ai/cordis-plugin-hmr": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-group": "workspace:*", + "@deepseek-ai/cordis-plugin-hmr": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "peerDependenciesMeta": { "@deepseek-ai/cordis-plugin-hmr": { @@ -48,16 +48,16 @@ } }, "devDependencies": { - "@deepseek-ai/cordis-plugin-group": "workspace:^", - "@deepseek-ai/cordis-plugin-hmr": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", - "@deepseek-ai/cordis-plugin-timer": "workspace:^", + "@deepseek-ai/cordis-plugin-group": "workspace:*", + "@deepseek-ai/cordis-plugin-hmr": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", + "@deepseek-ai/cordis-plugin-timer": "workspace:*", "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@types/js-yaml": "^4.0.9", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "chokidar": "4.0.3" } } diff --git a/packages/boot/cmdline/package.json b/packages/boot/cmdline/package.json index bb453aaa94..57c18c4452 100644 --- a/packages/boot/cmdline/package.json +++ b/packages/boot/cmdline/package.json @@ -27,13 +27,13 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis-plugin-loader": "workspace:*", + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "commander": "^15.0.0", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/bundle/acp-app/package.json b/packages/bundle/acp-app/package.json index f9aca81482..01b4862970 100644 --- a/packages/bundle/acp-app/package.json +++ b/packages/bundle/acp-app/package.json @@ -39,10 +39,10 @@ "commander": "^15.0.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/bundle/base/package.json b/packages/bundle/base/package.json index abe58f9588..5a6e059e55 100644 --- a/packages/bundle/base/package.json +++ b/packages/bundle/base/package.json @@ -34,8 +34,8 @@ } }, "dependencies": { - "@deepseek-ai/cordis-plugin-hmr": "workspace:^", - "@deepseek-ai/cordis-plugin-timer": "workspace:^", + "@deepseek-ai/cordis-plugin-hmr": "workspace:*", + "@deepseek-ai/cordis-plugin-timer": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", @@ -120,9 +120,9 @@ "@deepseek-ai/dsh-agent-instructions": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/bundle/headless/package.json b/packages/bundle/headless/package.json index 5d7042c166..46b1f112f4 100644 --- a/packages/bundle/headless/package.json +++ b/packages/bundle/headless/package.json @@ -43,20 +43,20 @@ "@deepseek-ai/dsh-cmdline": "workspace:^", "@deepseek-ai/dsh-code-runtime-worker-thread": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "commander": "^15.0.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", diff --git a/packages/bundle/sdk-app/package.json b/packages/bundle/sdk-app/package.json index 974b60623a..20f002c9a4 100644 --- a/packages/bundle/sdk-app/package.json +++ b/packages/bundle/sdk-app/package.json @@ -36,14 +36,14 @@ "dependencies": { "@deepseek-ai/dsh-cmdline": "workspace:^", "@deepseek-ai/dsh-sdk-jsonrpc-server": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "commander": "^15.0.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/bundle/sdk-minimal/package.json b/packages/bundle/sdk-minimal/package.json index bd32a131f0..5208226eac 100644 --- a/packages/bundle/sdk-minimal/package.json +++ b/packages/bundle/sdk-minimal/package.json @@ -34,7 +34,7 @@ } }, "dependencies": { - "@deepseek-ai/cordis-plugin-timer": "workspace:^", + "@deepseek-ai/cordis-plugin-timer": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", @@ -63,9 +63,9 @@ "@deepseek-ai/dsh-tools": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/bundle/web-app/package.json b/packages/bundle/web-app/package.json index 3498cb6761..2392881d50 100644 --- a/packages/bundle/web-app/package.json +++ b/packages/bundle/web-app/package.json @@ -116,19 +116,19 @@ "@deepseek-ai/dsh-tool-subagent": "workspace:^", "@deepseek-ai/dsh-web-frontend": "workspace:^", "@deepseek-ai/dsh-workspace": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "commander": "^15.0.0", "open": "^11.0.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-shell-env": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-shell-env": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^" } diff --git a/packages/client/connection/package.json b/packages/client/connection/package.json index 4732dcdd71..dab23d2d88 100644 --- a/packages/client/connection/package.json +++ b/packages/client/connection/package.json @@ -35,7 +35,7 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-credentials": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "files": [ @@ -44,10 +44,10 @@ "lib/types/**/*.d.ts" ], "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", diff --git a/packages/client/file-upload/package.json b/packages/client/file-upload/package.json index 5c606edbc5..0b3f35d369 100644 --- a/packages/client/file-upload/package.json +++ b/packages/client/file-upload/package.json @@ -67,11 +67,11 @@ "@deepseek-ai/dsh-brand": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-scope": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-commands": "workspace:^", diff --git a/packages/client/hmr/package.json b/packages/client/hmr/package.json index 3c5f0a3cbd..05ab26abea 100644 --- a/packages/client/hmr/package.json +++ b/packages/client/hmr/package.json @@ -38,17 +38,17 @@ }, "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-modules": "workspace:^", "@deepseek-ai/dsh-host-webserver": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "files": [ "lib/index.js", diff --git a/packages/client/locale/package.json b/packages/client/locale/package.json index 4245200191..bf980b6fb9 100644 --- a/packages/client/locale/package.json +++ b/packages/client/locale/package.json @@ -39,10 +39,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", "@deepseek-ai/dsh-client-test-runtime": "workspace:^", @@ -56,7 +56,7 @@ "@deepseek-ai/dsh-settings": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "files": [ "lib/index.js", diff --git a/packages/client/modules/package.json b/packages/client/modules/package.json index 06ee59bb3e..ed5f826661 100644 --- a/packages/client/modules/package.json +++ b/packages/client/modules/package.json @@ -42,10 +42,10 @@ }, "license": "MIT", "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-host-webserver": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-package-manifest": "workspace:^" }, "files": [ @@ -55,6 +55,6 @@ "lib/types/**/*.d.ts" ], "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/client/resources/package.json b/packages/client/resources/package.json index dd6b9baa2f..689f352ede 100644 --- a/packages/client/resources/package.json +++ b/packages/client/resources/package.json @@ -39,10 +39,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-client-store": "workspace:^", "@deepseek-ai/dsh-client-test-runtime": "workspace:^", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", diff --git a/packages/client/store/package.json b/packages/client/store/package.json index 59325a1517..00bc212768 100644 --- a/packages/client/store/package.json +++ b/packages/client/store/package.json @@ -23,10 +23,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "zustand": "~4.4.7", "immer": "^10.1.1" }, diff --git a/packages/client/ui-agent-preset/package.json b/packages/client/ui-agent-preset/package.json index 2dce990410..6d072209e3 100644 --- a/packages/client/ui-agent-preset/package.json +++ b/packages/client/ui-agent-preset/package.json @@ -46,7 +46,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -62,7 +62,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", "@deepseek-ai/dsh-client-ui-session": "workspace:^", diff --git a/packages/client/ui-approval/package.json b/packages/client/ui-approval/package.json index 765176239f..86ecffb2ff 100644 --- a/packages/client/ui-approval/package.json +++ b/packages/client/ui-approval/package.json @@ -44,10 +44,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", diff --git a/packages/client/ui-attachment/package.json b/packages/client/ui-attachment/package.json index f994246609..6e19205536 100644 --- a/packages/client/ui-attachment/package.json +++ b/packages/client/ui-attachment/package.json @@ -43,7 +43,7 @@ }, "license": "MIT", "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", "@deepseek-ai/dsh-client-ui-chat": "workspace:^", @@ -64,6 +64,6 @@ "lib/types/**/*.d.ts" ], "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/client/ui-brand-official/package.json b/packages/client/ui-brand-official/package.json index 1113b8a013..6a1af745e0 100644 --- a/packages/client/ui-brand-official/package.json +++ b/packages/client/ui-brand-official/package.json @@ -40,13 +40,13 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-client-ui-primitives": "workspace:^", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", "@deepseek-ai/dsh-client-ui-sidebar": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", "react": "^18.2.0", diff --git a/packages/client/ui-chat/package.json b/packages/client/ui-chat/package.json index 4fc9f35f4d..f62bf82962 100644 --- a/packages/client/ui-chat/package.json +++ b/packages/client/ui-chat/package.json @@ -48,10 +48,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-session-controller": "workspace:^", @@ -88,7 +88,7 @@ "react-dom": "^18.2.0" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "files": [ "lib/index.js", diff --git a/packages/client/ui-commands/package.json b/packages/client/ui-commands/package.json index f3313850a3..a058e1b14f 100644 --- a/packages/client/ui-commands/package.json +++ b/packages/client/ui-commands/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -55,7 +55,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-commands": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", diff --git a/packages/client/ui-conversation/package.json b/packages/client/ui-conversation/package.json index 060d2a0611..8628f0b603 100644 --- a/packages/client/ui-conversation/package.json +++ b/packages/client/ui-conversation/package.json @@ -46,13 +46,13 @@ }, "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-api-workspace-controller": "workspace:^", diff --git a/packages/client/ui-deliverables/package.json b/packages/client/ui-deliverables/package.json index 676e3569fd..f9160c942e 100644 --- a/packages/client/ui-deliverables/package.json +++ b/packages/client/ui-deliverables/package.json @@ -45,7 +45,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -58,7 +58,7 @@ "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-client-ui-primitives": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", diff --git a/packages/client/ui-directory-picker-browse/package.json b/packages/client/ui-directory-picker-browse/package.json index 019e02f3fe..24cfcb3575 100644 --- a/packages/client/ui-directory-picker-browse/package.json +++ b/packages/client/ui-directory-picker-browse/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -54,7 +54,7 @@ "@deepseek-ai/dsh-client-ui-workspace": "workspace:^", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "clsx": "^2.0.0" diff --git a/packages/client/ui-directory-picker-native/package.json b/packages/client/ui-directory-picker-native/package.json index e984a73db2..7ed364f0ce 100644 --- a/packages/client/ui-directory-picker-native/package.json +++ b/packages/client/ui-directory-picker-native/package.json @@ -40,14 +40,14 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", "@deepseek-ai/dsh-client-ui-workspace": "workspace:^", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/client/ui-dockkit/package.json b/packages/client/ui-dockkit/package.json index 570cdebef4..d64cb583b8 100644 --- a/packages/client/ui-dockkit/package.json +++ b/packages/client/ui-dockkit/package.json @@ -23,7 +23,7 @@ }, "license": "MIT", "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-client-ui-primitives": "workspace:^", "@testing-library/react": "^16.1.0", @@ -39,6 +39,6 @@ "lib/types/**/*.d.ts" ], "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/client/ui-goal/package.json b/packages/client/ui-goal/package.json index b59be8fb9a..371fc27b12 100644 --- a/packages/client/ui-goal/package.json +++ b/packages/client/ui-goal/package.json @@ -45,7 +45,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -62,7 +62,7 @@ "@deepseek-ai/dsh-goal": "workspace:^", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "@deepseek-ai/dsh-session": "workspace:^", diff --git a/packages/client/ui-input-trigger/package.json b/packages/client/ui-input-trigger/package.json index 4cf4959203..4af96ec488 100644 --- a/packages/client/ui-input-trigger/package.json +++ b/packages/client/ui-input-trigger/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-client-locale": "workspace:^", @@ -52,7 +52,7 @@ "@deepseek-ai/dsh-client-ui-primitives": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-file-reference": "workspace:^", "@deepseek-ai/dsh-api-session-controller": "workspace:^", diff --git a/packages/client/ui-jobs/package.json b/packages/client/ui-jobs/package.json index d36767585b..e6668f556c 100644 --- a/packages/client/ui-jobs/package.json +++ b/packages/client/ui-jobs/package.json @@ -41,7 +41,7 @@ "access": "public" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-client-locale": "workspace:^", @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-client-ui-primitives": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", diff --git a/packages/client/ui-layout/package.json b/packages/client/ui-layout/package.json index 5c56f8dfe9..7ab0b24dcf 100644 --- a/packages/client/ui-layout/package.json +++ b/packages/client/ui-layout/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", @@ -53,7 +53,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-client-ui-theme": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0" }, "files": [ diff --git a/packages/client/ui-message-feedback/package.json b/packages/client/ui-message-feedback/package.json index 051353d43f..c589cd4c23 100644 --- a/packages/client/ui-message-feedback/package.json +++ b/packages/client/ui-message-feedback/package.json @@ -43,7 +43,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -57,7 +57,7 @@ "@deepseek-ai/dsh-message-feedback": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", diff --git a/packages/client/ui-model-selection/package.json b/packages/client/ui-model-selection/package.json index bf37cfed12..463be8cc2d 100644 --- a/packages/client/ui-model-selection/package.json +++ b/packages/client/ui-model-selection/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -56,7 +56,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "@types/react-dom": "~18.3.0", diff --git a/packages/client/ui-open-in-app/package.json b/packages/client/ui-open-in-app/package.json index 923abdf40e..0c726ef252 100644 --- a/packages/client/ui-open-in-app/package.json +++ b/packages/client/ui-open-in-app/package.json @@ -47,10 +47,10 @@ } }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", diff --git a/packages/client/ui-permission-presets/package.json b/packages/client/ui-permission-presets/package.json index d96960bb15..21aaaba411 100644 --- a/packages/client/ui-permission-presets/package.json +++ b/packages/client/ui-permission-presets/package.json @@ -43,10 +43,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", diff --git a/packages/client/ui-plan/package.json b/packages/client/ui-plan/package.json index 49d6f41358..596adb6ee0 100644 --- a/packages/client/ui-plan/package.json +++ b/packages/client/ui-plan/package.json @@ -41,7 +41,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -52,7 +52,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-plan-mode": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", diff --git a/packages/client/ui-primitives/package.json b/packages/client/ui-primitives/package.json index 4c02a1ced6..70f7fba6cb 100644 --- a/packages/client/ui-primitives/package.json +++ b/packages/client/ui-primitives/package.json @@ -25,7 +25,7 @@ "devDependencies": { "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "clsx": "^2.0.0", "react-dom": "^18.2.0", @@ -53,6 +53,6 @@ "lib/types/**/*.d.ts" ], "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/client/ui-reference/package.json b/packages/client/ui-reference/package.json index 84dd09e631..4c00e9d339 100644 --- a/packages/client/ui-reference/package.json +++ b/packages/client/ui-reference/package.json @@ -43,7 +43,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -58,7 +58,7 @@ "@deepseek-ai/dsh-session-reference": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@deepseek-ai/dsh-util-workspace-path": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "files": [ "lib/index.js", diff --git a/packages/client/ui-renderer/package.json b/packages/client/ui-renderer/package.json index 17edf34172..99272ba2ea 100644 --- a/packages/client/ui-renderer/package.json +++ b/packages/client/ui-renderer/package.json @@ -41,10 +41,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-client-test-runtime": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", diff --git a/packages/client/ui-schedule/package.json b/packages/client/ui-schedule/package.json index b4717e39a2..a0f43a1da0 100644 --- a/packages/client/ui-schedule/package.json +++ b/packages/client/ui-schedule/package.json @@ -41,7 +41,7 @@ "access": "public" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-session-controller": "workspace:^", @@ -57,7 +57,7 @@ "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/client/ui-session/package.json b/packages/client/ui-session/package.json index e7943cbdbf..c4430b80df 100644 --- a/packages/client/ui-session/package.json +++ b/packages/client/ui-session/package.json @@ -40,10 +40,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", diff --git a/packages/client/ui-settings-general/package.json b/packages/client/ui-settings-general/package.json index 62ea8b087d..2c4ce21271 100644 --- a/packages/client/ui-settings-general/package.json +++ b/packages/client/ui-settings-general/package.json @@ -43,10 +43,10 @@ }, "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -58,7 +58,7 @@ "@deepseek-ai/dsh-client-ui-settings": "workspace:^", "@deepseek-ai/dsh-client-ui-sidebar": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@types/react": "~18.3.1", "react": "^18.2.0", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", diff --git a/packages/client/ui-settings-models/package.json b/packages/client/ui-settings-models/package.json index a44acf6333..b8195de272 100644 --- a/packages/client/ui-settings-models/package.json +++ b/packages/client/ui-settings-models/package.json @@ -41,7 +41,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -52,7 +52,7 @@ "@deepseek-ai/dsh-client-ui-settings": "workspace:^", "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^" diff --git a/packages/client/ui-settings-plugin-inventory/package.json b/packages/client/ui-settings-plugin-inventory/package.json index a0e43dbaa4..f7b778f8ab 100644 --- a/packages/client/ui-settings-plugin-inventory/package.json +++ b/packages/client/ui-settings-plugin-inventory/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -54,7 +54,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", diff --git a/packages/client/ui-settings-plugins/package.json b/packages/client/ui-settings-plugins/package.json index a9ee3769c3..c442b85e1d 100644 --- a/packages/client/ui-settings-plugins/package.json +++ b/packages/client/ui-settings-plugins/package.json @@ -41,10 +41,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", diff --git a/packages/client/ui-settings/package.json b/packages/client/ui-settings/package.json index d8c8fd594a..77e3121444 100644 --- a/packages/client/ui-settings/package.json +++ b/packages/client/ui-settings/package.json @@ -39,10 +39,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", "@deepseek-ai/dsh-client-test-runtime": "workspace:^", @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-settings": "workspace:^", "@types/react": "~18.3.1", "react": "^18.2.0", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@deepseek-ai/dsh-util-values": "workspace:^" }, "files": [ diff --git a/packages/client/ui-sidebar-documentpreview/package.json b/packages/client/ui-sidebar-documentpreview/package.json index c84f696313..6dff631937 100644 --- a/packages/client/ui-sidebar-documentpreview/package.json +++ b/packages/client/ui-sidebar-documentpreview/package.json @@ -43,10 +43,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-gateway": "workspace:^", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-workspace-files": "workspace:^", diff --git a/packages/client/ui-sidebar-files/package.json b/packages/client/ui-sidebar-files/package.json index c9b0f30663..2da4742959 100644 --- a/packages/client/ui-sidebar-files/package.json +++ b/packages/client/ui-sidebar-files/package.json @@ -42,10 +42,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-workspace-files": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", diff --git a/packages/client/ui-sidebar-right/package.json b/packages/client/ui-sidebar-right/package.json index 05c813fcc2..ab8a79d601 100644 --- a/packages/client/ui-sidebar-right/package.json +++ b/packages/client/ui-sidebar-right/package.json @@ -43,10 +43,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-session-controller": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", "@deepseek-ai/dsh-client-resources": "workspace:^", diff --git a/packages/client/ui-sidebar/package.json b/packages/client/ui-sidebar/package.json index e3329d2ad5..c15eb7aa15 100644 --- a/packages/client/ui-sidebar/package.json +++ b/packages/client/ui-sidebar/package.json @@ -44,7 +44,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-workspace-controller": "workspace:^", @@ -58,7 +58,7 @@ "@deepseek-ai/dsh-client-ui-session": "workspace:^", "@deepseek-ai/dsh-client-ui-workspace": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "clsx": "^2.0.0" }, diff --git a/packages/client/ui-skill/package.json b/packages/client/ui-skill/package.json index 312000f453..faad887629 100644 --- a/packages/client/ui-skill/package.json +++ b/packages/client/ui-skill/package.json @@ -44,7 +44,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -60,7 +60,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/client/ui-slots/package.json b/packages/client/ui-slots/package.json index aa3ea2b5db..c4e442da26 100644 --- a/packages/client/ui-slots/package.json +++ b/packages/client/ui-slots/package.json @@ -25,13 +25,13 @@ "devDependencies": { "@deepseek-ai/dsh-client-store": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "files": [ "lib/index.js", "lib/types/**/*.d.ts" ], "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/client/ui-subagent/package.json b/packages/client/ui-subagent/package.json index 013105cce6..a25900dea8 100644 --- a/packages/client/ui-subagent/package.json +++ b/packages/client/ui-subagent/package.json @@ -43,7 +43,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-client-locale": "workspace:^", @@ -56,7 +56,7 @@ "@deepseek-ai/dsh-token-meter": "workspace:^", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "@deepseek-ai/dsh-api-session-controller": "workspace:^", diff --git a/packages/client/ui-theme/package.json b/packages/client/ui-theme/package.json index 5a7a7fb249..eca96065c0 100644 --- a/packages/client/ui-theme/package.json +++ b/packages/client/ui-theme/package.json @@ -40,10 +40,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", @@ -70,6 +70,6 @@ "watch": "tsdown --watch" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" } } diff --git a/packages/client/ui-tool/package.json b/packages/client/ui-tool/package.json index 8e2770e323..11ddae1f81 100644 --- a/packages/client/ui-tool/package.json +++ b/packages/client/ui-tool/package.json @@ -42,7 +42,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-spill-policy": "workspace:^", @@ -53,7 +53,7 @@ "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-spill": "workspace:^", "@deepseek-ai/dsh-code-runtime-worker-thread": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-client-locale": "workspace:^", diff --git a/packages/client/ui-trajectory/package.json b/packages/client/ui-trajectory/package.json index 6eb6fc741f..32e664d600 100644 --- a/packages/client/ui-trajectory/package.json +++ b/packages/client/ui-trajectory/package.json @@ -43,7 +43,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -56,7 +56,7 @@ "@deepseek-ai/dsh-tools": "workspace:^", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "@deepseek-ai/dsh-client-store": "workspace:^", diff --git a/packages/client/ui-user-questions/package.json b/packages/client/ui-user-questions/package.json index 43a56f951a..2c8e881b99 100644 --- a/packages/client/ui-user-questions/package.json +++ b/packages/client/ui-user-questions/package.json @@ -44,10 +44,10 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-api-session-controller": "workspace:^", diff --git a/packages/client/ui-workflow-run/package.json b/packages/client/ui-workflow-run/package.json index ac5afa61bf..98a545b350 100644 --- a/packages/client/ui-workflow-run/package.json +++ b/packages/client/ui-workflow-run/package.json @@ -49,7 +49,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-session-controller": "workspace:^", @@ -66,7 +66,7 @@ "@deepseek-ai/dsh-tool-workflow": "workspace:^", "@deepseek-ai/dsh-workflow": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0" } } diff --git a/packages/client/ui-workspace/package.json b/packages/client/ui-workspace/package.json index 086992fd19..96f844a25b 100644 --- a/packages/client/ui-workspace/package.json +++ b/packages/client/ui-workspace/package.json @@ -48,7 +48,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -70,7 +70,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-util-workspace-path": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "clsx": "^2.0.0" }, diff --git a/packages/client/web/package.json b/packages/client/web/package.json index 4b84e01cf3..07f0783d0f 100644 --- a/packages/client/web/package.json +++ b/packages/client/web/package.json @@ -23,7 +23,7 @@ }, "license": "MIT", "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-modules": "workspace:^", "@deepseek-ai/dsh-client-store": "workspace:^", "@deepseek-ai/dsh-client-ui-dockkit": "workspace:^", @@ -32,13 +32,13 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^6.0.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "files": [ "lib/index.js", diff --git a/packages/code-runtime/code-runtime-worker-thread/package.json b/packages/code-runtime/code-runtime-worker-thread/package.json index 5f18cafa8b..9491b8e996 100644 --- a/packages/code-runtime/code-runtime-worker-thread/package.json +++ b/packages/code-runtime/code-runtime-worker-thread/package.json @@ -31,17 +31,17 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-code-runtime": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^" }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-code-runtime": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^" diff --git a/packages/code-runtime/code-runtime/package.json b/packages/code-runtime/code-runtime/package.json index 7e31f4998e..070c598183 100644 --- a/packages/code-runtime/code-runtime/package.json +++ b/packages/code-runtime/code-runtime/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/compaction/command-compact/package.json b/packages/compaction/command-compact/package.json index ac4c49b3b6..de807314c1 100644 --- a/packages/compaction/command-compact/package.json +++ b/packages/compaction/command-compact/package.json @@ -29,16 +29,16 @@ "peerDependencies": { "@deepseek-ai/dsh-commands": "workspace:^", "@deepseek-ai/dsh-compaction": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-commands": "workspace:^", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/compaction/compaction-basic/package.json b/packages/compaction/compaction-basic/package.json index 82f980e727..60eac2756d 100644 --- a/packages/compaction/compaction-basic/package.json +++ b/packages/compaction/compaction-basic/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-commands": "workspace:^", "@deepseek-ai/dsh-compaction": "workspace:^", @@ -43,12 +43,12 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/compaction/compaction-tool-result-pruner/package.json b/packages/compaction/compaction-tool-result-pruner/package.json index 93eedeba7f..d163cc7f2b 100644 --- a/packages/compaction/compaction-tool-result-pruner/package.json +++ b/packages/compaction/compaction-tool-result-pruner/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -35,12 +35,12 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/compaction/compaction/package.json b/packages/compaction/compaction/package.json index 4382613ca4..8d21374edb 100644 --- a/packages/compaction/compaction/package.json +++ b/packages/compaction/compaction/package.json @@ -46,7 +46,7 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", @@ -54,6 +54,6 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/context/agent-instructions/package.json b/packages/context/agent-instructions/package.json index 7fa0bba69e..1531f9a2b3 100644 --- a/packages/context/agent-instructions/package.json +++ b/packages/context/agent-instructions/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", @@ -38,11 +38,11 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/context/file-reference-local/package.json b/packages/context/file-reference-local/package.json index 998c6e2e52..90b4656d9f 100644 --- a/packages/context/file-reference-local/package.json +++ b/packages/context/file-reference-local/package.json @@ -32,20 +32,20 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-file-reference": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-file-reference": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/context/file-reference/package.json b/packages/context/file-reference/package.json index abc2a1cc2a..f0334f1da6 100644 --- a/packages/context/file-reference/package.json +++ b/packages/context/file-reference/package.json @@ -37,10 +37,10 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/context/session-reference/package.json b/packages/context/session-reference/package.json index e4e17c536b..3b89b9786e 100644 --- a/packages/context/session-reference/package.json +++ b/packages/context/session-reference/package.json @@ -46,11 +46,11 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -73,9 +73,9 @@ } }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-fs-local": "workspace:^", diff --git a/packages/context/time-context/package.json b/packages/context/time-context/package.json index 94023206a8..fcbdda6b7b 100644 --- a/packages/context/time-context/package.json +++ b/packages/context/time-context/package.json @@ -33,11 +33,11 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -45,7 +45,7 @@ "@deepseek-ai/dsh-session-projection": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/context/tmux-context/package.json b/packages/context/tmux-context/package.json index 95a04c31b9..b1021c6215 100644 --- a/packages/context/tmux-context/package.json +++ b/packages/context/tmux-context/package.json @@ -27,14 +27,14 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "devDependencies": { @@ -44,7 +44,7 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/core/agent-default-model/package.json b/packages/core/agent-default-model/package.json index 109ae3394d..ade673f6d5 100644 --- a/packages/core/agent-default-model/package.json +++ b/packages/core/agent-default-model/package.json @@ -27,18 +27,18 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/core/agent-loop/package.json b/packages/core/agent-loop/package.json index 708c7c514a..5091fddbdd 100644 --- a/packages/core/agent-loop/package.json +++ b/packages/core/agent-loop/package.json @@ -31,7 +31,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -46,11 +46,11 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm-pi-ai": "workspace:^", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", diff --git a/packages/core/agent-tool-presentation/package.json b/packages/core/agent-tool-presentation/package.json index 10109f5ef1..5bc00141ab 100644 --- a/packages/core/agent-tool-presentation/package.json +++ b/packages/core/agent-tool-presentation/package.json @@ -27,11 +27,11 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -40,6 +40,6 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/core/agent/package.json b/packages/core/agent/package.json index b34895cb88..f85e083ab8 100644 --- a/packages/core/agent/package.json +++ b/packages/core/agent/package.json @@ -45,7 +45,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", @@ -57,6 +57,6 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@deepseek-ai/dsh-typert-registry": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/core/scope/package.json b/packages/core/scope/package.json index 3ac55af4cb..268e0fdbe9 100644 --- a/packages/core/scope/package.json +++ b/packages/core/scope/package.json @@ -33,10 +33,10 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/core/session/package.json b/packages/core/session/package.json index 4f43ac08dd..4215779d0c 100644 --- a/packages/core/session/package.json +++ b/packages/core/session/package.json @@ -42,14 +42,14 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-scope": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@deepseek-ai/dsh-typert-registry": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/core/system-prompt/package.json b/packages/core/system-prompt/package.json index 0df2d6de53..8ec4194a77 100644 --- a/packages/core/system-prompt/package.json +++ b/packages/core/system-prompt/package.json @@ -35,15 +35,15 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/core/tools/package.json b/packages/core/tools/package.json index e3d6cdc3b8..0e37581818 100644 --- a/packages/core/tools/package.json +++ b/packages/core/tools/package.json @@ -41,7 +41,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-code-runtime": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", @@ -54,10 +54,10 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-code-runtime": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", diff --git a/packages/credentials/authorization/package.json b/packages/credentials/authorization/package.json index 830bdf51fe..76e5b79cef 100644 --- a/packages/credentials/authorization/package.json +++ b/packages/credentials/authorization/package.json @@ -40,12 +40,12 @@ "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/credentials/credentials-local/package.json b/packages/credentials/credentials-local/package.json index c33473e37f..c7d7d2128a 100644 --- a/packages/credentials/credentials-local/package.json +++ b/packages/credentials/credentials-local/package.json @@ -31,11 +31,11 @@ "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "chokidar": "^4.0.3", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "yaml": "^2.9.0" }, "devDependencies": { @@ -43,6 +43,6 @@ "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/credentials/credentials/package.json b/packages/credentials/credentials/package.json index 2b442b47c8..bc5c80beb8 100644 --- a/packages/credentials/credentials/package.json +++ b/packages/credentials/credentials/package.json @@ -37,11 +37,11 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-invariants": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-invariants": "workspace:^" }, "dependencies": { diff --git a/packages/e2b/e2b/package.json b/packages/e2b/e2b/package.json index 9a2bd625fc..602ed51b2c 100644 --- a/packages/e2b/e2b/package.json +++ b/packages/e2b/e2b/package.json @@ -27,15 +27,15 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "e2b": "2.29.1" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", diff --git a/packages/e2b/fs-e2b/package.json b/packages/e2b/fs-e2b/package.json index 4381fe7e86..6f989f2b8a 100644 --- a/packages/e2b/fs-e2b/package.json +++ b/packages/e2b/fs-e2b/package.json @@ -29,11 +29,11 @@ "peerDependencies": { "@deepseek-ai/dsh-e2b": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-e2b": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/e2b/subprocess-e2b/package.json b/packages/e2b/subprocess-e2b/package.json index f5824b362c..c6a7342657 100644 --- a/packages/e2b/subprocess-e2b/package.json +++ b/packages/e2b/subprocess-e2b/package.json @@ -30,15 +30,15 @@ "@deepseek-ai/dsh-e2b": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-e2b": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/experimental/agent-team-profile/package.json b/packages/experimental/agent-team-profile/package.json index 51fefe782d..1414ef126c 100644 --- a/packages/experimental/agent-team-profile/package.json +++ b/packages/experimental/agent-team-profile/package.json @@ -38,11 +38,11 @@ "@deepseek-ai/dsh-experimental-tool-agent-team": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis": "workspace:*", "js-yaml": "^4.2.0" } } diff --git a/packages/experimental/agent-team-web-profile/package.json b/packages/experimental/agent-team-web-profile/package.json index e4df1779f9..1bd3692f3e 100644 --- a/packages/experimental/agent-team-web-profile/package.json +++ b/packages/experimental/agent-team-web-profile/package.json @@ -37,11 +37,11 @@ "@deepseek-ai/dsh-experimental-client-ui-agent-team": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis": "workspace:*", "js-yaml": "^4.2.0" } } diff --git a/packages/experimental/agent-team/package.json b/packages/experimental/agent-team/package.json index b61057e3aa..c15441b1a7 100644 --- a/packages/experimental/agent-team/package.json +++ b/packages/experimental/agent-team/package.json @@ -54,11 +54,11 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -69,7 +69,7 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/experimental/client-ui-agent-team/package.json b/packages/experimental/client-ui-agent-team/package.json index 4932c980ba..563a2c7a75 100644 --- a/packages/experimental/client-ui-agent-team/package.json +++ b/packages/experimental/client-ui-agent-team/package.json @@ -57,7 +57,7 @@ "@deepseek-ai/dsh-experimental-agent-team": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -74,7 +74,7 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@testing-library/react": "^16.1.0", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react-dom": "^18.2.0" }, "files": [ diff --git a/packages/experimental/code-runtime-python/package.json b/packages/experimental/code-runtime-python/package.json index 2fb430b5a8..ceaa310bdf 100644 --- a/packages/experimental/code-runtime-python/package.json +++ b/packages/experimental/code-runtime-python/package.json @@ -26,17 +26,17 @@ "peerDependencies": { "@deepseek-ai/dsh-code-runtime": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-util-values": "workspace:^" }, "devDependencies": { "@deepseek-ai/dsh-code-runtime": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-util-values": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "private": true } diff --git a/packages/experimental/inspector/package.json b/packages/experimental/inspector/package.json index b7983de638..fe46f14acc 100644 --- a/packages/experimental/inspector/package.json +++ b/packages/experimental/inspector/package.json @@ -39,19 +39,19 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-crypto": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "ws": "^8.21.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-modules": "workspace:^", "@deepseek-ai/dsh-host-webserver": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-host-webserver": "workspace:^", "@types/ws": "^8.18.1", "playwright": "^1.49.0", diff --git a/packages/experimental/tool-agent-team/package.json b/packages/experimental/tool-agent-team/package.json index be33c259a2..7f08e60b07 100644 --- a/packages/experimental/tool-agent-team/package.json +++ b/packages/experimental/tool-agent-team/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -35,7 +35,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-experimental-agent-team": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -53,6 +53,6 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-experimental-agent-team": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/experimental/webworker-packer/package.json b/packages/experimental/webworker-packer/package.json index ca79afecb6..a98d0e2064 100644 --- a/packages/experimental/webworker-packer/package.json +++ b/packages/experimental/webworker-packer/package.json @@ -31,19 +31,19 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", "@deepseek-ai/dsh-experimental-webworker-runtime": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "js-yaml": "^4.2.0", "picomatch": "^4.0.4" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@types/js-yaml": "^4.0.9", "@types/picomatch": "^3.0.2", "@deepseek-ai/dsh-package-manifest": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/experimental/webworker-runtime/package.json b/packages/experimental/webworker-runtime/package.json index ec646a9b60..ac04c0d104 100644 --- a/packages/experimental/webworker-runtime/package.json +++ b/packages/experimental/webworker-runtime/package.json @@ -35,15 +35,15 @@ "readable-stream": "^4.7.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-client-modules": "workspace:^", "@deepseek-ai/dsh-host-webserver": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-api-gateway": "workspace:^", "@deepseek-ai/dsh-bash-sandbox": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", diff --git a/packages/extensions/cordis-client-runner/package.json b/packages/extensions/cordis-client-runner/package.json index 4b96b17335..ceb94aeaed 100644 --- a/packages/extensions/cordis-client-runner/package.json +++ b/packages/extensions/cordis-client-runner/package.json @@ -42,16 +42,16 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-api-remotes": "workspace:^", "@deepseek-ai/dsh-client-modules": "workspace:^", "@deepseek-ai/dsh-client-ui-renderer": "workspace:^", "@deepseek-ai/dsh-client-ui-theme": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "@deepseek-ai/dsh-util-values": "workspace:^" }, diff --git a/packages/extensions/cordis-host-runner/package.json b/packages/extensions/cordis-host-runner/package.json index a4578ed8c6..d8ebc413e8 100644 --- a/packages/extensions/cordis-host-runner/package.json +++ b/packages/extensions/cordis-host-runner/package.json @@ -45,11 +45,11 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -59,8 +59,8 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-timer": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-timer": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/extensions/tool-cordis/package.json b/packages/extensions/tool-cordis/package.json index 77e0883e7b..d19d0fb5ef 100644 --- a/packages/extensions/tool-cordis/package.json +++ b/packages/extensions/tool-cordis/package.json @@ -34,10 +34,10 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-cordis-host-runner": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -45,6 +45,6 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/extensions/ui-cordis/package.json b/packages/extensions/ui-cordis/package.json index 4bad5de8e9..32b78e9ed7 100644 --- a/packages/extensions/ui-cordis/package.json +++ b/packages/extensions/ui-cordis/package.json @@ -47,7 +47,7 @@ }, "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-api-remotes": "workspace:^", @@ -63,7 +63,7 @@ "@deepseek-ai/dsh-client-ui-slots": "workspace:^", "@deepseek-ai/dsh-client-ui-tool": "workspace:^", "@types/react": "~18.3.1", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0" }, "files": [ diff --git a/packages/feedback/command-feedback/package.json b/packages/feedback/command-feedback/package.json index 3b0414d813..77fb5b7fc7 100644 --- a/packages/feedback/command-feedback/package.json +++ b/packages/feedback/command-feedback/package.json @@ -47,22 +47,22 @@ "@deepseek-ai/dsh-commands": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-anonymous-user-id": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-typert-protocol": "workspace:^" }, "dependencies": { "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-commands": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-anonymous-user-id": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-typert-protocol": "workspace:^" } } diff --git a/packages/feedback/message-feedback/package.json b/packages/feedback/message-feedback/package.json index 90134101c3..abfa697159 100644 --- a/packages/feedback/message-feedback/package.json +++ b/packages/feedback/message-feedback/package.json @@ -49,23 +49,23 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-command-feedback": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-session-persistence-jsonl": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-command-feedback": "workspace:^" } } diff --git a/packages/fs/fs-local/package.json b/packages/fs/fs-local/package.json index 2a70ac51a7..56a9da2f6a 100644 --- a/packages/fs/fs-local/package.json +++ b/packages/fs/fs-local/package.json @@ -28,15 +28,15 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-fs": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "koffi": "^3.1.0", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/fs/fs-observation-policy/package.json b/packages/fs/fs-observation-policy/package.json index 978f3d0ae7..59ad5acad9 100644 --- a/packages/fs/fs-observation-policy/package.json +++ b/packages/fs/fs-observation-policy/package.json @@ -28,11 +28,11 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-fs": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/fs/fs-sandbox/package.json b/packages/fs/fs-sandbox/package.json index e1261a7f14..dc2bb684d9 100644 --- a/packages/fs/fs-sandbox/package.json +++ b/packages/fs/fs-sandbox/package.json @@ -31,14 +31,14 @@ "@deepseek-ai/dsh-fs-local": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-sandbox-policy": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-fs-local": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-sandbox-policy": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/fs/fs/package.json b/packages/fs/fs/package.json index 800220fbbb..a46cf65967 100644 --- a/packages/fs/fs/package.json +++ b/packages/fs/fs/package.json @@ -36,13 +36,13 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/fs/tool-fs-search/package.json b/packages/fs/tool-fs-search/package.json index b4bab8a8c4..20ecda599d 100644 --- a/packages/fs/tool-fs-search/package.json +++ b/packages/fs/tool-fs-search/package.json @@ -28,7 +28,7 @@ "license": "MIT", "dependencies": { "@vscode/ripgrep": "^1.18.0", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", @@ -39,7 +39,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -52,7 +52,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-scope": "workspace:^" } } diff --git a/packages/fs/tool-fs/package.json b/packages/fs/tool-fs/package.json index 3486c30fd1..03f16c0632 100644 --- a/packages/fs/tool-fs/package.json +++ b/packages/fs/tool-fs/package.json @@ -28,7 +28,7 @@ "license": "MIT", "dependencies": { "diff": "^9.0.0", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-attachment": "workspace:^", @@ -40,7 +40,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-approval": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -58,7 +58,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-approval": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-code-runtime": "workspace:^" diff --git a/packages/fs/tool-present/package.json b/packages/fs/tool-present/package.json index 18e5bb3d4a..659cea88a0 100644 --- a/packages/fs/tool-present/package.json +++ b/packages/fs/tool-present/package.json @@ -32,10 +32,10 @@ "lib/types/**/*.d.ts" ], "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -44,7 +44,7 @@ "@deepseek-ai/dsh-tools": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/fs/tool-str-replace-editor/package.json b/packages/fs/tool-str-replace-editor/package.json index 92b0be3892..e1e35a2a86 100644 --- a/packages/fs/tool-str-replace-editor/package.json +++ b/packages/fs/tool-str-replace-editor/package.json @@ -30,10 +30,10 @@ "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-sandbox-policy": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -48,7 +48,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/goal/command-goal/package.json b/packages/goal/command-goal/package.json index 1b0dfe53d3..96d36bc0ad 100644 --- a/packages/goal/command-goal/package.json +++ b/packages/goal/command-goal/package.json @@ -30,10 +30,10 @@ "@deepseek-ai/dsh-commands": "workspace:^", "@deepseek-ai/dsh-goal": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -41,7 +41,7 @@ "@deepseek-ai/dsh-goal": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/goal/goal-round-driver/package.json b/packages/goal/goal-round-driver/package.json index 6a43469b1d..9f3b170dee 100644 --- a/packages/goal/goal-round-driver/package.json +++ b/packages/goal/goal-round-driver/package.json @@ -37,7 +37,7 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -49,7 +49,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/goal/goal/package.json b/packages/goal/goal/package.json index e4664dffef..07496de265 100644 --- a/packages/goal/goal/package.json +++ b/packages/goal/goal/package.json @@ -61,10 +61,10 @@ "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { @@ -83,6 +83,6 @@ "@deepseek-ai/dsh-session-persistence-jsonl": "workspace:^", "@deepseek-ai/dsh-subprocess-local": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/goal/tool-goal/package.json b/packages/goal/tool-goal/package.json index 69f3285384..51bd83f6fd 100644 --- a/packages/goal/tool-goal/package.json +++ b/packages/goal/tool-goal/package.json @@ -33,14 +33,14 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", @@ -49,7 +49,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/guard/repeat-tool-reminder/package.json b/packages/guard/repeat-tool-reminder/package.json index e8fcc60605..64a40e0cc3 100644 --- a/packages/guard/repeat-tool-reminder/package.json +++ b/packages/guard/repeat-tool-reminder/package.json @@ -27,12 +27,12 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -41,7 +41,7 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/guard/timeout-policy/package.json b/packages/guard/timeout-policy/package.json index b7f22c3002..96481352d5 100644 --- a/packages/guard/timeout-policy/package.json +++ b/packages/guard/timeout-policy/package.json @@ -30,12 +30,12 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/hooks/hook-protocol/package.json b/packages/hooks/hook-protocol/package.json index a2400f2893..ada42c6619 100644 --- a/packages/hooks/hook-protocol/package.json +++ b/packages/hooks/hook-protocol/package.json @@ -35,12 +35,12 @@ "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/hooks/hooks-claude-code/package.json b/packages/hooks/hooks-claude-code/package.json index 1db3521903..68057a5d2e 100644 --- a/packages/hooks/hooks-claude-code/package.json +++ b/packages/hooks/hooks-claude-code/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -36,7 +36,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "devDependencies": { @@ -52,7 +52,7 @@ "@deepseek-ai/dsh-session-persistence-jsonl": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/hooks/hooks-codex/package.json b/packages/hooks/hooks-codex/package.json index 3ed5db1650..39ec414cc7 100644 --- a/packages/hooks/hooks-codex/package.json +++ b/packages/hooks/hooks-codex/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -35,7 +35,7 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "devDependencies": { @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence-jsonl": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/host/directory-picker-auto/package.json b/packages/host/directory-picker-auto/package.json index fc35b3d067..8be34c1710 100644 --- a/packages/host/directory-picker-auto/package.json +++ b/packages/host/directory-picker-auto/package.json @@ -27,8 +27,8 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-ui-directory-picker-browse": "workspace:^", "@deepseek-ai/dsh-client-ui-directory-picker-native": "workspace:^", "@deepseek-ai/dsh-host-directory-picker-browse": "workspace:^", @@ -36,9 +36,9 @@ "@deepseek-ai/dsh-host-webserver": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-ui-directory-picker-browse": "workspace:^", "@deepseek-ai/dsh-client-ui-directory-picker-native": "workspace:^", "@deepseek-ai/dsh-host-directory-picker": "workspace:^", diff --git a/packages/host/directory-picker-browse/package.json b/packages/host/directory-picker-browse/package.json index 850081c48a..6f70fe7462 100644 --- a/packages/host/directory-picker-browse/package.json +++ b/packages/host/directory-picker-browse/package.json @@ -28,12 +28,12 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-host-directory-picker": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/host/directory-picker-native/package.json b/packages/host/directory-picker-native/package.json index 36d4c902da..66c1532a9b 100644 --- a/packages/host/directory-picker-native/package.json +++ b/packages/host/directory-picker-native/package.json @@ -37,10 +37,10 @@ "koffi": "^3.1.0" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "tsx": "^4.19.2" } } diff --git a/packages/host/directory-picker/package.json b/packages/host/directory-picker/package.json index a930512ac0..78511ee411 100644 --- a/packages/host/directory-picker/package.json +++ b/packages/host/directory-picker/package.json @@ -32,9 +32,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/host/frontend-static/package.json b/packages/host/frontend-static/package.json index 3caae0efac..5b4a21dc44 100644 --- a/packages/host/frontend-static/package.json +++ b/packages/host/frontend-static/package.json @@ -29,16 +29,16 @@ "peerDependencies": { "@deepseek-ai/dsh-host-webserver": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-client-connection": "workspace:^", "@deepseek-ai/dsh-credentials-local": "workspace:^", "@deepseek-ai/dsh-host-webserver": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/host/open-in-app/package.json b/packages/host/open-in-app/package.json index 9c070ef429..0219a7cb65 100644 --- a/packages/host/open-in-app/package.json +++ b/packages/host/open-in-app/package.json @@ -39,14 +39,14 @@ "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-native-command": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-host-webserver": "workspace:^" } } diff --git a/packages/host/plugin-inventory/package.json b/packages/host/plugin-inventory/package.json index 616032b4ee..fb8aeed845 100644 --- a/packages/host/plugin-inventory/package.json +++ b/packages/host/plugin-inventory/package.json @@ -47,11 +47,11 @@ "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "peerDependenciesMeta": { "@deepseek-ai/dsh-agent-presets": { @@ -59,10 +59,10 @@ } }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/host/webserver/package.json b/packages/host/webserver/package.json index 8fbede6744..ce0ea4e673 100644 --- a/packages/host/webserver/package.json +++ b/packages/host/webserver/package.json @@ -27,15 +27,15 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "compression": "^1.8.1", "negotiator": "^1.0.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@types/compression": "^1.8.1", "@types/negotiator": "^0.6.5" } diff --git a/packages/identity/anonymous-user-id/package.json b/packages/identity/anonymous-user-id/package.json index 53d9671751..33dcaef9ee 100644 --- a/packages/identity/anonymous-user-id/package.json +++ b/packages/identity/anonymous-user-id/package.json @@ -29,11 +29,11 @@ "peerDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/interaction/commands/package.json b/packages/interaction/commands/package.json index 0be908a553..98f9010fe8 100644 --- a/packages/interaction/commands/package.json +++ b/packages/interaction/commands/package.json @@ -61,7 +61,7 @@ "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-util-crypto": "workspace:^", @@ -76,6 +76,6 @@ "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/interaction/permission-presets/package.json b/packages/interaction/permission-presets/package.json index ebba3f0f18..ad1646d1fb 100644 --- a/packages/interaction/permission-presets/package.json +++ b/packages/interaction/permission-presets/package.json @@ -50,10 +50,10 @@ "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^", "@deepseek-ai/dsh-user-approval": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { @@ -66,6 +66,6 @@ "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^", "@deepseek-ai/dsh-user-approval": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/interaction/tool-ask-user/package.json b/packages/interaction/tool-ask-user/package.json index 03efa1b837..bd82bab404 100644 --- a/packages/interaction/tool-ask-user/package.json +++ b/packages/interaction/tool-ask-user/package.json @@ -30,7 +30,7 @@ "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-questions": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -38,6 +38,6 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-questions": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/interaction/user-approval/package.json b/packages/interaction/user-approval/package.json index 6e8354834c..64a7a2be77 100644 --- a/packages/interaction/user-approval/package.json +++ b/packages/interaction/user-approval/package.json @@ -44,10 +44,10 @@ "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -57,6 +57,6 @@ "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/interaction/user-questions/package.json b/packages/interaction/user-questions/package.json index cbe8a2854b..b2a1bf8aea 100644 --- a/packages/interaction/user-questions/package.json +++ b/packages/interaction/user-questions/package.json @@ -35,12 +35,12 @@ "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/jobs/jobs-local/package.json b/packages/jobs/jobs-local/package.json index 110ba43f3e..e4d519dad8 100644 --- a/packages/jobs/jobs-local/package.json +++ b/packages/jobs/jobs-local/package.json @@ -31,14 +31,14 @@ "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", @@ -46,6 +46,6 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/jobs/jobs/package.json b/packages/jobs/jobs/package.json index ff310752ce..8da1246315 100644 --- a/packages/jobs/jobs/package.json +++ b/packages/jobs/jobs/package.json @@ -41,13 +41,13 @@ "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/jobs/tool-jobs/package.json b/packages/jobs/tool-jobs/package.json index 8c6adfb1c3..116531ef3b 100644 --- a/packages/jobs/tool-jobs/package.json +++ b/packages/jobs/tool-jobs/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -36,7 +36,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -47,6 +47,6 @@ "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-jobs-local": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/llm/deepseek-llm-api-extensions/package.json b/packages/llm/deepseek-llm-api-extensions/package.json index 88bb421385..362afd2c35 100644 --- a/packages/llm/deepseek-llm-api-extensions/package.json +++ b/packages/llm/deepseek-llm-api-extensions/package.json @@ -32,9 +32,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/llm/llm-deepseek/package.json b/packages/llm/llm-deepseek/package.json index 9db0a60fdc..d25c0f9429 100644 --- a/packages/llm/llm-deepseek/package.json +++ b/packages/llm/llm-deepseek/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-anonymous-user-id": "workspace:^", "@deepseek-ai/dsh-atomic-write": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", @@ -43,11 +43,11 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "eventsource-parser": "^3.1.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-anonymous-user-id": "workspace:^", "@deepseek-ai/dsh-atomic-write": "workspace:^", diff --git a/packages/llm/llm-pi-ai/package.json b/packages/llm/llm-pi-ai/package.json index 6a10d5a6bb..291275e245 100644 --- a/packages/llm/llm-pi-ai/package.json +++ b/packages/llm/llm-pi-ai/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-authorization": "workspace:^", "@deepseek-ai/dsh-credentials": "workspace:^", @@ -40,11 +40,11 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@earendil-works/pi-ai": "^0.85.1" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-authorization": "workspace:^", "@deepseek-ai/dsh-credentials": "workspace:^", diff --git a/packages/llm/llm-retry/package.json b/packages/llm/llm-retry/package.json index f226562e4d..7e83c7f6a7 100644 --- a/packages/llm/llm-retry/package.json +++ b/packages/llm/llm-retry/package.json @@ -42,17 +42,17 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -66,7 +66,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/llm/llm/package.json b/packages/llm/llm/package.json index 570ac9af86..486e47ea0c 100644 --- a/packages/llm/llm/package.json +++ b/packages/llm/llm/package.json @@ -61,11 +61,11 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-util-crypto": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", @@ -75,6 +75,6 @@ "devDependencies": { "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/llm/plugin-package-inventory-deepseek/package.json b/packages/llm/plugin-package-inventory-deepseek/package.json index f04bbc0539..469607d05e 100644 --- a/packages/llm/plugin-package-inventory-deepseek/package.json +++ b/packages/llm/plugin-package-inventory-deepseek/package.json @@ -33,11 +33,11 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", @@ -49,9 +49,9 @@ } }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", diff --git a/packages/llm/token-meter/package.json b/packages/llm/token-meter/package.json index 44223f3a96..e97a24ffec 100644 --- a/packages/llm/token-meter/package.json +++ b/packages/llm/token-meter/package.json @@ -32,7 +32,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-llm-retry": "workspace:^", @@ -41,11 +41,11 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-llm-retry": "workspace:^", diff --git a/packages/lsp/lsp-stdio/package.json b/packages/lsp/lsp-stdio/package.json index 6428068eb0..d0cacbce8e 100644 --- a/packages/lsp/lsp-stdio/package.json +++ b/packages/lsp/lsp-stdio/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -37,10 +37,10 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-fs-local": "workspace:^", diff --git a/packages/lsp/lsp/package.json b/packages/lsp/lsp/package.json index 4d8df70f5a..dad6904fde 100644 --- a/packages/lsp/lsp/package.json +++ b/packages/lsp/lsp/package.json @@ -29,11 +29,11 @@ "peerDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/lsp/tool-lsp/package.json b/packages/lsp/tool-lsp/package.json index f4df13c8a1..a38ba7f575 100644 --- a/packages/lsp/tool-lsp/package.json +++ b/packages/lsp/tool-lsp/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-lsp": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", @@ -36,10 +36,10 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-fs-local": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/mcp/mcp-client/package.json b/packages/mcp/mcp-client/package.json index d5573b3f94..8ec0b808e9 100644 --- a/packages/mcp/mcp-client/package.json +++ b/packages/mcp/mcp-client/package.json @@ -33,11 +33,11 @@ "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@modelcontextprotocol/sdk": "^1.12.0", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-tools": "workspace:^", "@modelcontextprotocol/server-everything": "^2026.7.4", "@modelcontextprotocol/server-filesystem": "^2026.7.4", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^" } } diff --git a/packages/plan/plan-mode/package.json b/packages/plan/plan-mode/package.json index 7d5898dacd..77c8258cfb 100644 --- a/packages/plan/plan-mode/package.json +++ b/packages/plan/plan-mode/package.json @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-questions": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "peerDependenciesMeta": { "@deepseek-ai/dsh-commands": { @@ -72,6 +72,6 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-questions": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/preset/agent-presets/package.json b/packages/preset/agent-presets/package.json index 61a2ad9f75..198e9cb3ad 100644 --- a/packages/preset/agent-presets/package.json +++ b/packages/preset/agent-presets/package.json @@ -54,8 +54,8 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-atomic-write": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", @@ -67,17 +67,17 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "js-yaml": "^4.1.0", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-group": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-group": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-atomic-write": "workspace:^", @@ -92,6 +92,6 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/preset/persona/package.json b/packages/preset/persona/package.json index ec116bd3dd..abb1f1d95f 100644 --- a/packages/preset/persona/package.json +++ b/packages/preset/persona/package.json @@ -28,14 +28,14 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/runtime-diagnostics/invariants/package.json b/packages/runtime-diagnostics/invariants/package.json index 2d10a8814f..2a58624dd3 100644 --- a/packages/runtime-diagnostics/invariants/package.json +++ b/packages/runtime-diagnostics/invariants/package.json @@ -27,12 +27,12 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/sandbox/sandbox-local/package.json b/packages/sandbox/sandbox-local/package.json index 76bf039d88..1e81d1c41e 100644 --- a/packages/sandbox/sandbox-local/package.json +++ b/packages/sandbox/sandbox-local/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^" @@ -36,10 +36,10 @@ "@deepseek-ai/dsh-sandbox-windows-acl": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", "@deepseek-ai/node-addon-system": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^" diff --git a/packages/sandbox/sandbox-policy/package.json b/packages/sandbox/sandbox-policy/package.json index 686d4266ba..88956c44aa 100644 --- a/packages/sandbox/sandbox-policy/package.json +++ b/packages/sandbox/sandbox-policy/package.json @@ -37,11 +37,11 @@ "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/sandbox/sandbox-windows-acl/package.json b/packages/sandbox/sandbox-windows-acl/package.json index b5f376607c..237fdf6c5e 100644 --- a/packages/sandbox/sandbox-windows-acl/package.json +++ b/packages/sandbox/sandbox-windows-acl/package.json @@ -33,7 +33,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-win32-process": "workspace:^", @@ -42,6 +42,6 @@ "devDependencies": { "@deepseek-ai/dsh-pwsh-local": "workspace:^", "@deepseek-ai/dsh-sandbox-local": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/sandbox/sandbox/package.json b/packages/sandbox/sandbox/package.json index 05e539d567..db96b4b4dd 100644 --- a/packages/sandbox/sandbox/package.json +++ b/packages/sandbox/sandbox/package.json @@ -27,12 +27,12 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^" }, diff --git a/packages/schedule/schedule/package.json b/packages/schedule/schedule/package.json index eb43fbbed4..9bb951f2c2 100644 --- a/packages/schedule/schedule/package.json +++ b/packages/schedule/schedule/package.json @@ -45,13 +45,13 @@ "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -64,6 +64,6 @@ "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/sdk/client/package.json b/packages/sdk/client/package.json index 272fbab849..b2f0a53b0a 100644 --- a/packages/sdk/client/package.json +++ b/packages/sdk/client/package.json @@ -32,12 +32,12 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sdk-protocol": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sdk-protocol": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/sdk/protocol/package.json b/packages/sdk/protocol/package.json index e65cf001d0..5d886f8917 100644 --- a/packages/sdk/protocol/package.json +++ b/packages/sdk/protocol/package.json @@ -29,12 +29,12 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/sdk/server/package.json b/packages/sdk/server/package.json index 56d1e7cad5..f2a67d92eb 100644 --- a/packages/sdk/server/package.json +++ b/packages/sdk/server/package.json @@ -28,10 +28,10 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -42,8 +42,8 @@ "@deepseek-ai/dsh-subagent": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/session-query/session-log-export/package.json b/packages/session-query/session-log-export/package.json index f63702c964..df74a200f6 100644 --- a/packages/session-query/session-log-export/package.json +++ b/packages/session-query/session-log-export/package.json @@ -37,18 +37,18 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-session-format": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "fflate": "^0.8.2", "@deepseek-ai/dsh-brand": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", "@deepseek-ai/dsh-client-connection": "workspace:^", diff --git a/packages/session-query/session-query-sqlite/package.json b/packages/session-query/session-query-sqlite/package.json index ed79f3840e..6c002b89b1 100644 --- a/packages/session-query/session-query-sqlite/package.json +++ b/packages/session-query/session-query-sqlite/package.json @@ -30,7 +30,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-session-query": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "peerDependenciesMeta": { "@deepseek-ai/dsh-session-persistence": { @@ -38,15 +38,15 @@ } }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-session-persistence-jsonl": "workspace:^", "@deepseek-ai/dsh-session-query": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/session-query/session-query/package.json b/packages/session-query/session-query/package.json index e383b1b413..209d8d3ae6 100644 --- a/packages/session-query/session-query/package.json +++ b/packages/session-query/session-query/package.json @@ -35,7 +35,7 @@ "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-session-projection-cache": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "peerDependenciesMeta": { "@deepseek-ai/dsh-session-persistence": { @@ -57,6 +57,6 @@ "@deepseek-ai/dsh-session-persistence": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-session-projection-cache": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session-query/tool-session-query/package.json b/packages/session-query/tool-session-query/package.json index 1ad9a77b5c..459a310a4f 100644 --- a/packages/session-query/tool-session-query/package.json +++ b/packages/session-query/tool-session-query/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -39,10 +39,10 @@ }, "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/session/session-checkpoint-policy/package.json b/packages/session/session-checkpoint-policy/package.json index a817b06e4e..ea8f06bd48 100644 --- a/packages/session/session-checkpoint-policy/package.json +++ b/packages/session/session-checkpoint-policy/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -35,8 +35,8 @@ "@deepseek-ai/dsh-tools": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/session/session-format-catalog/package.json b/packages/session/session-format-catalog/package.json index f3ea35a6c8..35c64ad7c9 100644 --- a/packages/session/session-format-catalog/package.json +++ b/packages/session/session-format-catalog/package.json @@ -33,11 +33,11 @@ "@deepseek-ai/dsh-session-format-v2-to-v3": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^" } } diff --git a/packages/session/session-format-v0-to-v1/package.json b/packages/session/session-format-v0-to-v1/package.json index ca5d77d640..237b0353ca 100644 --- a/packages/session/session-format-v0-to-v1/package.json +++ b/packages/session/session-format-v0-to-v1/package.json @@ -43,10 +43,10 @@ "@deepseek-ai/dsh-util-values": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^" } } diff --git a/packages/session/session-format-v1-to-v2/package.json b/packages/session/session-format-v1-to-v2/package.json index a44eef9856..7eff82299f 100644 --- a/packages/session/session-format-v1-to-v2/package.json +++ b/packages/session/session-format-v1-to-v2/package.json @@ -45,10 +45,10 @@ "@deepseek-ai/dsh-util-values": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^" } } diff --git a/packages/session/session-format-v2-to-v3/package.json b/packages/session/session-format-v2-to-v3/package.json index 637cd4f0fe..e893b3afa9 100644 --- a/packages/session/session-format-v2-to-v3/package.json +++ b/packages/session/session-format-v2-to-v3/package.json @@ -44,9 +44,9 @@ "@deepseek-ai/dsh-session-format-v1-to-v2": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session/session-format/package.json b/packages/session/session-format/package.json index 4eaefdbea2..d76b1d576e 100644 --- a/packages/session/session-format/package.json +++ b/packages/session/session-format/package.json @@ -30,9 +30,9 @@ "@deepseek-ai/dsh-util-values": "workspace:^" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session/session-log-deepseek/package.json b/packages/session/session-log-deepseek/package.json index 4cbdc9e4f1..94050124cc 100644 --- a/packages/session/session-log-deepseek/package.json +++ b/packages/session/session-log-deepseek/package.json @@ -39,18 +39,18 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-command-feedback": "workspace:^", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", diff --git a/packages/session/session-persistence-jsonl/package.json b/packages/session/session-persistence-jsonl/package.json index 2756ed8ebd..80df4e2342 100644 --- a/packages/session/session-persistence-jsonl/package.json +++ b/packages/session/session-persistence-jsonl/package.json @@ -30,7 +30,7 @@ "peerDependencies": { "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-llm": "workspace:^", @@ -39,12 +39,12 @@ "@deepseek-ai/dsh-session-format-v2-to-v3": "workspace:^", "@deepseek-ai/node-addon-system": "workspace:^", "koffi": "^3.1.0", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-format-v0-to-v1": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session/session-persistence/package.json b/packages/session/session-persistence/package.json index 1562f0f190..7140efbce9 100644 --- a/packages/session/session-persistence/package.json +++ b/packages/session/session-persistence/package.json @@ -27,13 +27,13 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", diff --git a/packages/session/session-projection-cache/package.json b/packages/session/session-projection-cache/package.json index bd1672e91a..8bad923651 100644 --- a/packages/session/session-projection-cache/package.json +++ b/packages/session/session-projection-cache/package.json @@ -28,17 +28,17 @@ "license": "MIT", "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-storage-domain": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-storage": "workspace:^", diff --git a/packages/session/session-projection/package.json b/packages/session/session-projection/package.json index 6f426ab889..358aa65c23 100644 --- a/packages/session/session-projection/package.json +++ b/packages/session/session-projection/package.json @@ -36,10 +36,10 @@ }, "peerDependencies": { "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session/session-stats/package.json b/packages/session/session-stats/package.json index c62eb3b449..1f0561d70c 100644 --- a/packages/session/session-stats/package.json +++ b/packages/session/session-stats/package.json @@ -39,17 +39,17 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session/session-telemetry-otel/package.json b/packages/session/session-telemetry-otel/package.json index 2da6d75acb..b3f1361173 100644 --- a/packages/session/session-telemetry-otel/package.json +++ b/packages/session/session-telemetry-otel/package.json @@ -33,7 +33,7 @@ "@opentelemetry/otlp-exporter-base": "^0.220.0", "@opentelemetry/resources": "^2.9.0", "@opentelemetry/sdk-logs": "^0.220.0", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-command-feedback": "workspace:^", @@ -42,11 +42,11 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-telemetry": "workspace:^", "@deepseek-ai/dsh-anonymous-user-id": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-logger-console": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-logger-console": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-app-boot": "workspace:^", "@deepseek-ai/dsh-bash-local": "workspace:^", "@deepseek-ai/dsh-command-feedback": "workspace:^", @@ -59,7 +59,7 @@ "@deepseek-ai/dsh-session-telemetry": "workspace:^", "@deepseek-ai/dsh-subprocess-local": "workspace:^", "@deepseek-ai/dsh-anonymous-user-id": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^" } } diff --git a/packages/session/session-telemetry/package.json b/packages/session/session-telemetry/package.json index 1278879299..de05df1d90 100644 --- a/packages/session/session-telemetry/package.json +++ b/packages/session/session-telemetry/package.json @@ -29,11 +29,11 @@ "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/session/session-title-all-prompts-llm/package.json b/packages/session/session-title-all-prompts-llm/package.json index 4ceac7914e..90417298b3 100644 --- a/packages/session/session-title-all-prompts-llm/package.json +++ b/packages/session/session-title-all-prompts-llm/package.json @@ -27,17 +27,17 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-title": "workspace:^", "@deepseek-ai/dsh-session-title-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-title": "workspace:^", "@deepseek-ai/dsh-session-title-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^" } diff --git a/packages/session/session-title-first-prompt-llm/package.json b/packages/session/session-title-first-prompt-llm/package.json index e88246e9e6..77e29c11af 100644 --- a/packages/session/session-title-first-prompt-llm/package.json +++ b/packages/session/session-title-first-prompt-llm/package.json @@ -27,20 +27,20 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-title": "workspace:^", "@deepseek-ai/dsh-session-title-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-llm-deepseek": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-title": "workspace:^", "@deepseek-ai/dsh-session-title-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^" } diff --git a/packages/session/session-title-llm/package.json b/packages/session/session-title-llm/package.json index b7eef1d212..7dc081293d 100644 --- a/packages/session/session-title-llm/package.json +++ b/packages/session/session-title-llm/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-title": "workspace:^", @@ -35,10 +35,10 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-title": "workspace:^", diff --git a/packages/session/session-title/package.json b/packages/session/session-title/package.json index a7e9894f61..2cc7a6a604 100644 --- a/packages/session/session-title/package.json +++ b/packages/session/session-title/package.json @@ -41,7 +41,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", @@ -51,11 +51,11 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", diff --git a/packages/session/session-turn-outline/package.json b/packages/session/session-turn-outline/package.json index 14153bed1f..1ea6e8cc81 100644 --- a/packages/session/session-turn-outline/package.json +++ b/packages/session/session-turn-outline/package.json @@ -36,7 +36,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^" @@ -45,9 +45,9 @@ "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^" diff --git a/packages/settings/settings-file/package.json b/packages/settings/settings-file/package.json index 6ab3a5b2b0..663c9682db 100644 --- a/packages/settings/settings-file/package.json +++ b/packages/settings/settings-file/package.json @@ -27,19 +27,19 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-atomic-write": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^" }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "chokidar": "^4.0.3", "yaml": "^2.9.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-atomic-write": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-settings": "workspace:^" diff --git a/packages/settings/settings/package.json b/packages/settings/settings/package.json index 65a086cf07..9151e92d0b 100644 --- a/packages/settings/settings/package.json +++ b/packages/settings/settings/package.json @@ -37,18 +37,18 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^" diff --git a/packages/shell/bash-local/package.json b/packages/shell/bash-local/package.json index b5ce1e5135..87ba3b08e0 100644 --- a/packages/shell/bash-local/package.json +++ b/packages/shell/bash-local/package.json @@ -30,18 +30,18 @@ "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-subprocess-local": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" } } diff --git a/packages/shell/bash-sandbox/package.json b/packages/shell/bash-sandbox/package.json index bfe649350b..7b0c17a2e4 100644 --- a/packages/shell/bash-sandbox/package.json +++ b/packages/shell/bash-sandbox/package.json @@ -31,7 +31,7 @@ "@deepseek-ai/dsh-bash-local": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-sandbox-policy": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-shell": "workspace:^", @@ -40,7 +40,7 @@ "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-sandbox-local": "workspace:^", "@deepseek-ai/dsh-sandbox-policy": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/node-addon-system": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^" } diff --git a/packages/shell/pwsh-local/package.json b/packages/shell/pwsh-local/package.json index 6925fc8509..7254df4d80 100644 --- a/packages/shell/pwsh-local/package.json +++ b/packages/shell/pwsh-local/package.json @@ -30,18 +30,18 @@ "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-subprocess-local": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" } } diff --git a/packages/shell/pwsh-sandbox/package.json b/packages/shell/pwsh-sandbox/package.json index ad46833902..be6f6fe406 100644 --- a/packages/shell/pwsh-sandbox/package.json +++ b/packages/shell/pwsh-sandbox/package.json @@ -31,7 +31,7 @@ "@deepseek-ai/dsh-pwsh-local": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", "@deepseek-ai/dsh-sandbox-policy": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-shell": "workspace:^", @@ -41,6 +41,6 @@ "@deepseek-ai/dsh-sandbox-policy": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-subprocess-local": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/shell/shell-env/package.json b/packages/shell/shell-env/package.json index ddc0df2fd2..8956952748 100644 --- a/packages/shell/shell-env/package.json +++ b/packages/shell/shell-env/package.json @@ -30,10 +30,10 @@ "@deepseek-ai/dsh-shell": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -41,6 +41,6 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/shell/shell/package.json b/packages/shell/shell/package.json index 57a8573d6b..8821c3aeb8 100644 --- a/packages/shell/shell/package.json +++ b/packages/shell/shell/package.json @@ -29,13 +29,13 @@ "peerDependencies": { "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" }, "devDependencies": { "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-sandbox": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" } } diff --git a/packages/shell/tool-bash-persistent/package.json b/packages/shell/tool-bash-persistent/package.json index 8551bd66d5..3e0a7a7a8c 100644 --- a/packages/shell/tool-bash-persistent/package.json +++ b/packages/shell/tool-bash-persistent/package.json @@ -30,14 +30,14 @@ "@deepseek-ai/dsh-terminal": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -50,7 +50,7 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/shell/tool-bash/package.json b/packages/shell/tool-bash/package.json index c6d4a937b1..d6308c9be3 100644 --- a/packages/shell/tool-bash/package.json +++ b/packages/shell/tool-bash/package.json @@ -37,10 +37,10 @@ "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-approval": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -61,7 +61,7 @@ "@deepseek-ai/dsh-tool-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-approval": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/shell/tool-pwsh-persistent/package.json b/packages/shell/tool-pwsh-persistent/package.json index ae0d009f52..6b536ee67a 100644 --- a/packages/shell/tool-pwsh-persistent/package.json +++ b/packages/shell/tool-pwsh-persistent/package.json @@ -30,14 +30,14 @@ "@deepseek-ai/dsh-terminal": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -52,6 +52,6 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/shell/tool-pwsh/package.json b/packages/shell/tool-pwsh/package.json index 30642f2ef5..455635d24d 100644 --- a/packages/shell/tool-pwsh/package.json +++ b/packages/shell/tool-pwsh/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -40,10 +40,10 @@ "@deepseek-ai/dsh-user-approval": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", diff --git a/packages/skill/skill-badge/package.json b/packages/skill/skill-badge/package.json index dc0d6728e2..4965ecb35d 100644 --- a/packages/skill/skill-badge/package.json +++ b/packages/skill/skill-badge/package.json @@ -28,10 +28,10 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-skill": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-skill": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/skill/skill-filesystem/package.json b/packages/skill/skill-filesystem/package.json index afdb646aa6..12fc7ec3b2 100644 --- a/packages/skill/skill-filesystem/package.json +++ b/packages/skill/skill-filesystem/package.json @@ -30,17 +30,17 @@ "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-skill": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "chokidar": "^5.0.0", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "yaml": "^2.4.2" }, "devDependencies": { "@deepseek-ai/dsh-fs": "workspace:^", "@deepseek-ai/dsh-home-paths": "workspace:^", "@deepseek-ai/dsh-skill": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/skill/skill/package.json b/packages/skill/skill/package.json index 01be87e133..d55f3a1897 100644 --- a/packages/skill/skill/package.json +++ b/packages/skill/skill/package.json @@ -27,16 +27,16 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^" }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-scope": "workspace:^" } diff --git a/packages/skill/tool-skill/package.json b/packages/skill/tool-skill/package.json index a12fcde6eb..b79118fbd9 100644 --- a/packages/skill/tool-skill/package.json +++ b/packages/skill/tool-skill/package.json @@ -31,10 +31,10 @@ "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-skill": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -45,6 +45,6 @@ "@deepseek-ai/dsh-skill": "workspace:^", "@deepseek-ai/dsh-skill-filesystem": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/spill/spill-local/package.json b/packages/spill/spill-local/package.json index 510acaf6b1..36bfb9cf3a 100644 --- a/packages/spill/spill-local/package.json +++ b/packages/spill/spill-local/package.json @@ -28,18 +28,18 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-spill": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-spill": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/spill/spill-policy/package.json b/packages/spill/spill-policy/package.json index e6e1dee090..88e42b054f 100644 --- a/packages/spill/spill-policy/package.json +++ b/packages/spill/spill-policy/package.json @@ -37,10 +37,10 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-spill": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -50,6 +50,6 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-spill": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/spill/spill/package.json b/packages/spill/spill/package.json index b4a3c32097..fe381277f8 100644 --- a/packages/spill/spill/package.json +++ b/packages/spill/spill/package.json @@ -30,12 +30,12 @@ "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/storage/storage-domain/package.json b/packages/storage/storage-domain/package.json index 8fe6912da9..3b322ea6dd 100644 --- a/packages/storage/storage-domain/package.json +++ b/packages/storage/storage-domain/package.json @@ -34,15 +34,15 @@ "peerDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-storage": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-storage": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/storage/storage-json/package.json b/packages/storage/storage-json/package.json index 9d21ecfec2..bf363340b4 100644 --- a/packages/storage/storage-json/package.json +++ b/packages/storage/storage-json/package.json @@ -28,13 +28,13 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-storage": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-storage": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/storage/storage-sqlite/package.json b/packages/storage/storage-sqlite/package.json index d8dfc56910..d04fad5ef1 100644 --- a/packages/storage/storage-sqlite/package.json +++ b/packages/storage/storage-sqlite/package.json @@ -28,13 +28,13 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-storage": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-storage": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/storage/storage/package.json b/packages/storage/storage/package.json index a418159f5c..30d2555ac2 100644 --- a/packages/storage/storage/package.json +++ b/packages/storage/storage/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/subagent/subagent-acp/package.json b/packages/subagent/subagent-acp/package.json index 45e0f6c99c..db33332e03 100644 --- a/packages/subagent/subagent-acp/package.json +++ b/packages/subagent/subagent-acp/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -38,11 +38,11 @@ "dependencies": { "@agentclientprotocol/sdk": "1.4.0", "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/subagent/subagent-claude-code/package.json b/packages/subagent/subagent-claude-code/package.json index 19d90f5a92..569dcb1e47 100644 --- a/packages/subagent/subagent-claude-code/package.json +++ b/packages/subagent/subagent-claude-code/package.json @@ -33,7 +33,7 @@ } }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", @@ -44,12 +44,12 @@ "@anthropic-ai/claude-agent-sdk": "0.3.263", "@anthropic-ai/sdk": "0.93.0", "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@modelcontextprotocol/sdk": "^1.29.0", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/subagent/subagent-codex/package.json b/packages/subagent/subagent-codex/package.json index c434b0b52d..847743c103 100644 --- a/packages/subagent/subagent-codex/package.json +++ b/packages/subagent/subagent-codex/package.json @@ -33,7 +33,7 @@ } }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", @@ -43,12 +43,12 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-sdk-protocol": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@openai/codex": "0.153.4" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/subagent/subagent-dsh-sdk/package.json b/packages/subagent/subagent-dsh-sdk/package.json index 1a378f53f2..2129650bf9 100644 --- a/packages/subagent/subagent-dsh-sdk/package.json +++ b/packages/subagent/subagent-dsh-sdk/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-sdk-client": "workspace:^", @@ -37,11 +37,11 @@ }, "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-instructions": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", diff --git a/packages/subagent/subagent-fork-in-process/package.json b/packages/subagent/subagent-fork-in-process/package.json index 22d147631e..507e1cd6be 100644 --- a/packages/subagent/subagent-fork-in-process/package.json +++ b/packages/subagent/subagent-fork-in-process/package.json @@ -31,13 +31,13 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-subagent-in-process-driver": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -47,7 +47,7 @@ "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-subagent-in-process-driver": "workspace:^", "@deepseek-ai/dsh-subagent-spawn-in-process": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/subagent/subagent-in-process-driver/package.json b/packages/subagent/subagent-in-process-driver/package.json index 2c3ede08bd..7c50e623de 100644 --- a/packages/subagent/subagent-in-process-driver/package.json +++ b/packages/subagent/subagent-in-process-driver/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -36,9 +36,9 @@ "@deepseek-ai/dsh-tools": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/subagent/subagent-spawn-in-process/package.json b/packages/subagent/subagent-spawn-in-process/package.json index a7c5e2f2a6..489d735a23 100644 --- a/packages/subagent/subagent-spawn-in-process/package.json +++ b/packages/subagent/subagent-spawn-in-process/package.json @@ -29,13 +29,13 @@ "peerDependencies": { "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-subagent-in-process-driver": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -49,7 +49,7 @@ "@deepseek-ai/dsh-subagent-in-process-driver": "workspace:^", "@deepseek-ai/dsh-tool-bash": "workspace:^", "@deepseek-ai/dsh-tool-subagent": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/subagent/subagent/package.json b/packages/subagent/subagent/package.json index ea19ef9c7b..91c412970d 100644 --- a/packages/subagent/subagent/package.json +++ b/packages/subagent/subagent/package.json @@ -59,7 +59,7 @@ "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", @@ -110,7 +110,7 @@ } }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", "@deepseek-ai/dsh-attachment": "workspace:^", diff --git a/packages/subagent/tool-subagent-control/package.json b/packages/subagent/tool-subagent-control/package.json index 2272a1c6a2..938bee4928 100644 --- a/packages/subagent/tool-subagent-control/package.json +++ b/packages/subagent/tool-subagent-control/package.json @@ -32,14 +32,14 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/subagent/tool-subagent/package.json b/packages/subagent/tool-subagent/package.json index aba9a126eb..ea6d41aad7 100644 --- a/packages/subagent/tool-subagent/package.json +++ b/packages/subagent/tool-subagent/package.json @@ -48,14 +48,14 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -71,7 +71,7 @@ "@deepseek-ai/dsh-jobs-local": "workspace:^", "@deepseek-ai/dsh-tool-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/subprocess/subprocess-local/package.json b/packages/subprocess/subprocess-local/package.json index e9ee873f97..9ddd44aa8c 100644 --- a/packages/subprocess/subprocess-local/package.json +++ b/packages/subprocess/subprocess-local/package.json @@ -39,7 +39,7 @@ "peerDependencies": { "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "@deepseek-ai/dsh-win32-process": "workspace:^", @@ -50,6 +50,6 @@ "@deepseek-ai/dsh-loader-smoke": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-timeout": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/subprocess/subprocess/package.json b/packages/subprocess/subprocess/package.json index f57e763bd7..86668ed669 100644 --- a/packages/subprocess/subprocess/package.json +++ b/packages/subprocess/subprocess/package.json @@ -27,11 +27,11 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^", "@deepseek-ai/dsh-launch-environment": "workspace:^" } diff --git a/packages/subprocess/win32-process/package.json b/packages/subprocess/win32-process/package.json index 0338895db5..baaa455ffd 100644 --- a/packages/subprocess/win32-process/package.json +++ b/packages/subprocess/win32-process/package.json @@ -27,12 +27,12 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "koffi": "^3.1.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/terminal/terminal-bash/package.json b/packages/terminal/terminal-bash/package.json index 619cd97da3..7dc1f47d67 100644 --- a/packages/terminal/terminal-bash/package.json +++ b/packages/terminal/terminal-bash/package.json @@ -33,12 +33,12 @@ "@deepseek-ai/dsh-sandbox-policy": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" }, "dependencies": { "@deepseek-ai/dsh-pwsh-local": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@xterm/headless": "^6.0.0" }, "devDependencies": { @@ -50,6 +50,6 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subprocess": "workspace:^", "@deepseek-ai/dsh-subprocess-local": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/terminal/terminal/package.json b/packages/terminal/terminal/package.json index 6ae9f278ee..cdd4676fc8 100644 --- a/packages/terminal/terminal/package.json +++ b/packages/terminal/terminal/package.json @@ -29,13 +29,13 @@ "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/terminal/tool-terminal/package.json b/packages/terminal/tool-terminal/package.json index b9467f6204..62f9215d9e 100644 --- a/packages/terminal/tool-terminal/package.json +++ b/packages/terminal/tool-terminal/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "peerDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -37,11 +37,11 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -57,7 +57,7 @@ "@deepseek-ai/dsh-jobs-local": "workspace:^", "@deepseek-ai/dsh-tool-jobs": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/test-support/agent-loop-testkit/package.json b/packages/test-support/agent-loop-testkit/package.json index e476648bfa..dd756655cb 100644 --- a/packages/test-support/agent-loop-testkit/package.json +++ b/packages/test-support/agent-loop-testkit/package.json @@ -34,7 +34,7 @@ "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": {}, "devDependencies": { @@ -45,6 +45,6 @@ "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/test-support/client-runtime/package.json b/packages/test-support/client-runtime/package.json index 0d6844ea6a..2b1b3d0bf2 100644 --- a/packages/test-support/client-runtime/package.json +++ b/packages/test-support/client-runtime/package.json @@ -42,7 +42,7 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-subagent": "workspace:^", "@deepseek-ai/dsh-typert-protocol": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, @@ -64,7 +64,7 @@ "@deepseek-ai/dsh-typert-protocol": "workspace:^", "@types/react": "~18.3.1", "@types/react-dom": "~18.3.0", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/test-support/llm-mock-server/package.json b/packages/test-support/llm-mock-server/package.json index 7a238460fb..eda9c672f6 100644 --- a/packages/test-support/llm-mock-server/package.json +++ b/packages/test-support/llm-mock-server/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/test-support/llm-replay/package.json b/packages/test-support/llm-replay/package.json index d3e4e4540e..245095b254 100644 --- a/packages/test-support/llm-replay/package.json +++ b/packages/test-support/llm-replay/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", @@ -39,7 +39,7 @@ } }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-compaction": "workspace:^", "@deepseek-ai/dsh-deepseek-llm-api-extensions": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/test-support/loader-smoke/package.json b/packages/test-support/loader-smoke/package.json index 7958561a39..d0bb80d2dd 100644 --- a/packages/test-support/loader-smoke/package.json +++ b/packages/test-support/loader-smoke/package.json @@ -31,14 +31,14 @@ "tsx": "^4.22.4" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-http-proxy": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-app-boot": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", diff --git a/packages/test-support/session-snapshot/package.json b/packages/test-support/session-snapshot/package.json index f3a6468992..ba37c3588f 100644 --- a/packages/test-support/session-snapshot/package.json +++ b/packages/test-support/session-snapshot/package.json @@ -36,12 +36,12 @@ "vitest": "^4.1.8" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-http-proxy": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-compaction": "workspace:^", diff --git a/packages/todo/tool-todo/package.json b/packages/todo/tool-todo/package.json index 7eb98180dd..4d57bff520 100644 --- a/packages/todo/tool-todo/package.json +++ b/packages/todo/tool-todo/package.json @@ -37,7 +37,7 @@ ], "license": "MIT", "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "zod": "^4.4.3" }, "peerDependencies": { @@ -46,11 +46,11 @@ "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-projection": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -61,6 +61,6 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-user-questions": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/typert/generator/package.json b/packages/typert/generator/package.json index ab65157347..21cf25f8e9 100644 --- a/packages/typert/generator/package.json +++ b/packages/typert/generator/package.json @@ -36,12 +36,12 @@ "typescript": "^6.0.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-tool-cordis": "workspace:^", "@deepseek-ai/dsh-typert-registry": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "zod": "^4.4.3" } } diff --git a/packages/typert/loader/package.json b/packages/typert/loader/package.json index d0873289e6..bcbb5548f8 100644 --- a/packages/typert/loader/package.json +++ b/packages/typert/loader/package.json @@ -27,17 +27,17 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-typert-registry": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-typert-registry": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "zod": "^4.4.3" } } diff --git a/packages/typert/protocol/package.json b/packages/typert/protocol/package.json index 199936fcc5..347f804f31 100644 --- a/packages/typert/protocol/package.json +++ b/packages/typert/protocol/package.json @@ -32,9 +32,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/typert/registry/package.json b/packages/typert/registry/package.json index 307410ed20..d2b9e5c60f 100644 --- a/packages/typert/registry/package.json +++ b/packages/typert/registry/package.json @@ -51,10 +51,10 @@ "zod": "^4.4.3" }, "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-typert-protocol": "workspace:^" } } diff --git a/packages/util/atomic-write/package.json b/packages/util/atomic-write/package.json index 7aa769a1ba..b805131b48 100644 --- a/packages/util/atomic-write/package.json +++ b/packages/util/atomic-write/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/brand/package.json b/packages/util/brand/package.json index b108caf9cc..e389cf15eb 100644 --- a/packages/util/brand/package.json +++ b/packages/util/brand/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/chunked-list/package.json b/packages/util/chunked-list/package.json index e93ccec925..86505ac3bc 100644 --- a/packages/util/chunked-list/package.json +++ b/packages/util/chunked-list/package.json @@ -27,10 +27,10 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "zod": "^4.4.3" diff --git a/packages/util/crypto/package.json b/packages/util/crypto/package.json index 3d1fb4e136..5ab63eb83a 100644 --- a/packages/util/crypto/package.json +++ b/packages/util/crypto/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/deque/package.json b/packages/util/deque/package.json index 37f6d8d589..d9f0a1804f 100644 --- a/packages/util/deque/package.json +++ b/packages/util/deque/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/home-paths/package.json b/packages/util/home-paths/package.json index 020b85dce1..4187d95fa2 100644 --- a/packages/util/home-paths/package.json +++ b/packages/util/home-paths/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/http-proxy/package.json b/packages/util/http-proxy/package.json index 87d0ddcc77..7a8170f50b 100644 --- a/packages/util/http-proxy/package.json +++ b/packages/util/http-proxy/package.json @@ -27,13 +27,13 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { "undici": "^8.10.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-invariants": "workspace:^" } } diff --git a/packages/util/launch-environment/package.json b/packages/util/launch-environment/package.json index 36f1f4be95..28a01033db 100644 --- a/packages/util/launch-environment/package.json +++ b/packages/util/launch-environment/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/native-command/package.json b/packages/util/native-command/package.json index 31d5770858..f4ce7b6ec2 100644 --- a/packages/util/native-command/package.json +++ b/packages/util/native-command/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/output-retention/package.json b/packages/util/output-retention/package.json index 1de1a53bd5..7048e841c1 100644 --- a/packages/util/output-retention/package.json +++ b/packages/util/output-retention/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/package-manifest/package.json b/packages/util/package-manifest/package.json index 85b8a0b1ff..c9b9121f69 100644 --- a/packages/util/package-manifest/package.json +++ b/packages/util/package-manifest/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/time/package.json b/packages/util/time/package.json index a191aa8376..81edeb6a94 100644 --- a/packages/util/time/package.json +++ b/packages/util/time/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/timeout/package.json b/packages/util/timeout/package.json index c1cbd2bae2..c5fab6aade 100644 --- a/packages/util/timeout/package.json +++ b/packages/util/timeout/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/values/package.json b/packages/util/values/package.json index b46eed22cc..af71263cbf 100644 --- a/packages/util/values/package.json +++ b/packages/util/values/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/util/workspace-path/package.json b/packages/util/workspace-path/package.json index a8dca334e3..3617c53018 100644 --- a/packages/util/workspace-path/package.json +++ b/packages/util/workspace-path/package.json @@ -27,9 +27,9 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/web/tool-web/package.json b/packages/web/tool-web/package.json index b3fe173fad..c731904124 100644 --- a/packages/web/tool-web/package.json +++ b/packages/web/tool-web/package.json @@ -27,7 +27,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", @@ -35,12 +35,12 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@joplin/turndown-plugin-gfm": "^1.0.67", "turndown": "^7.2.4" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", diff --git a/packages/web/web-fetch-http/package.json b/packages/web/web-fetch-http/package.json index 85ab4871d8..c81a828ce4 100644 --- a/packages/web/web-fetch-http/package.json +++ b/packages/web/web-fetch-http/package.json @@ -27,18 +27,18 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", "@deepseek-ai/dsh-http-proxy": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "ipaddr.js": "^2.5.0", "undici": "^8.10.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-timeout": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", "@deepseek-ai/dsh-http-proxy": "workspace:^" diff --git a/packages/web/web-search-deepseek/package.json b/packages/web/web-search-deepseek/package.json index 26eeb35a32..98853ed968 100644 --- a/packages/web/web-search-deepseek/package.json +++ b/packages/web/web-search-deepseek/package.json @@ -32,11 +32,11 @@ "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -45,7 +45,7 @@ "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-settings": "workspace:^", "@deepseek-ai/dsh-http-proxy": "workspace:^" } diff --git a/packages/web/web-search-exa/package.json b/packages/web/web-search-exa/package.json index 85bedd66d4..9e5d349579 100644 --- a/packages/web/web-search-exa/package.json +++ b/packages/web/web-search-exa/package.json @@ -29,15 +29,15 @@ "peerDependencies": { "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^" } } diff --git a/packages/web/web-search-perplexity/package.json b/packages/web/web-search-perplexity/package.json index 1e5cc82fc5..f0f7b73280 100644 --- a/packages/web/web-search-perplexity/package.json +++ b/packages/web/web-search-perplexity/package.json @@ -29,15 +29,15 @@ "peerDependencies": { "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-launch-environment": "workspace:^", "@deepseek-ai/dsh-web": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-http-proxy": "workspace:^" } } diff --git a/packages/web/web/package.json b/packages/web/web/package.json index 58fa29784a..b5e92eb755 100644 --- a/packages/web/web/package.json +++ b/packages/web/web/package.json @@ -28,13 +28,13 @@ "license": "MIT", "peerDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-llm": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/webhook/webhook-github/package.json b/packages/webhook/webhook-github/package.json index e94244a5b8..6f40c1fce7 100644 --- a/packages/webhook/webhook-github/package.json +++ b/packages/webhook/webhook-github/package.json @@ -32,7 +32,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-host-webserver": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -40,13 +40,13 @@ }, "dependencies": { "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^", + "@deepseek-ai/schemastery": "workspace:*", "@octokit/webhooks": "^14.2.0" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-credentials": "workspace:^", "@deepseek-ai/dsh-host-webserver": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", diff --git a/packages/webhook/webhook/package.json b/packages/webhook/webhook/package.json index ca075c0b3d..5f2277ba07 100644 --- a/packages/webhook/webhook/package.json +++ b/packages/webhook/webhook/package.json @@ -37,7 +37,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", @@ -49,9 +49,9 @@ "@deepseek-ai/dsh-workspace": "workspace:^" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-default-model": "workspace:^", "@deepseek-ai/dsh-agent-presets": "workspace:^", diff --git a/packages/workflow/tool-ralph/package.json b/packages/workflow/tool-ralph/package.json index 5f22369daa..70a82b6967 100644 --- a/packages/workflow/tool-ralph/package.json +++ b/packages/workflow/tool-ralph/package.json @@ -33,13 +33,13 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-workflow": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis-plugin-loader": "workspace:^", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", @@ -52,7 +52,7 @@ "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-workflow": "workspace:^", "@deepseek-ai/dsh-workflow-worker-thread": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/workflow/tool-workflow/package.json b/packages/workflow/tool-workflow/package.json index bf6b1e1c60..4115427262 100644 --- a/packages/workflow/tool-workflow/package.json +++ b/packages/workflow/tool-workflow/package.json @@ -44,10 +44,10 @@ "@deepseek-ai/dsh-system-prompt": "workspace:^", "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-workflow": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "dependencies": { - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -59,7 +59,7 @@ "@deepseek-ai/dsh-tools": "workspace:^", "@deepseek-ai/dsh-workflow": "workspace:^", "@deepseek-ai/dsh-workflow-worker-thread": "workspace:^", - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-session-projection": "workspace:^" } } diff --git a/packages/workflow/workflow-worker-thread/package.json b/packages/workflow/workflow-worker-thread/package.json index 51507b52c1..259fe7527e 100644 --- a/packages/workflow/workflow-worker-thread/package.json +++ b/packages/workflow/workflow-worker-thread/package.json @@ -32,7 +32,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", @@ -43,10 +43,10 @@ "dependencies": { "@deepseek-ai/dsh-brand": "workspace:^", "@deepseek-ai/dsh-util-values": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-agent": "workspace:^", "@deepseek-ai/dsh-agent-loop": "workspace:^", "@deepseek-ai/dsh-agent-loop-testkit": "workspace:^", diff --git a/packages/workflow/workflow/package.json b/packages/workflow/workflow/package.json index 8b958f9ceb..f1bfc1f276 100644 --- a/packages/workflow/workflow/package.json +++ b/packages/workflow/workflow/package.json @@ -42,7 +42,7 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" }, "devDependencies": { "@deepseek-ai/dsh-agent": "workspace:^", @@ -50,6 +50,6 @@ "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-llm": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", - "@deepseek-ai/cordis": "workspace:^" + "@deepseek-ai/cordis": "workspace:*" } } diff --git a/packages/workspace/workspace/package.json b/packages/workspace/workspace/package.json index 35df2dc687..b5fb6fe436 100644 --- a/packages/workspace/workspace/package.json +++ b/packages/workspace/workspace/package.json @@ -37,7 +37,7 @@ ], "license": "MIT", "peerDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", @@ -50,7 +50,7 @@ "zod": "^4.4.3" }, "devDependencies": { - "@deepseek-ai/cordis": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", "@deepseek-ai/dsh-invariants": "workspace:^", "@deepseek-ai/dsh-session": "workspace:^", "@deepseek-ai/dsh-session-persistence": "workspace:^", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be1647c24b..91f79de0d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,19 +134,19 @@ importers: apps/cli: dependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/cordis '@deepseek-ai/cordis-plugin-hmr': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/hmr '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/loader '@deepseek-ai/cordis-plugin-timer': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/timer '@deepseek-ai/dsh-acp-app': specifier: workspace:^ @@ -544,10 +544,10 @@ importers: apps/desktop-host: dependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/include '@deepseek-ai/dsh': specifier: workspace:^ @@ -586,7 +586,7 @@ importers: apps/web: devDependencies: '@deepseek-ai/cordis-plugin-group': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/group '@deepseek-ai/dsh-client-modules': specifier: workspace:^ @@ -667,7 +667,7 @@ importers: benchmarks: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -793,7 +793,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -854,7 +854,7 @@ importers: version: 8.21.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -891,7 +891,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -991,7 +991,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -1118,7 +1118,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent-presets': specifier: workspace:^ @@ -1149,7 +1149,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-gateway': specifier: workspace:^ @@ -1192,7 +1192,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-gateway': specifier: workspace:^ @@ -1222,7 +1222,7 @@ importers: packages/attachment/attachment: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -1238,7 +1238,7 @@ importers: version: 0.35.3(@types/node@22.20.0) devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-attachment': specifier: workspace:^ @@ -1263,22 +1263,22 @@ importers: version: 2.0.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-group': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/group '@deepseek-ai/cordis-plugin-hmr': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/hmr '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/cordis-plugin-timer': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/timer '@deepseek-ai/dsh-home-paths': specifier: workspace:^ @@ -1299,13 +1299,13 @@ importers: packages/boot/cmdline: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader commander: specifier: ^15.0.0 @@ -1324,19 +1324,19 @@ importers: version: 15.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include packages/bundle/base: dependencies: '@deepseek-ai/cordis-plugin-hmr': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/hmr '@deepseek-ai/cordis-plugin-timer': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/timer '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -1586,7 +1586,7 @@ importers: version: link:../../workflow/workflow-worker-thread devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/bundle/headless: @@ -1611,10 +1611,10 @@ importers: version: 15.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -1651,16 +1651,16 @@ importers: version: 15.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include packages/bundle/sdk-minimal: dependencies: '@deepseek-ai/cordis-plugin-timer': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/timer '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -1742,7 +1742,7 @@ importers: version: link:../../core/tools devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/bundle/web-app: @@ -1989,10 +1989,10 @@ importers: version: 11.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-shell-env': specifier: workspace:^ @@ -2014,7 +2014,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -2063,7 +2063,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -2097,10 +2097,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-client-modules': specifier: workspace:^ @@ -2119,7 +2119,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -2158,10 +2158,10 @@ importers: packages/client/modules: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-host-webserver': specifier: workspace:^ @@ -2176,7 +2176,7 @@ importers: packages/client/resources: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-client-store': specifier: workspace:^ @@ -2197,7 +2197,7 @@ importers: packages/client/store: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis immer: specifier: ^10.1.1 @@ -2209,7 +2209,7 @@ importers: packages/client/ui-agent-preset: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent-presets': specifier: workspace:^ @@ -2266,7 +2266,7 @@ importers: packages/client/ui-approval: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -2311,7 +2311,7 @@ importers: packages/client/ui-attachment: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-attachment': specifier: workspace:^ @@ -2356,7 +2356,7 @@ importers: packages/client/ui-brand-official: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-client-ui-primitives': specifier: workspace:^ @@ -2387,7 +2387,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -2495,7 +2495,7 @@ importers: packages/client/ui-commands: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -2556,7 +2556,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -2689,7 +2689,7 @@ importers: version: link:../../typert/protocol devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -2770,7 +2770,7 @@ importers: packages/client/ui-directory-picker-browse: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -2812,7 +2812,7 @@ importers: packages/client/ui-directory-picker-native: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-client-ui-renderer': specifier: workspace:^ @@ -2836,7 +2836,7 @@ importers: packages/client/ui-dockkit: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -2866,7 +2866,7 @@ importers: packages/client/ui-goal: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -2926,7 +2926,7 @@ importers: packages/client/ui-input-trigger: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -2974,7 +2974,7 @@ importers: packages/client/ui-jobs: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -3010,7 +3010,7 @@ importers: packages/client/ui-layout: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -3043,7 +3043,7 @@ importers: packages/client/ui-message-feedback: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3112,7 +3112,7 @@ importers: packages/client/ui-model-selection: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3175,7 +3175,7 @@ importers: packages/client/ui-open-in-app: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -3220,7 +3220,7 @@ importers: packages/client/ui-permission-presets: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3271,7 +3271,7 @@ importers: packages/client/ui-plan: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3313,7 +3313,7 @@ importers: packages/client/ui-primitives: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@shikijs/langs': specifier: ^4.3.1 @@ -3385,7 +3385,7 @@ importers: packages/client/ui-reference: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3427,7 +3427,7 @@ importers: packages/client/ui-renderer: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-client-test-runtime': specifier: workspace:^ @@ -3460,7 +3460,7 @@ importers: packages/client/ui-schedule: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -3511,7 +3511,7 @@ importers: packages/client/ui-session: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -3538,7 +3538,7 @@ importers: packages/client/ui-settings: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3575,7 +3575,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3626,7 +3626,7 @@ importers: packages/client/ui-settings-models: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3665,7 +3665,7 @@ importers: packages/client/ui-settings-plugin-inventory: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent-presets': specifier: workspace:^ @@ -3710,7 +3710,7 @@ importers: packages/client/ui-settings-plugins: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3749,7 +3749,7 @@ importers: packages/client/ui-sidebar: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-workspace-controller': specifier: workspace:^ @@ -3794,7 +3794,7 @@ importers: packages/client/ui-sidebar-documentpreview: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-gateway': specifier: workspace:^ @@ -3866,7 +3866,7 @@ importers: packages/client/ui-sidebar-files: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -3929,7 +3929,7 @@ importers: packages/client/ui-sidebar-right: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -3998,7 +3998,7 @@ importers: packages/client/ui-skill: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -4049,7 +4049,7 @@ importers: packages/client/ui-slots: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-client-store': specifier: workspace:^ @@ -4061,7 +4061,7 @@ importers: packages/client/ui-subagent: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -4122,7 +4122,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -4170,7 +4170,7 @@ importers: packages/client/ui-tool: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4254,7 +4254,7 @@ importers: packages/client/ui-trajectory: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4326,7 +4326,7 @@ importers: packages/client/ui-user-questions: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4389,7 +4389,7 @@ importers: packages/client/ui-workflow-run: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -4440,7 +4440,7 @@ importers: packages/client/ui-workspace: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -4509,10 +4509,10 @@ importers: packages/client/web: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-client-modules': specifier: workspace:^ @@ -4551,7 +4551,7 @@ importers: packages/code-runtime/code-runtime: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/code-runtime/code-runtime-worker-thread: @@ -4564,7 +4564,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-code-runtime': specifier: workspace:^ @@ -4579,13 +4579,13 @@ importers: packages/compaction/command-compact: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4606,7 +4606,7 @@ importers: packages/compaction/compaction: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -4634,13 +4634,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4692,13 +4692,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-compaction': specifier: workspace:^ @@ -4729,10 +4729,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4777,7 +4777,7 @@ importers: packages/context/file-reference: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4790,7 +4790,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4821,13 +4821,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4894,7 +4894,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4952,7 +4952,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -4979,7 +4979,7 @@ importers: packages/core/agent: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -5016,7 +5016,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5044,7 +5044,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5090,7 +5090,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5114,7 +5114,7 @@ importers: packages/core/scope: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -5133,7 +5133,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -5155,7 +5155,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -5180,7 +5180,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5213,7 +5213,7 @@ importers: packages/credentials/authorization: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-credentials': specifier: workspace:^ @@ -5232,7 +5232,7 @@ importers: version: link:../../util/brand devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -5251,7 +5251,7 @@ importers: version: 2.9.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-atomic-write': specifier: workspace:^ @@ -5276,7 +5276,7 @@ importers: version: 2.29.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5330,7 +5330,7 @@ importers: packages/e2b/fs-e2b: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-e2b': specifier: workspace:^ @@ -5346,7 +5346,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-e2b': specifier: workspace:^ @@ -5371,7 +5371,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5426,10 +5426,10 @@ importers: version: link:../tool-agent-team devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include js-yaml: specifier: ^4.2.0 @@ -5442,10 +5442,10 @@ importers: version: link:../client-ui-agent-team devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include js-yaml: specifier: ^4.2.0 @@ -5458,7 +5458,7 @@ importers: version: 18.3.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -5513,7 +5513,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-code-runtime': specifier: workspace:^ @@ -5544,13 +5544,13 @@ importers: version: 8.21.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-host-webserver': specifier: workspace:^ @@ -5572,7 +5572,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5623,7 +5623,7 @@ importers: packages/experimental/webworker-packer: dependencies: '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/dsh-experimental-webworker-runtime': specifier: workspace:^ @@ -5639,7 +5639,7 @@ importers: version: 4.0.4 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-package-manifest': specifier: workspace:^ @@ -5676,10 +5676,10 @@ importers: version: 4.7.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-api-gateway': specifier: workspace:^ @@ -5736,10 +5736,10 @@ importers: packages/extensions/cordis-client-runner: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -5776,10 +5776,10 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-timer': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/timer '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5806,10 +5806,10 @@ importers: packages/extensions/tool-cordis: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5836,7 +5836,7 @@ importers: packages/extensions/ui-cordis: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-remotes': specifier: workspace:^ @@ -5888,13 +5888,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -5928,13 +5928,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -5961,7 +5961,7 @@ importers: packages/fs/fs: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -5986,7 +5986,7 @@ importers: version: 3.1.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-fs': specifier: workspace:^ @@ -5998,7 +5998,7 @@ importers: packages/fs/fs-observation-policy: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-fs': specifier: workspace:^ @@ -6010,7 +6010,7 @@ importers: packages/fs/fs-sandbox: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-fs': specifier: workspace:^ @@ -6038,7 +6038,7 @@ importers: version: 9.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6105,7 +6105,7 @@ importers: version: 1.18.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6148,7 +6148,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6191,7 +6191,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6236,10 +6236,10 @@ importers: packages/goal/command-goal: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6276,7 +6276,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6327,7 +6327,7 @@ importers: packages/goal/goal-round-driver: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6367,10 +6367,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6407,7 +6407,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6434,7 +6434,7 @@ importers: packages/guard/timeout-policy: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -6449,7 +6449,7 @@ importers: packages/hooks/hook-protocol: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -6468,7 +6468,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6517,7 +6517,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6559,7 +6559,7 @@ importers: packages/host/directory-picker: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/host/directory-picker-auto: @@ -6569,13 +6569,13 @@ importers: version: link:../../util/launch-environment devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-client-ui-directory-picker-browse': specifier: workspace:^ @@ -6606,7 +6606,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/host/directory-picker-native: @@ -6622,7 +6622,7 @@ importers: version: 3.1.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis tsx: specifier: ^4.19.2 @@ -6635,10 +6635,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-client-connection': specifier: workspace:^ @@ -6666,10 +6666,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-host-webserver': specifier: workspace:^ @@ -6682,10 +6682,10 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent-presets': specifier: workspace:^ @@ -6710,7 +6710,7 @@ importers: version: 1.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@types/compression': specifier: ^1.8.1 @@ -6722,7 +6722,7 @@ importers: packages/identity/anonymous-user-id: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -6741,7 +6741,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6778,7 +6778,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-commands': specifier: workspace:^ @@ -6811,7 +6811,7 @@ importers: packages/interaction/tool-ask-user: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6836,7 +6836,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6863,7 +6863,7 @@ importers: packages/interaction/user-questions: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6878,7 +6878,7 @@ importers: packages/jobs/jobs: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6900,13 +6900,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6937,7 +6937,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -6967,7 +6967,7 @@ importers: packages/llm/deepseek-llm-api-extensions: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/llm/llm: @@ -6995,7 +6995,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-attachment': specifier: workspace:^ @@ -7020,7 +7020,7 @@ importers: version: 3.1.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7090,7 +7090,7 @@ importers: version: 0.85.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-attachment': specifier: workspace:^ @@ -7133,13 +7133,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7194,13 +7194,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7234,7 +7234,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-compaction': specifier: workspace:^ @@ -7255,7 +7255,7 @@ importers: packages/lsp/lsp: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -7274,7 +7274,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -7317,7 +7317,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7366,7 +7366,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-attachment': specifier: workspace:^ @@ -7406,7 +7406,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7455,16 +7455,16 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-group': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/group '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7516,7 +7516,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-scope': specifier: workspace:^ @@ -7532,7 +7532,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/sandbox/sandbox: @@ -7542,7 +7542,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -7567,7 +7567,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -7589,7 +7589,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7620,7 +7620,7 @@ importers: version: 3.1.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-pwsh-local': specifier: workspace:^ @@ -7636,10 +7636,10 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7685,7 +7685,7 @@ importers: version: link:../../../apps/cli devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -7700,7 +7700,7 @@ importers: packages/sdk/protocol: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -7722,10 +7722,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7780,10 +7780,10 @@ importers: version: 0.8.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7840,7 +7840,7 @@ importers: packages/session-query/session-query: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -7874,10 +7874,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -7905,7 +7905,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7953,10 +7953,10 @@ importers: packages/session/session-checkpoint-policy: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -7996,7 +7996,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/session/session-format-catalog: @@ -8015,7 +8015,7 @@ importers: version: link:../session-format-v2-to-v3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -8031,7 +8031,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -8053,7 +8053,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -8072,7 +8072,7 @@ importers: version: link:../session-format-v1-to-v2 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/session/session-log-deepseek: @@ -8088,13 +8088,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-command-feedback': specifier: workspace:^ @@ -8131,7 +8131,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -8171,7 +8171,7 @@ importers: version: 3.1.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -8190,7 +8190,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -8209,7 +8209,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-session': specifier: workspace:^ @@ -8234,13 +8234,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -8255,7 +8255,7 @@ importers: packages/session/session-telemetry: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8289,13 +8289,13 @@ importers: version: 0.220.0(@opentelemetry/api@1.9.1) devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/cordis-plugin-logger-console': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/logger-console '@deepseek-ai/dsh-anonymous-user-id': specifier: workspace:^ @@ -8350,7 +8350,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8384,7 +8384,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent-loop': specifier: workspace:^ @@ -8412,13 +8412,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent-loop': specifier: workspace:^ @@ -8452,7 +8452,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -8474,13 +8474,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -8502,7 +8502,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -8530,7 +8530,7 @@ importers: version: 2.9.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-atomic-write': specifier: workspace:^ @@ -8549,7 +8549,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-settings': specifier: workspace:^ @@ -8570,7 +8570,7 @@ importers: packages/shell/bash-sandbox: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-bash-local': specifier: workspace:^ @@ -8604,7 +8604,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-settings': specifier: workspace:^ @@ -8625,7 +8625,7 @@ importers: packages/shell/pwsh-sandbox: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-pwsh-local': specifier: workspace:^ @@ -8652,7 +8652,7 @@ importers: packages/shell/shell: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-sandbox': specifier: workspace:^ @@ -8671,7 +8671,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8696,7 +8696,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8763,13 +8763,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8818,7 +8818,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8882,13 +8882,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -8943,7 +8943,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -8955,7 +8955,7 @@ importers: packages/skill/skill-badge: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-skill': specifier: workspace:^ @@ -8974,7 +8974,7 @@ importers: version: 2.9.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-fs': specifier: workspace:^ @@ -8993,7 +8993,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9023,7 +9023,7 @@ importers: packages/spill/spill: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -9042,13 +9042,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-brand': specifier: workspace:^ @@ -9070,7 +9070,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9097,7 +9097,7 @@ importers: packages/storage/storage: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/storage/storage-domain: @@ -9110,7 +9110,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -9126,7 +9126,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-storage': specifier: workspace:^ @@ -9139,7 +9139,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-storage': specifier: workspace:^ @@ -9161,7 +9161,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9246,10 +9246,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9313,7 +9313,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9380,10 +9380,10 @@ importers: version: 0.153.4 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9441,10 +9441,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9505,10 +9505,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9548,13 +9548,13 @@ importers: version: link:../../util/brand devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9609,10 +9609,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9667,10 +9667,10 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9731,7 +9731,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9776,7 +9776,7 @@ importers: packages/subprocess/subprocess: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-http-proxy': specifier: workspace:^ @@ -9798,7 +9798,7 @@ importers: version: 1.2.0-beta.15(patch_hash=b40ae545608897914bd25fb009c97eeac478c34e8a910298ddcb01b746534bb0) devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-loader-smoke': specifier: workspace:^ @@ -9817,13 +9817,13 @@ importers: version: 3.1.1 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/terminal/terminal: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9854,7 +9854,7 @@ importers: version: 6.0.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9888,13 +9888,13 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9948,7 +9948,7 @@ importers: packages/test-support/agent-loop-testkit: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -9985,7 +9985,7 @@ importers: version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.8)(happy-dom@20.11.6)(jsdom@29.1.1(@noble/hashes@2.3.0))(vite@8.0.16(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-api-session-controller': specifier: workspace:^ @@ -10048,7 +10048,7 @@ importers: packages/test-support/llm-mock-server: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/test-support/llm-replay: @@ -10061,7 +10061,7 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-compaction': specifier: workspace:^ @@ -10086,7 +10086,7 @@ importers: version: 4.22.4 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10129,7 +10129,7 @@ importers: version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.8)(happy-dom@20.11.6)(jsdom@29.1.1(@noble/hashes@2.3.0))(vite@8.0.16(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10178,13 +10178,13 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10227,7 +10227,7 @@ importers: version: 6.0.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-tool-cordis': specifier: workspace:^ @@ -10246,10 +10246,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-typert-registry': specifier: workspace:^ @@ -10261,7 +10261,7 @@ importers: packages/typert/protocol: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/typert/registry: @@ -10271,7 +10271,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-typert-protocol': specifier: workspace:^ @@ -10280,13 +10280,13 @@ importers: packages/util/atomic-write: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/brand: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/chunked-list: @@ -10296,25 +10296,25 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/crypto: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/deque: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/home-paths: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/http-proxy: @@ -10324,7 +10324,7 @@ importers: version: 8.10.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -10333,49 +10333,49 @@ importers: packages/util/launch-environment: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/native-command: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/output-retention: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/package-manifest: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/time: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/timeout: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/values: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/util/workspace-path: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis packages/web/tool-web: @@ -10394,7 +10394,7 @@ importers: version: 7.2.4 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10443,7 +10443,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-llm': specifier: workspace:^ @@ -10462,7 +10462,7 @@ importers: version: 8.10.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-http-proxy': specifier: workspace:^ @@ -10481,7 +10481,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10515,7 +10515,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-http-proxy': specifier: workspace:^ @@ -10534,7 +10534,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-http-proxy': specifier: workspace:^ @@ -10556,13 +10556,13 @@ importers: version: link:../../util/values devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10605,13 +10605,13 @@ importers: version: 14.2.0 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-credentials': specifier: workspace:^ @@ -10633,10 +10633,10 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/loader '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10685,7 +10685,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10721,7 +10721,7 @@ importers: packages/workflow/workflow: devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10752,7 +10752,7 @@ importers: version: link:../../../vendor/schemastery devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-agent': specifier: workspace:^ @@ -10807,7 +10807,7 @@ importers: version: 4.4.3 devDependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../../vendor/cordis '@deepseek-ai/dsh-invariants': specifier: workspace:^ @@ -10831,19 +10831,19 @@ importers: python/sdk-runtime: dependencies: '@deepseek-ai/cordis': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/cordis '@deepseek-ai/cordis-plugin-group': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/group '@deepseek-ai/cordis-plugin-include': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/include '@deepseek-ai/cordis-plugin-loader': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/loader '@deepseek-ai/cordis-plugin-timer': - specifier: workspace:^ + specifier: workspace:* version: link:../../vendor/timer '@deepseek-ai/cosmokit': specifier: link:../../vendor/cosmokit diff --git a/python/sdk-runtime/package.json b/python/sdk-runtime/package.json index 3a3f128cf5..12056e2255 100644 --- a/python/sdk-runtime/package.json +++ b/python/sdk-runtime/package.json @@ -5,12 +5,12 @@ "private": true, "type": "module", "dependencies": { - "@deepseek-ai/cordis": "workspace:^", - "@deepseek-ai/cordis-plugin-group": "workspace:^", - "@deepseek-ai/cordis-plugin-include": "workspace:^", - "@deepseek-ai/cordis-plugin-loader": "workspace:^", - "@deepseek-ai/cordis-plugin-timer": "workspace:^", - "@deepseek-ai/cosmokit": "workspace:^", + "@deepseek-ai/cordis": "workspace:*", + "@deepseek-ai/cordis-plugin-group": "workspace:*", + "@deepseek-ai/cordis-plugin-include": "workspace:*", + "@deepseek-ai/cordis-plugin-loader": "workspace:*", + "@deepseek-ai/cordis-plugin-timer": "workspace:*", + "@deepseek-ai/cosmokit": "workspace:*", "@deepseek-ai/dsh": "workspace:^", "@deepseek-ai/dsh-acp": "workspace:^", "@deepseek-ai/dsh-agent": "workspace:^", @@ -130,6 +130,6 @@ "@deepseek-ai/dsh-web-search-perplexity": "workspace:^", "@deepseek-ai/dsh-workflow": "workspace:^", "@deepseek-ai/dsh-workflow-worker-thread": "workspace:^", - "@deepseek-ai/schemastery": "workspace:^" + "@deepseek-ai/schemastery": "workspace:*" } } diff --git a/scripts/verify-package-dependencies.spec.ts b/scripts/verify-package-dependencies.spec.ts index 4f49bebc5d..8652d7a361 100644 --- a/scripts/verify-package-dependencies.spec.ts +++ b/scripts/verify-package-dependencies.spec.ts @@ -932,6 +932,37 @@ describe('dependency sections', () => { ])) }) + it.each([ + CORDIS, + '@deepseek-ai/cosmokit', + '@deepseek-ai/schemastery', + '@deepseek-ai/cordis-plugin-loader', + '@deepseek-ai/cordis-plugin-include', + '@deepseek-ai/cordis-plugin-group', + '@deepseek-ai/cordis-plugin-timer', + '@deepseek-ai/cordis-plugin-hmr', + '@deepseek-ai/cordis-plugin-logger-console', + ])('preserves a release-line vendor pin on %s', (name) => { + const manifest: PackageDependencyManifest = { + name: '@deepseek-ai/dsh-probe', + dependencies: { [name]: 'workspace:*' }, + devDependencies: { [CORDIS]: 'workspace:*' }, + peerDependencies: { [CORDIS]: 'workspace:*' }, + } + const base = facts(manifest) + const subject = { ...base, workspaceNames: new Set([...base.workspaceNames, name]) } + const state = { facts: [subject], packages: [], policyViolations: [], workspaceNames: subject.workspaceNames } + + repairPackageDependencyManifest(subject) + expect(manifest[name === CORDIS ? 'peerDependencies' : 'dependencies']?.[name]).toBe('workspace:*') + expect(manifest.devDependencies?.[CORDIS]).toBe('workspace:*') + expect(manifest.dependencies?.['@deepseek-ai/dsh-runtime']).toBe('workspace:^') + expect(collectPackageDependencyViolations(state)).toEqual([]) + const repaired = structuredClone(manifest) + repairPackageDependencyManifest(subject) + expect(manifest).toEqual(repaired) + }) + it('repairs owned relationships without changing unrelated dependencies', () => { const root = mkdtempSync(join(tmpdir(), 'dsh-package-dependencies-')) roots.push(root) @@ -954,7 +985,7 @@ describe('dependency sections', () => { expect(fixPackageDependencies(root, state)).toEqual([manifestPath]) const fixed = JSON.parse(readFileSync(join(root, manifestPath), 'utf8')) as PackageDependencyManifest expect(fixed.dependencies).toEqual({ - '@deepseek-ai/schemastery': 'workspace:^', + '@deepseek-ai/schemastery': 'workspace:*', external: '^1.0.0', '@deepseek-ai/dsh-runtime': 'workspace:^', }) diff --git a/scripts/verify-package-dependencies.ts b/scripts/verify-package-dependencies.ts index 537fac154a..8d04b024eb 100644 --- a/scripts/verify-package-dependencies.ts +++ b/scripts/verify-package-dependencies.ts @@ -7,6 +7,7 @@ import { dirname, extname, join, normalize, relative, resolve, sep } from 'node: import ts from 'typescript' import { WorkspaceTypertGenerator } from '../packages/typert/generator/src/workspace.ts' import { writeModuleGraph } from './gen-module-graph.ts' +import { releaseFamily } from './release/families.ts' import { hasClientDeclaration, PACKAGE_DEPENDENCY_POLICY, @@ -20,7 +21,8 @@ import { const GATE = 'verify-package-dependencies' const CORDIS = '@deepseek-ai/cordis' -const WORKSPACE_RANGE = 'workspace:^' +const VENDOR_PACKAGES = new Set(releaseFamily('vendor').members(resolve(import.meta.dirname, '..')) + .map(member => member.name)) const RELEASE_MANIFEST_GLOB = 'packages/!(experimental)/*/package.json' const WORKSPACE_MANIFEST_GLOBS = [ 'apps/*/package.json', @@ -664,6 +666,12 @@ function describeSections(sections: readonly DependencySection[]): string { return sections.length === 0 ? 'no dependency section' : sections.join(' + ') } +function workspaceRange(facts: PackageDependencyFacts, name: string): string { + const pinned = VENDOR_PACKAGES.has(name) + && declaredSections(facts.manifest, name).some(sectionName => section(facts.manifest, sectionName)[name] === 'workspace:*') + return pinned ? 'workspace:*' : 'workspace:^' +} + /** Return all manifest and policy violations in stable order. */ export function collectPackageDependencyViolations(state: PackageDependencyState): string[] { const violations = [...state.policyViolations] @@ -671,15 +679,16 @@ export function collectPackageDependencyViolations(state: PackageDependencyState for (const facts of state.facts) { for (const [name, rule] of expectedPackageDependencies(facts)) { const actual = declaredSections(facts.manifest, name) + const expectedRange = workspaceRange(facts, name) if (rule.section === 'peer-dev') { if (actual.length === 2 && actual.includes('peerDependencies') && actual.includes('devDependencies') - && section(facts.manifest, 'peerDependencies')[name] === WORKSPACE_RANGE - && section(facts.manifest, 'devDependencies')[name] === WORKSPACE_RANGE + && section(facts.manifest, 'peerDependencies')[name] === expectedRange + && section(facts.manifest, 'devDependencies')[name] === expectedRange && facts.manifest.peerDependenciesMeta?.[name] === undefined) continue violations.push( - `${facts.manifestPath}: ${name} must be matching peerDependencies + devDependencies at ${WORKSPACE_RANGE}; found ${describeSections(actual)}`, + `${facts.manifestPath}: ${name} must be matching peerDependencies + devDependencies at ${expectedRange}; found ${describeSections(actual)}`, ) continue } @@ -687,17 +696,18 @@ export function collectPackageDependencyViolations(state: PackageDependencyState const range = section(facts.manifest, expectedSection)[name] if (actual.length === 1 && actual[0] === expectedSection - && (!facts.workspaceNames.has(name) || range === WORKSPACE_RANGE)) continue + && (!facts.workspaceNames.has(name) || range === expectedRange)) continue violations.push( `${facts.manifestPath}: ${name} (${rule.origins.join(', ')}) must be ${expectedSection}-only` - + (facts.workspaceNames.has(name) ? ` at ${WORKSPACE_RANGE}` : '') + + (facts.workspaceNames.has(name) ? ` at ${expectedRange}` : '') + `; found ${describeSections(actual)}`, ) } for (const sectionName of ['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies'] as const) { for (const [name, range] of Object.entries(section(facts.manifest, sectionName))) { - if (!facts.workspaceNames.has(name) || range === WORKSPACE_RANGE) continue - violations.push(`${facts.manifestPath}: ${sectionName}.${name} must use ${WORKSPACE_RANGE}, found ${range}`) + const expectedRange = workspaceRange(facts, name) + if (!facts.workspaceNames.has(name) || range === expectedRange) continue + violations.push(`${facts.manifestPath}: ${sectionName}.${name} must use ${expectedRange}, found ${range}`) } } for (const name of Object.keys(facts.manifest.peerDependenciesMeta ?? {})) { @@ -742,7 +752,7 @@ function preferredRange( name: string, target: ExpectedPackageDependency['section'], ): string { - if (name === CORDIS || facts.workspaceNames.has(name)) return WORKSPACE_RANGE + if (name === CORDIS || facts.workspaceNames.has(name)) return workspaceRange(facts, name) const order: readonly DependencySection[] = target === 'dependencies' ? ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies'] : ['devDependencies', 'peerDependencies', 'dependencies', 'optionalDependencies'] @@ -767,8 +777,8 @@ export function repairPackageDependencyManifest(facts: PackageDependencyFacts): for (const sectionName of ['dependencies', 'optionalDependencies'] as const) { deleteDependency(facts.manifest, sectionName, name) } - mutableSection(facts.manifest, 'peerDependencies')[name] = WORKSPACE_RANGE - mutableSection(facts.manifest, 'devDependencies')[name] = WORKSPACE_RANGE + mutableSection(facts.manifest, 'peerDependencies')[name] = range + mutableSection(facts.manifest, 'devDependencies')[name] = range deletePeerMeta(facts.manifest, name) continue } @@ -783,7 +793,7 @@ export function repairPackageDependencyManifest(facts: PackageDependencyFacts): } for (const sectionName of ['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies'] as const) { for (const name of Object.keys(section(facts.manifest, sectionName))) { - if (facts.workspaceNames.has(name)) mutableSection(facts.manifest, sectionName)[name] = WORKSPACE_RANGE + if (facts.workspaceNames.has(name)) mutableSection(facts.manifest, sectionName)[name] = workspaceRange(facts, name) } } } From 8e7cca22ca5174eda1404511a829d38878ee4103 Mon Sep 17 00:00:00 2001 From: imccyu Date: Tue, 22 Sep 2026 13:08:07 +0800 Subject: [PATCH 09/23] release(dsh): 0.1.5-rc.3 --- apps/cli/package.json | 2 +- apps/desktop-host/package.json | 2 +- apps/desktop/package.json | 2 +- apps/web/package.json | 2 +- package.json | 2 +- packages/acp/acp/package.json | 2 +- packages/api/gateway/package.json | 2 +- packages/api/remotes/package.json | 2 +- packages/api/session-controller/package.json | 2 +- packages/api/settings-controller/package.json | 2 +- packages/api/workspace-controller/package.json | 2 +- packages/api/workspace-files/package.json | 2 +- packages/attachment/attachment-local/package.json | 2 +- packages/attachment/attachment/package.json | 2 +- packages/boot/app-boot/package.json | 2 +- packages/boot/cmdline/package.json | 2 +- packages/bundle/acp-app/package.json | 2 +- packages/bundle/base/package.json | 2 +- packages/bundle/headless/package.json | 2 +- packages/bundle/sdk-app/package.json | 2 +- packages/bundle/sdk-minimal/package.json | 2 +- packages/bundle/web-app/package.json | 2 +- packages/client/connection/package.json | 2 +- packages/client/file-upload/package.json | 2 +- packages/client/hmr/package.json | 2 +- packages/client/locale/package.json | 2 +- packages/client/modules/package.json | 2 +- packages/client/resources/package.json | 2 +- packages/client/store/package.json | 2 +- packages/client/ui-agent-preset/package.json | 2 +- packages/client/ui-approval/package.json | 2 +- packages/client/ui-attachment/package.json | 2 +- packages/client/ui-brand-official/package.json | 2 +- packages/client/ui-chat/package.json | 2 +- packages/client/ui-commands/package.json | 2 +- packages/client/ui-conversation/package.json | 2 +- packages/client/ui-deliverables/package.json | 2 +- packages/client/ui-directory-picker-browse/package.json | 2 +- packages/client/ui-directory-picker-native/package.json | 2 +- packages/client/ui-dockkit/package.json | 2 +- packages/client/ui-goal/package.json | 2 +- packages/client/ui-input-trigger/package.json | 2 +- packages/client/ui-jobs/package.json | 2 +- packages/client/ui-layout/package.json | 2 +- packages/client/ui-message-feedback/package.json | 2 +- packages/client/ui-model-selection/package.json | 2 +- packages/client/ui-open-in-app/package.json | 2 +- packages/client/ui-permission-presets/package.json | 2 +- packages/client/ui-plan/package.json | 2 +- packages/client/ui-primitives/package.json | 2 +- packages/client/ui-reference/package.json | 2 +- packages/client/ui-renderer/package.json | 2 +- packages/client/ui-schedule/package.json | 2 +- packages/client/ui-session/package.json | 2 +- packages/client/ui-settings-general/package.json | 2 +- packages/client/ui-settings-models/package.json | 2 +- packages/client/ui-settings-plugin-inventory/package.json | 2 +- packages/client/ui-settings-plugins/package.json | 2 +- packages/client/ui-settings/package.json | 2 +- packages/client/ui-sidebar-documentpreview/package.json | 2 +- packages/client/ui-sidebar-files/package.json | 2 +- packages/client/ui-sidebar-right/package.json | 2 +- packages/client/ui-sidebar/package.json | 2 +- packages/client/ui-skill/package.json | 2 +- packages/client/ui-slots/package.json | 2 +- packages/client/ui-subagent/package.json | 2 +- packages/client/ui-theme/package.json | 2 +- packages/client/ui-tool/package.json | 2 +- packages/client/ui-trajectory/package.json | 2 +- packages/client/ui-user-questions/package.json | 2 +- packages/client/ui-workflow-run/package.json | 2 +- packages/client/ui-workspace/package.json | 2 +- packages/client/web/package.json | 2 +- packages/code-runtime/code-runtime-worker-thread/package.json | 2 +- packages/code-runtime/code-runtime/package.json | 2 +- packages/compaction/command-compact/package.json | 2 +- packages/compaction/compaction-basic/package.json | 2 +- packages/compaction/compaction-tool-result-pruner/package.json | 2 +- packages/compaction/compaction/package.json | 2 +- packages/context/agent-instructions/package.json | 2 +- packages/context/file-reference-local/package.json | 2 +- packages/context/file-reference/package.json | 2 +- packages/context/session-reference/package.json | 2 +- packages/context/time-context/package.json | 2 +- packages/context/tmux-context/package.json | 2 +- packages/core/agent-default-model/package.json | 2 +- packages/core/agent-loop/package.json | 2 +- packages/core/agent-tool-presentation/package.json | 2 +- packages/core/agent/package.json | 2 +- packages/core/scope/package.json | 2 +- packages/core/session/package.json | 2 +- packages/core/system-prompt/package.json | 2 +- packages/core/tools/package.json | 2 +- packages/credentials/authorization/package.json | 2 +- packages/credentials/credentials-local/package.json | 2 +- packages/credentials/credentials/package.json | 2 +- packages/e2b/e2b/package.json | 2 +- packages/e2b/fs-e2b/package.json | 2 +- packages/e2b/subprocess-e2b/package.json | 2 +- packages/experimental/agent-team-profile/package.json | 2 +- packages/experimental/agent-team-web-profile/package.json | 2 +- packages/experimental/agent-team/package.json | 2 +- packages/experimental/client-ui-agent-team/package.json | 2 +- packages/experimental/code-runtime-python/package.json | 2 +- packages/experimental/inspector/package.json | 2 +- packages/experimental/tool-agent-team/package.json | 2 +- packages/experimental/webworker-packer/package.json | 2 +- packages/experimental/webworker-runtime/package.json | 2 +- packages/extensions/cordis-client-runner/package.json | 2 +- packages/extensions/cordis-host-runner/package.json | 2 +- packages/extensions/tool-cordis/package.json | 2 +- packages/extensions/ui-cordis/package.json | 2 +- packages/feedback/command-feedback/package.json | 2 +- packages/feedback/message-feedback/package.json | 2 +- packages/fs/fs-local/package.json | 2 +- packages/fs/fs-observation-policy/package.json | 2 +- packages/fs/fs-sandbox/package.json | 2 +- packages/fs/fs/package.json | 2 +- packages/fs/tool-fs-search/package.json | 2 +- packages/fs/tool-fs/package.json | 2 +- packages/fs/tool-present/package.json | 2 +- packages/fs/tool-str-replace-editor/package.json | 2 +- packages/goal/command-goal/package.json | 2 +- packages/goal/goal-round-driver/package.json | 2 +- packages/goal/goal/package.json | 2 +- packages/goal/tool-goal/package.json | 2 +- packages/guard/repeat-tool-reminder/package.json | 2 +- packages/guard/timeout-policy/package.json | 2 +- packages/hooks/hook-protocol/package.json | 2 +- packages/hooks/hooks-claude-code/package.json | 2 +- packages/hooks/hooks-codex/package.json | 2 +- packages/host/directory-picker-auto/package.json | 2 +- packages/host/directory-picker-browse/package.json | 2 +- packages/host/directory-picker-native/package.json | 2 +- packages/host/directory-picker/package.json | 2 +- packages/host/frontend-static/package.json | 2 +- packages/host/open-in-app/package.json | 2 +- packages/host/plugin-inventory/package.json | 2 +- packages/host/webserver/package.json | 2 +- packages/identity/anonymous-user-id/package.json | 2 +- packages/interaction/commands/package.json | 2 +- packages/interaction/permission-presets/package.json | 2 +- packages/interaction/tool-ask-user/package.json | 2 +- packages/interaction/user-approval/package.json | 2 +- packages/interaction/user-questions/package.json | 2 +- packages/jobs/jobs-local/package.json | 2 +- packages/jobs/jobs/package.json | 2 +- packages/jobs/tool-jobs/package.json | 2 +- packages/llm/deepseek-llm-api-extensions/package.json | 2 +- packages/llm/llm-deepseek/package.json | 2 +- packages/llm/llm-pi-ai/package.json | 2 +- packages/llm/llm-retry/package.json | 2 +- packages/llm/llm/package.json | 2 +- packages/llm/plugin-package-inventory-deepseek/package.json | 2 +- packages/llm/token-meter/package.json | 2 +- packages/lsp/lsp-stdio/package.json | 2 +- packages/lsp/lsp/package.json | 2 +- packages/lsp/tool-lsp/package.json | 2 +- packages/mcp/mcp-client/package.json | 2 +- packages/plan/plan-mode/package.json | 2 +- packages/preset/agent-presets/package.json | 2 +- packages/preset/persona/package.json | 2 +- packages/runtime-diagnostics/invariants/package.json | 2 +- packages/sandbox/sandbox-local/package.json | 2 +- packages/sandbox/sandbox-policy/package.json | 2 +- packages/sandbox/sandbox-windows-acl/package.json | 2 +- packages/sandbox/sandbox/package.json | 2 +- packages/schedule/schedule/package.json | 2 +- packages/sdk/client/package.json | 2 +- packages/sdk/protocol/package.json | 2 +- packages/sdk/server/package.json | 2 +- packages/session-query/session-log-export/package.json | 2 +- packages/session-query/session-query-sqlite/package.json | 2 +- packages/session-query/session-query/package.json | 2 +- packages/session-query/tool-session-query/package.json | 2 +- packages/session/session-checkpoint-policy/package.json | 2 +- packages/session/session-format-catalog/package.json | 2 +- packages/session/session-format-v0-to-v1/package.json | 2 +- packages/session/session-format-v1-to-v2/package.json | 2 +- packages/session/session-format-v2-to-v3/package.json | 2 +- packages/session/session-format/package.json | 2 +- packages/session/session-log-deepseek/package.json | 2 +- packages/session/session-persistence-jsonl/package.json | 2 +- packages/session/session-persistence/package.json | 2 +- packages/session/session-projection-cache/package.json | 2 +- packages/session/session-projection/package.json | 2 +- packages/session/session-stats/package.json | 2 +- packages/session/session-telemetry-otel/package.json | 2 +- packages/session/session-telemetry/package.json | 2 +- packages/session/session-title-all-prompts-llm/package.json | 2 +- packages/session/session-title-first-prompt-llm/package.json | 2 +- packages/session/session-title-llm/package.json | 2 +- packages/session/session-title/package.json | 2 +- packages/session/session-turn-outline/package.json | 2 +- packages/settings/settings-file/package.json | 2 +- packages/settings/settings/package.json | 2 +- packages/shell/bash-local/package.json | 2 +- packages/shell/bash-sandbox/package.json | 2 +- packages/shell/pwsh-local/package.json | 2 +- packages/shell/pwsh-sandbox/package.json | 2 +- packages/shell/shell-env/package.json | 2 +- packages/shell/shell/package.json | 2 +- packages/shell/tool-bash-persistent/package.json | 2 +- packages/shell/tool-bash/package.json | 2 +- packages/shell/tool-pwsh-persistent/package.json | 2 +- packages/shell/tool-pwsh/package.json | 2 +- packages/skill/skill-badge/package.json | 2 +- packages/skill/skill-filesystem/package.json | 2 +- packages/skill/skill/package.json | 2 +- packages/skill/tool-skill/package.json | 2 +- packages/spill/spill-local/package.json | 2 +- packages/spill/spill-policy/package.json | 2 +- packages/spill/spill/package.json | 2 +- packages/storage/storage-domain/package.json | 2 +- packages/storage/storage-json/package.json | 2 +- packages/storage/storage-sqlite/package.json | 2 +- packages/storage/storage/package.json | 2 +- packages/subagent/subagent-acp/package.json | 2 +- packages/subagent/subagent-claude-code/package.json | 2 +- packages/subagent/subagent-codex/package.json | 2 +- packages/subagent/subagent-dsh-sdk/package.json | 2 +- packages/subagent/subagent-fork-in-process/package.json | 2 +- packages/subagent/subagent-in-process-driver/package.json | 2 +- packages/subagent/subagent-spawn-in-process/package.json | 2 +- packages/subagent/subagent/package.json | 2 +- packages/subagent/tool-subagent-control/package.json | 2 +- packages/subagent/tool-subagent/package.json | 2 +- packages/subprocess/subprocess-local/package.json | 2 +- packages/subprocess/subprocess/package.json | 2 +- packages/subprocess/win32-process/package.json | 2 +- packages/terminal/terminal-bash/package.json | 2 +- packages/terminal/terminal/package.json | 2 +- packages/terminal/tool-terminal/package.json | 2 +- packages/test-support/agent-loop-testkit/package.json | 2 +- packages/test-support/client-runtime/package.json | 2 +- packages/test-support/llm-mock-server/package.json | 2 +- packages/test-support/llm-replay/package.json | 2 +- packages/test-support/loader-smoke/package.json | 2 +- packages/test-support/session-snapshot/package.json | 2 +- packages/todo/tool-todo/package.json | 2 +- packages/typert/generator/package.json | 2 +- packages/typert/loader/package.json | 2 +- packages/typert/protocol/package.json | 2 +- packages/typert/registry/package.json | 2 +- packages/util/atomic-write/package.json | 2 +- packages/util/brand/package.json | 2 +- packages/util/chunked-list/package.json | 2 +- packages/util/crypto/package.json | 2 +- packages/util/deque/package.json | 2 +- packages/util/home-paths/package.json | 2 +- packages/util/http-proxy/package.json | 2 +- packages/util/launch-environment/package.json | 2 +- packages/util/native-command/package.json | 2 +- packages/util/output-retention/package.json | 2 +- packages/util/package-manifest/package.json | 2 +- packages/util/time/package.json | 2 +- packages/util/timeout/package.json | 2 +- packages/util/values/package.json | 2 +- packages/util/workspace-path/package.json | 2 +- packages/web/tool-web/package.json | 2 +- packages/web/web-fetch-http/package.json | 2 +- packages/web/web-search-deepseek/package.json | 2 +- packages/web/web-search-exa/package.json | 2 +- packages/web/web-search-perplexity/package.json | 2 +- packages/web/web/package.json | 2 +- packages/webhook/webhook-github/package.json | 2 +- packages/webhook/webhook/package.json | 2 +- packages/workflow/tool-ralph/package.json | 2 +- packages/workflow/tool-workflow/package.json | 2 +- packages/workflow/workflow-worker-thread/package.json | 2 +- packages/workflow/workflow/package.json | 2 +- packages/workspace/workspace/package.json | 2 +- 272 files changed, 272 insertions(+), 272 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index b265db2e3e..52b399f15e 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh", "description": "dsh CLI: profile boot, plugin management, and the browser UI alias", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/apps/desktop-host/package.json b/apps/desktop-host/package.json index 99eb2b4904..06e557d113 100644 --- a/apps/desktop-host/package.json +++ b/apps/desktop-host/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-desktop-host", "description": "Private upstream-Node host process for the Electron desktop application", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "private": true, "license": "MIT", "type": "module", diff --git a/apps/desktop/package.json b/apps/desktop/package.json index f414377a20..3b2cca5aa4 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-desktop", "description": "Electron desktop shell for an isolated pnpm-installed dsh runtime", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "private": true, "license": "MIT", "type": "module", diff --git a/apps/web/package.json b/apps/web/package.json index 50e6e88070..0ff4d574c2 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web-frontend", "description": "Web application entry: vite build over the @deepseek-ai/dsh-client-web shell library; dist/ served by apps/cli's dsh web", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/package.json b/package.json index a9b7c19269..a084efa26d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@deepseek-ai/dsh-root", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "license": "MIT", "private": true, "type": "module", diff --git a/packages/acp/acp/package.json b/packages/acp/acp/package.json index 3bf01229ec..2b7690eb2a 100644 --- a/packages/acp/acp/package.json +++ b/packages/acp/acp/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-acp", "description": "Automation-only Agent Client Protocol server for driving DeepSeek Harness agents over JSON-RPC stdio", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/api/gateway/package.json b/packages/api/gateway/package.json index 03dbbc8245..57d9808f69 100644 --- a/packages/api/gateway/package.json +++ b/packages/api/gateway/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-api-gateway", "description": "Typert Remote Host dispatcher and Client API endpoint", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/api/remotes/package.json b/packages/api/remotes/package.json index 1415ffdc5f..d0d938f9a2 100644 --- a/packages/api/remotes/package.json +++ b/packages/api/remotes/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-api-remotes", "description": "Remote BFF assembly for application-selected Host capabilities", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/api/session-controller/package.json b/packages/api/session-controller/package.json index f8378d4010..2220e2e850 100644 --- a/packages/api/session-controller/package.json +++ b/packages/api/session-controller/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-api-session-controller", "description": "Session Remote commands, cold reads, and live control transport", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/api/settings-controller/package.json b/packages/api/settings-controller/package.json index 28caa71fed..4192d1a695 100644 --- a/packages/api/settings-controller/package.json +++ b/packages/api/settings-controller/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-api-settings-controller", "description": "Remote owner for the configuration surfaces over the settings-domain seams", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/api/workspace-controller/package.json b/packages/api/workspace-controller/package.json index dc6691b4f9..5bd395714a 100644 --- a/packages/api/workspace-controller/package.json +++ b/packages/api/workspace-controller/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-api-workspace-controller", "description": "Workspace Remote commands and reconnect-safe state transport", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/api/workspace-files/package.json b/packages/api/workspace-files/package.json index 9592cc40be..e826c71916 100644 --- a/packages/api/workspace-files/package.json +++ b/packages/api/workspace-files/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-api-workspace-files", "description": "Workspace file service and Client resource provider: bounded reads, directory listing, and live metadata over the workspaceFiles Remote namespace", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/attachment/attachment-local/package.json b/packages/attachment/attachment-local/package.json index 8e4f2850b4..22173c3d69 100644 --- a/packages/attachment/attachment-local/package.json +++ b/packages/attachment/attachment-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-attachment-local", "description": "Private content-addressed DSH_HOME attachment storage", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/attachment/attachment/package.json b/packages/attachment/attachment/package.json index 8bfc20cb06..998bd16964 100644 --- a/packages/attachment/attachment/package.json +++ b/packages/attachment/attachment/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-attachment", "description": "Durable immutable attachment storage seam for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/boot/app-boot/package.json b/packages/boot/app-boot/package.json index c4b1a011e7..0b00676ff1 100644 --- a/packages/boot/app-boot/package.json +++ b/packages/boot/app-boot/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-app-boot", "description": "Shared boot glue for the app bins: .env loading, fail-loud Loader guards, snapshot-aware config resolution, and the Loader boot sequence", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/boot/cmdline/package.json b/packages/boot/cmdline/package.json index 57c18c4452..878c7e33fd 100644 --- a/packages/boot/cmdline/package.json +++ b/packages/boot/cmdline/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-cmdline", "description": "Immutable command-line handoff from a dsh launcher to any app plugin that injects cmdlineArgs", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/bundle/acp-app/package.json b/packages/bundle/acp-app/package.json index 01b4862970..f7f61f84da 100644 --- a/packages/bundle/acp-app/package.json +++ b/packages/bundle/acp-app/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-acp-app", "description": "The dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-base", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/bundle/base/package.json b/packages/bundle/base/package.json index 5a6e059e55..d796aba27b 100644 --- a/packages/bundle/base/package.json +++ b/packages/bundle/base/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-base", "description": "The shared dsh core as a profile bundle: the first patch layer of base-backed profiles, inserting core rows over the empty profile root", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/bundle/headless/package.json b/packages/bundle/headless/package.json index 46b1f112f4..5d650eca9a 100644 --- a/packages/bundle/headless/package.json +++ b/packages/bundle/headless/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-headless", "description": "The dsh one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layer", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/bundle/sdk-app/package.json b/packages/bundle/sdk-app/package.json index 20f002c9a4..7c321347cb 100644 --- a/packages/bundle/sdk-app/package.json +++ b/packages/bundle/sdk-app/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sdk-app", "description": "The dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-base", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/bundle/sdk-minimal/package.json b/packages/bundle/sdk-minimal/package.json index 5208226eac..e91fc03db8 100644 --- a/packages/bundle/sdk-minimal/package.json +++ b/packages/bundle/sdk-minimal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sdk-minimal", "description": "The standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessions", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/bundle/web-app/package.json b/packages/bundle/web-app/package.json index 2392881d50..2f38466c40 100644 --- a/packages/bundle/web-app/package.json +++ b/packages/bundle/web-app/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web-app", "description": "The dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/connection/package.json b/packages/client/connection/package.json index dab23d2d88..1eeda4bd6d 100644 --- a/packages/client/connection/package.json +++ b/packages/client/connection/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-connection", "description": "Authenticated RPC transport, generation lifecycle, and browser fixture", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/file-upload/package.json b/packages/client/file-upload/package.json index 0b3f35d369..b669fbe4d8 100644 --- a/packages/client/file-upload/package.json +++ b/packages/client/file-upload/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-file-upload", "description": "Agent-scoped browser file upload, streaming intake, and staged receipt service", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/hmr/package.json b/packages/client/hmr/package.json index 05ab26abea..c033186f37 100644 --- a/packages/client/hmr/package.json +++ b/packages/client/hmr/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-hmr", "description": "Dev-only hot-reload driver for script-loaded client entries: SSE rebuilt frames → invalidate/prefetch → fiber swap through the vendored Loader entry", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/locale/package.json b/packages/client/locale/package.json index bf980b6fb9..5c3974a574 100644 --- a/packages/client/locale/package.json +++ b/packages/client/locale/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-locale", "description": "Locale plugin: Host-backed preference, extensible language catalog, browser fallback, and typed built-in dictionaries", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/modules/package.json b/packages/client/modules/package.json index ed5f826661..e755ac7a24 100644 --- a/packages/client/modules/package.json +++ b/packages/client/modules/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-modules", "description": "Client module system, dual-face: node half composes the __DSH_BOOT__ entry graph (incremental dsh.client scan, bundle route, index tap, webPlugins service); browser half is the lazy-CJS module table the vendored cordis Loader consumes as its internal seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/resources/package.json b/packages/client/resources/package.json index 689f352ede..551c20811a 100644 --- a/packages/client/resources/package.json +++ b/packages/client/resources/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-resources", "description": "Unified client resource model: protocol-registered providers turn URL addresses into live values, consumed through the useResource global standard hook", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/store/package.json b/packages/client/store/package.json index 00bc212768..ab9f1e9056 100644 --- a/packages/client/store/package.json +++ b/packages/client/store/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-store", "description": "React-free observable and snapshot-store contracts with the shared Zustand/Immer engine", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-agent-preset/package.json b/packages/client/ui-agent-preset/package.json index 6d072209e3..ce349095a5 100644 --- a/packages/client/ui-agent-preset/package.json +++ b/packages/client/ui-agent-preset/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-agent-preset", "description": "Agent-preset surfaces: the default for later sessions, this session's seat, and the composition editor", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-approval/package.json b/packages/client/ui-approval/package.json index 86ecffb2ff..75293548d5 100644 --- a/packages/client/ui-approval/package.json +++ b/packages/client/ui-approval/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-approval", "description": "Approval composer takeover over the scoped Remote Event waterfall", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-attachment/package.json b/packages/client/ui-attachment/package.json index 6e19205536..c47e3ed081 100644 --- a/packages/client/ui-attachment/package.json +++ b/packages/client/ui-attachment/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-attachment", "description": "Dynamic attachment presentation plugin for conversation input, message-image, and trajectory image slots", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-brand-official/package.json b/packages/client/ui-brand-official/package.json index 6a1af745e0..112ca4ea98 100644 --- a/packages/client/ui-brand-official/package.json +++ b/packages/client/ui-brand-official/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-brand-official", "description": "Official DeepSeek Harness brand occupants for the Web client's sidebar slots", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-chat/package.json b/packages/client/ui-chat/package.json index f62bf82962..4e299904f1 100644 --- a/packages/client/ui-chat/package.json +++ b/packages/client/ui-chat/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-chat", "description": "Chat Conversation target, node definitions, renderers, and details surface", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-commands/package.json b/packages/client/ui-commands/package.json index a058e1b14f..5ac75b0482 100644 --- a/packages/client/ui-commands/package.json +++ b/packages/client/ui-commands/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-commands", "description": "Client command surface: global directory cache, '/' source, three command UI kinds, popupSelect registry", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-conversation/package.json b/packages/client/ui-conversation/package.json index 8628f0b603..fa62be4830 100644 --- a/packages/client/ui-conversation/package.json +++ b/packages/client/ui-conversation/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-conversation", "description": "Target-neutral Conversation assembly, shell, composer, queue, and view navigation", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-deliverables/package.json b/packages/client/ui-deliverables/package.json index f9160c942e..53a2eff6b6 100644 --- a/packages/client/ui-deliverables/package.json +++ b/packages/client/ui-deliverables/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-deliverables", "description": "Produced-files turn tail and clickable final-response file references for Web", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-directory-picker-browse/package.json b/packages/client/ui-directory-picker-browse/package.json index 24cfcb3575..bb68eb79a3 100644 --- a/packages/client/ui-directory-picker-browse/package.json +++ b/packages/client/ui-directory-picker-browse/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-directory-picker-browse", "description": "In-app directory browsing surface: the workspace directory-flow owner rendering the host's listing and creation primitives", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-directory-picker-native/package.json b/packages/client/ui-directory-picker-native/package.json index 7ed364f0ce..6f5a996c5a 100644 --- a/packages/client/ui-directory-picker-native/package.json +++ b/packages/client/ui-directory-picker-native/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-directory-picker-native", "description": "Native directory-picker surface: the renderless workspace directory-flow occupant driving the host's OS chooser", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-dockkit/package.json b/packages/client/ui-dockkit/package.json index d64cb583b8..6766973b6f 100644 --- a/packages/client/ui-dockkit/package.json +++ b/packages/client/ui-dockkit/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-dockkit", "description": "Docking layout kit: split-tree engine with invertible operations, and the React components that render and drive it (zero cordis)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-goal/package.json b/packages/client/ui-goal/package.json index 371fc27b12..01d22201f1 100644 --- a/packages/client/ui-goal/package.json +++ b/packages/client/ui-goal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-goal", "description": "Session goal surface: GoalBar docked above the composer, read from the goal session projection", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-input-trigger/package.json b/packages/client/ui-input-trigger/package.json index 4af96ec488..f8c021db93 100644 --- a/packages/client/ui-input-trigger/package.json +++ b/packages/client/ui-input-trigger/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-input-trigger", "description": "Input trigger pipeline: '/' and '@' detection, candidate menu, pick routing to registered sources", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-jobs/package.json b/packages/client/ui-jobs/package.json index e6668f556c..a691e9c053 100644 --- a/packages/client/ui-jobs/package.json +++ b/packages/client/ui-jobs/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-jobs", "description": "Session-header background-job list: live registry state mirrored from session/jobs frames", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "type": "module", "main": "lib/index.js", "types": "lib/types/index.d.ts", diff --git a/packages/client/ui-layout/package.json b/packages/client/ui-layout/package.json index 7ab0b24dcf..bf0d77ba88 100644 --- a/packages/client/ui-layout/package.json +++ b/packages/client/ui-layout/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-layout", "description": "Shell plugin: three-column AppFrame with drag handles, ctx.layout viewing-state service (navigation + panels)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-message-feedback/package.json b/packages/client/ui-message-feedback/package.json index c589cd4c23..3ecce41bed 100644 --- a/packages/client/ui-message-feedback/package.json +++ b/packages/client/ui-message-feedback/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-message-feedback", "description": "The Web feedback surface: per-message Like/Dislike in the assistant-message action strip and the feedback dialog behind both ratings and /feedback, backed by the messageFeedback and sessionFeedback Host Remotes", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-model-selection/package.json b/packages/client/ui-model-selection/package.json index 463be8cc2d..9120ba1db1 100644 --- a/packages/client/ui-model-selection/package.json +++ b/packages/client/ui-model-selection/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-model-selection", "description": "Model selection over the shared model catalog, Session projection, and session.selectModel", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-open-in-app/package.json b/packages/client/ui-open-in-app/package.json index 0c726ef252..7d08fbcfe9 100644 --- a/packages/client/ui-open-in-app/package.json +++ b/packages/client/ui-open-in-app/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-open-in-app", "description": "Web Session-header \"Open In...\" split button opening the session workspace directory in a locally installed application", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-permission-presets/package.json b/packages/client/ui-permission-presets/package.json index 21aaaba411..b5b56a346d 100644 --- a/packages/client/ui-permission-presets/package.json +++ b/packages/client/ui-permission-presets/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-permission-presets", "description": "Permission surfaces: a new-session default in General settings and a current-session /permission popup over the permissions projection", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-plan/package.json b/packages/client/ui-plan/package.json index 596adb6ee0..7da05fb9de 100644 --- a/packages/client/ui-plan/package.json +++ b/packages/client/ui-plan/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-plan", "description": "Plan-mode composer control: the conversation.input.plan seat over the plan projection and the /plan command channel", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-primitives/package.json b/packages/client/ui-primitives/package.json index 70f7fba6cb..f9a0a9726f 100644 --- a/packages/client/ui-primitives/package.json +++ b/packages/client/ui-primitives/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-primitives", "description": "Pure React atoms for the dsh web UI: controls, icons, markdown, and JSON inspectors (zero cordis)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-reference/package.json b/packages/client/ui-reference/package.json index 4c00e9d339..f5aa167243 100644 --- a/packages/client/ui-reference/package.json +++ b/packages/client/ui-reference/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-reference", "description": "Unified Web @file and @session reference source", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-renderer/package.json b/packages/client/ui-renderer/package.json index 99272ba2ea..0b94dd78a8 100644 --- a/packages/client/ui-renderer/package.json +++ b/packages/client/ui-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-renderer", "description": "Browser UI renderer: React slot bindings, ctx.uiRenderer, and the assembled application root", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-schedule/package.json b/packages/client/ui-schedule/package.json index a0f43a1da0..9c7aa82ce2 100644 --- a/packages/client/ui-schedule/package.json +++ b/packages/client/ui-schedule/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-schedule", "description": "Read-only active Schedule catalog in the Web Session header", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "type": "module", "main": "lib/index.js", "types": "lib/types/index.d.ts", diff --git a/packages/client/ui-session/package.json b/packages/client/ui-session/package.json index c4430b80df..fc3fc1669b 100644 --- a/packages/client/ui-session/package.json +++ b/packages/client/ui-session/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-session", "description": "Session Controller adapter for React and session-scoped slots", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-general/package.json b/packages/client/ui-settings-general/package.json index 2c4ce21271..f25443df03 100644 --- a/packages/client/ui-settings-general/package.json +++ b/packages/client/ui-settings-general/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-general", "description": "Settings ownerless-copy and product onboarding plugin: the General section, shell trigger/header chrome content, settings dictionaries, and the versioned welcome notice", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-models/package.json b/packages/client/ui-settings-models/package.json index b8195de272..2be454a33e 100644 --- a/packages/client/ui-settings-models/package.json +++ b/packages/client/ui-settings-models/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-models", "description": "Models settings and shared product-onboarding dialogs over existing settings and credential joins", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-plugin-inventory/package.json b/packages/client/ui-settings-plugin-inventory/package.json index f7b778f8ab..404b28be0c 100644 --- a/packages/client/ui-settings-plugin-inventory/package.json +++ b/packages/client/ui-settings-plugin-inventory/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-plugin-inventory", "description": "Read-only Cordis Loader inventory tab in Web Plugins settings", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings-plugins/package.json b/packages/client/ui-settings-plugins/package.json index c442b85e1d..66806f3de3 100644 --- a/packages/client/ui-settings-plugins/package.json +++ b/packages/client/ui-settings-plugins/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings-plugins", "description": "Plugins settings section with feature-owned tabs and configurable host-plane plugin cards", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-settings/package.json b/packages/client/ui-settings/package.json index 77e3121444..72c431cbc6 100644 --- a/packages/client/ui-settings/package.json +++ b/packages/client/ui-settings/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-settings", "description": "Settings domain base plugin: the settings-namespace scope service and the canonical settings slot-type contract", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar-documentpreview/package.json b/packages/client/ui-sidebar-documentpreview/package.json index 6dff631937..9b6c2015ae 100644 --- a/packages/client/ui-sidebar-documentpreview/package.json +++ b/packages/client/ui-sidebar-documentpreview/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-sidebar-documentpreview", "description": "Extensible document previews for Sidebar files: Markdown, highlighted code, images, PDF, HTML, and plain text", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar-files/package.json b/packages/client/ui-sidebar-files/package.json index 2da4742959..4a768030ec 100644 --- a/packages/client/ui-sidebar-files/package.json +++ b/packages/client/ui-sidebar-files/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-sidebar-files", "description": "Workspace file tree tab type for the right Sidebar: lazy directory listing over the workspaceFiles Remote namespace, opening files into the Sidebar", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar-right/package.json b/packages/client/ui-sidebar-right/package.json index ab8a79d601..f6800423a9 100644 --- a/packages/client/ui-sidebar-right/package.json +++ b/packages/client/ui-sidebar-right/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-sidebar-right", "description": "Right Sidebar: the docking surface's session-bound state, its panel and header expand control, and the navigation service over it", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-sidebar/package.json b/packages/client/ui-sidebar/package.json index c15eb7aa15..2c15372562 100644 --- a/packages/client/ui-sidebar/package.json +++ b/packages/client/ui-sidebar/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-sidebar", "description": "Sidebar plugin: session multi-level tree, search, grouping, state dots", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-skill/package.json b/packages/client/ui-skill/package.json index faad887629..daa9ae2e3e 100644 --- a/packages/client/ui-skill/package.json +++ b/packages/client/ui-skill/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-skill", "description": "Web skill references and the dedicated skill tool row", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-slots/package.json b/packages/client/ui-slots/package.json index c4e442da26..3649e07ef0 100644 --- a/packages/client/ui-slots/package.json +++ b/packages/client/ui-slots/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-slots", "description": "Slot registry pure core: SlotMap declaration merging, single register composition API, four-share props types, store-seat types, renderer install seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-subagent/package.json b/packages/client/ui-subagent/package.json index a25900dea8..b375b77559 100644 --- a/packages/client/ui-subagent/package.json +++ b/packages/client/ui-subagent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-subagent", "description": "Subagent conversation catalog, continuation routing UI, and '@' reference source", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-theme/package.json b/packages/client/ui-theme/package.json index eca96065c0..0614f4c62c 100644 --- a/packages/client/ui-theme/package.json +++ b/packages/client/ui-theme/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-theme", "description": "Theme plugin: Host bootstrap for the pre-plugin palette; DOM-free ThemeRuntime for light/dark/system state; --dsw-* token styles and Appearance settings row", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-tool/package.json b/packages/client/ui-tool/package.json index 11ddae1f81..3135041778 100644 --- a/packages/client/ui-tool/package.json +++ b/packages/client/ui-tool/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-tool", "description": "Client Tool call-tree renderer and keyed per-tool presentation slot", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-trajectory/package.json b/packages/client/ui-trajectory/package.json index 32e664d600..6f2c2fae06 100644 --- a/packages/client/ui-trajectory/package.json +++ b/packages/client/ui-trajectory/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-trajectory", "description": "Trajectory event ledger with an interactive timing overview: pure-consumer plugin registering into the conversation ViewMap (no service)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-user-questions/package.json b/packages/client/ui-user-questions/package.json index 2c8e881b99..adf9809890 100644 --- a/packages/client/ui-user-questions/package.json +++ b/packages/client/ui-user-questions/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-user-questions", "description": "Web ask_user_question composer takeover and plan-review presentation UI", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-workflow-run/package.json b/packages/client/ui-workflow-run/package.json index 98a545b350..a80befef1e 100644 --- a/packages/client/ui-workflow-run/package.json +++ b/packages/client/ui-workflow-run/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-workflow-run", "description": "Durable workflow-run Conversation Node and nested member disclosure for dsh web", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/ui-workspace/package.json b/packages/client/ui-workspace/package.json index 96f844a25b..b39247b7b5 100644 --- a/packages/client/ui-workspace/package.json +++ b/packages/client/ui-workspace/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-workspace", "description": "Workspace picker plugin: one WorkspacePicker registered into the sidebar and empty-state workspace slots", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/client/web/package.json b/packages/client/web/package.json index 07f0783d0f..b733898664 100644 --- a/packages/client/web/package.json +++ b/packages/client/web/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-web", "description": "Web boot kernel: static module table, Cordis loader, framework-free boot page, and UI-renderer handoff", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/code-runtime/code-runtime-worker-thread/package.json b/packages/code-runtime/code-runtime-worker-thread/package.json index 9491b8e996..6a35870ae1 100644 --- a/packages/code-runtime/code-runtime-worker-thread/package.json +++ b/packages/code-runtime/code-runtime-worker-thread/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-code-runtime-worker-thread", "description": "Worker-thread implementation of the DeepSeek Harness code-execution seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/code-runtime/code-runtime/package.json b/packages/code-runtime/code-runtime/package.json index 070c598183..3222db8a1e 100644 --- a/packages/code-runtime/code-runtime/package.json +++ b/packages/code-runtime/code-runtime/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-code-runtime", "description": "Abstract code-execution seam (ctx.codeRuntime) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/compaction/command-compact/package.json b/packages/compaction/command-compact/package.json index de807314c1..ec8f75a087 100644 --- a/packages/compaction/command-compact/package.json +++ b/packages/compaction/command-compact/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-command-compact", "description": "Human-facing slash command for explicit session compaction", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/compaction/compaction-basic/package.json b/packages/compaction/compaction-basic/package.json index 60eac2756d..0c31e6db3d 100644 --- a/packages/compaction/compaction-basic/package.json +++ b/packages/compaction/compaction-basic/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-compaction-basic", "description": "Token-meter-driven compaction policy and LLM summarization backend for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/compaction/compaction-tool-result-pruner/package.json b/packages/compaction/compaction-tool-result-pruner/package.json index d163cc7f2b..b89920b5e0 100644 --- a/packages/compaction/compaction-tool-result-pruner/package.json +++ b/packages/compaction/compaction-tool-result-pruner/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-compaction-tool-result-pruner", "description": "Replay-safe model-free head/middle/tail pruning for tool-result surface nodes", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/compaction/compaction/package.json b/packages/compaction/compaction/package.json index 8d21374edb..7a5e2c016d 100644 --- a/packages/compaction/compaction/package.json +++ b/packages/compaction/compaction/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-compaction", "description": "Abstract compaction service seam (ctx.compaction) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/context/agent-instructions/package.json b/packages/context/agent-instructions/package.json index 1531f9a2b3..7f91f9e737 100644 --- a/packages/context/agent-instructions/package.json +++ b/packages/context/agent-instructions/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent-instructions", "description": "Workspace context loader for AGENTS.md/CLAUDE.md instruction files", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/context/file-reference-local/package.json b/packages/context/file-reference-local/package.json index 90b4656d9f..b206a114b7 100644 --- a/packages/context/file-reference-local/package.json +++ b/packages/context/file-reference-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-file-reference-local", "description": "Local-filesystem ctx.fileReferences provider with bounded fuzzy indexes", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/context/file-reference/package.json b/packages/context/file-reference/package.json index f0334f1da6..fd20d1345b 100644 --- a/packages/context/file-reference/package.json +++ b/packages/context/file-reference/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-file-reference", "description": "File-reference discovery contract and shared @file grammar", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/context/session-reference/package.json b/packages/context/session-reference/package.json index 3b89b9786e..c6c284cfdd 100644 --- a/packages/context/session-reference/package.json +++ b/packages/context/session-reference/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-reference", "description": "Cross-session snapshot references and durable untrusted model context (ctx.sessionReferenceResolver)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/context/time-context/package.json b/packages/context/time-context/package.json index fcbdda6b7b..1b9caf48bb 100644 --- a/packages/context/time-context/package.json +++ b/packages/context/time-context/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-time-context", "description": "Opt-in durable per-step context with the current time and elapsed time", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/context/tmux-context/package.json b/packages/context/tmux-context/package.json index b1021c6215..9aa3ce7754 100644 --- a/packages/context/tmux-context/package.json +++ b/packages/context/tmux-context/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tmux-context", "description": "Opt-in durable per-step context with this agent's tmux pane and window location", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/agent-default-model/package.json b/packages/core/agent-default-model/package.json index ade673f6d5..67ec3ea087 100644 --- a/packages/core/agent-default-model/package.json +++ b/packages/core/agent-default-model/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent-default-model", "description": "Default model selection shared by Agent entry points", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/agent-loop/package.json b/packages/core/agent-loop/package.json index 5091fddbdd..3377b1f571 100644 --- a/packages/core/agent-loop/package.json +++ b/packages/core/agent-loop/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent-loop", "description": "The concrete agent loop plugin for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/agent-tool-presentation/package.json b/packages/core/agent-tool-presentation/package.json index 5bc00141ab..86a610b01b 100644 --- a/packages/core/agent-tool-presentation/package.json +++ b/packages/core/agent-tool-presentation/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent-tool-presentation", "description": "Agent-plane presentation selector: composes one agent's tools as PTC mode, native, or both", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/agent/package.json b/packages/core/agent/package.json index f85e083ab8..a8ef1afde9 100644 --- a/packages/core/agent/package.json +++ b/packages/core/agent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent", "description": "Agent interface, registry, initiator scope, and event vocabulary for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/scope/package.json b/packages/core/scope/package.json index 268e0fdbe9..5c1cbeb8f3 100644 --- a/packages/core/scope/package.json +++ b/packages/core/scope/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-scope", "description": "Scoped-context registration primitive (scope tags, scope-filtered event dispatch) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/session/package.json b/packages/core/session/package.json index 4215779d0c..1284d1424a 100644 --- a/packages/core/session/package.json +++ b/packages/core/session/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session", "description": "Event-sourced session store for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/system-prompt/package.json b/packages/core/system-prompt/package.json index 8ec4194a77..81c499b85e 100644 --- a/packages/core/system-prompt/package.json +++ b/packages/core/system-prompt/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-system-prompt", "description": "System prompt assembly registry for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/core/tools/package.json b/packages/core/tools/package.json index 0e37581818..1fcf3d05c6 100644 --- a/packages/core/tools/package.json +++ b/packages/core/tools/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tools", "description": "Tool registry and execution pipeline for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/credentials/authorization/package.json b/packages/credentials/authorization/package.json index 76e5b79cef..183c4ff143 100644 --- a/packages/credentials/authorization/package.json +++ b/packages/credentials/authorization/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-authorization", "description": "Authorization seam (ctx.authorization): plugin-owned flows that obtain a credential through a conversation with the human", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/credentials/credentials-local/package.json b/packages/credentials/credentials-local/package.json index c7d7d2128a..0f0eaabbba 100644 --- a/packages/credentials/credentials-local/package.json +++ b/packages/credentials/credentials-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-credentials-local", "description": "File-backed credentials provider ($DSH_HOME/.env under the live process environment) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/credentials/credentials/package.json b/packages/credentials/credentials/package.json index bc5c80beb8..d188ac80d1 100644 --- a/packages/credentials/credentials/package.json +++ b/packages/credentials/credentials/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-credentials", "description": "Abstract credential seam (ctx.credentials): settings carry references to secrets, providers own the values", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/e2b/e2b/package.json b/packages/e2b/e2b/package.json index 602ed51b2c..ad316adbe8 100644 --- a/packages/e2b/e2b/package.json +++ b/packages/e2b/e2b/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-e2b", "description": "Shared E2B sandbox lifecycle for DeepSeek Harness provider adapters", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/e2b/fs-e2b/package.json b/packages/e2b/fs-e2b/package.json index 6f989f2b8a..dc46ee8a09 100644 --- a/packages/e2b/fs-e2b/package.json +++ b/packages/e2b/fs-e2b/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-fs-e2b", "description": "E2B filesystem implementation for DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/e2b/subprocess-e2b/package.json b/packages/e2b/subprocess-e2b/package.json index c6a7342657..bc1544812b 100644 --- a/packages/e2b/subprocess-e2b/package.json +++ b/packages/e2b/subprocess-e2b/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subprocess-e2b", "description": "E2B subprocess implementation for DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/experimental/agent-team-profile/package.json b/packages/experimental/agent-team-profile/package.json index 1414ef126c..51454847cf 100644 --- a/packages/experimental/agent-team-profile/package.json +++ b/packages/experimental/agent-team-profile/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-agent-team-profile", "description": "Experimental profile bundle enabling Agent Teams over dsh-base", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/experimental/agent-team-web-profile/package.json b/packages/experimental/agent-team-web-profile/package.json index 1bd3692f3e..55c95e5d72 100644 --- a/packages/experimental/agent-team-web-profile/package.json +++ b/packages/experimental/agent-team-web-profile/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-agent-team-web-profile", "description": "Experimental Web profile layer for Agent Teams Remote and UI plugins", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/experimental/agent-team/package.json b/packages/experimental/agent-team/package.json index c15441b1a7..bfe664f644 100644 --- a/packages/experimental/agent-team/package.json +++ b/packages/experimental/agent-team/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-agent-team", "description": "Implicit-root Agent Teams roster, durable peer mailbox, and shared task DAG", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/experimental/client-ui-agent-team/package.json b/packages/experimental/client-ui-agent-team/package.json index 563a2c7a75..aec4ee7f17 100644 --- a/packages/experimental/client-ui-agent-team/package.json +++ b/packages/experimental/client-ui-agent-team/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-client-ui-agent-team", "description": "Web Agent Teams roster, task board, and teammate navigation", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/experimental/code-runtime-python/package.json b/packages/experimental/code-runtime-python/package.json index ceaa310bdf..1c2cfd1011 100644 --- a/packages/experimental/code-runtime-python/package.json +++ b/packages/experimental/code-runtime-python/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-code-runtime-python", "description": "CPython subprocess implementation of the DeepSeek Harness code-execution seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "repository": { "type": "git", "url": "git+https://github.com/deepseek-ai/deepseek-harness.git", diff --git a/packages/experimental/inspector/package.json b/packages/experimental/inspector/package.json index fe46f14acc..5c1e429a95 100644 --- a/packages/experimental/inspector/package.json +++ b/packages/experimental/inspector/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-inspector", "description": "Experimental cross-realm CDP hub for Host debugging and Client Runtime inspection", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "private": true, "repository": { "type": "git", diff --git a/packages/experimental/tool-agent-team/package.json b/packages/experimental/tool-agent-team/package.json index 7f08e60b07..6d2e2c0698 100644 --- a/packages/experimental/tool-agent-team/package.json +++ b/packages/experimental/tool-agent-team/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-tool-agent-team", "description": "Scoped model-facing Agent Teams tools over ctx.agentTeams", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/experimental/webworker-packer/package.json b/packages/experimental/webworker-packer/package.json index a98d0e2064..419bb0e33b 100644 --- a/packages/experimental/webworker-packer/package.json +++ b/packages/experimental/webworker-packer/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-webworker-packer", "description": "Build-time packer for the browser runtime's base VFS image and ordered data-overlay archives", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "private": true, "repository": { "type": "git", diff --git a/packages/experimental/webworker-runtime/package.json b/packages/experimental/webworker-runtime/package.json index ac04c0d104..d667ddbd1c 100644 --- a/packages/experimental/webworker-runtime/package.json +++ b/packages/experimental/webworker-runtime/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-experimental-webworker-runtime", "description": "Browser-only harness runtime: in-memory VFS, module transform and loader, postMessage tunnel, and the dedicated Web Worker assembly, with the Node-compatibility layer that lets the host tree run unchanged", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "private": true, "repository": { "type": "git", diff --git a/packages/extensions/cordis-client-runner/package.json b/packages/extensions/cordis-client-runner/package.json index ceb94aeaed..32b00e97d6 100644 --- a/packages/extensions/cordis-client-runner/package.json +++ b/packages/extensions/cordis-client-runner/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-cordis-client-runner", "description": "Browser half of dynamic dual-half plugin packages: event subscription, closure evaluation, guard facade, and loader entries", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/extensions/cordis-host-runner/package.json b/packages/extensions/cordis-host-runner/package.json index d8ebc413e8..fc16c9faee 100644 --- a/packages/extensions/cordis-host-runner/package.json +++ b/packages/extensions/cordis-host-runner/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-cordis-host-runner", "description": "Dynamic package definition registry, host-half sandbox lifecycle, and invoke handler table for model-mounted dual-half packages", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/extensions/tool-cordis/package.json b/packages/extensions/tool-cordis/package.json index d19d0fb5ef..aac95c8823 100644 --- a/packages/extensions/tool-cordis/package.json +++ b/packages/extensions/tool-cordis/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-cordis", "description": "Self-referential cordis toolset: inspect the live runtime, mount and dispose model-written plugins", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/extensions/ui-cordis/package.json b/packages/extensions/ui-cordis/package.json index 32b78e9ed7..ca2eecf8af 100644 --- a/packages/extensions/ui-cordis/package.json +++ b/packages/extensions/ui-cordis/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-ui-cordis", "description": "Cordis dynamic-plugin definition card: the keyed cordis_define tool row with its run/stop switch", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/feedback/command-feedback/package.json b/packages/feedback/command-feedback/package.json index 77fb5b7fc7..c2edd8c779 100644 --- a/packages/feedback/command-feedback/package.json +++ b/packages/feedback/command-feedback/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-command-feedback", "description": "Log-only session feedback: the record event, the sessionFeedback Host Remote, and the human-facing slash command", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/feedback/message-feedback/package.json b/packages/feedback/message-feedback/package.json index abfa697159..9052c044aa 100644 --- a/packages/feedback/message-feedback/package.json +++ b/packages/feedback/message-feedback/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-message-feedback", "description": "Canonical Session-log ratings and notes for finalized assistant messages", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/fs-local/package.json b/packages/fs/fs-local/package.json index 56a9da2f6a..d79a6f2255 100644 --- a/packages/fs/fs-local/package.json +++ b/packages/fs/fs-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-fs-local", "description": "Local-filesystem implementation of the DeepSeek Harness filesystem seam (ctx.fs)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/fs-observation-policy/package.json b/packages/fs/fs-observation-policy/package.json index 59ad5acad9..1af4cf4034 100644 --- a/packages/fs/fs-observation-policy/package.json +++ b/packages/fs/fs-observation-policy/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-fs-observation-policy", "description": "File-context policy plugin for the DeepSeek Harness — observed-state, read-before-edit, and version-guarded write/edit added over the ctx.fs provider seam through the fs/* event gate (no service API)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/fs-sandbox/package.json b/packages/fs/fs-sandbox/package.json index dc2bb684d9..f89eaf2a9c 100644 --- a/packages/fs/fs-sandbox/package.json +++ b/packages/fs/fs-sandbox/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-fs-sandbox", "description": "Sandbox-enforcing implementation of the DeepSeek Harness filesystem seam: fences write/edit by the per-call sandbox mode (read-only denies mutation, workspace-write contains it to the workspace + temp roots) while reads pass through", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/fs/package.json b/packages/fs/fs/package.json index a46cf65967..8439d17348 100644 --- a/packages/fs/fs/package.json +++ b/packages/fs/fs/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-fs", "description": "Abstract filesystem capability seam (ctx.fs) for the DeepSeek Harness — vocabulary types, the FileSystem service (text IO + optional version-guarded atomic mutations), and the fs/* policy event vocabulary", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/tool-fs-search/package.json b/packages/fs/tool-fs-search/package.json index 20ecda599d..8a7c6be277 100644 --- a/packages/fs/tool-fs-search/package.json +++ b/packages/fs/tool-fs-search/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-fs-search", "description": "Model-facing filesystem discovery tools (glob, grep) backed by the packaged ripgrep binary (@vscode/ripgrep)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/tool-fs/package.json b/packages/fs/tool-fs/package.json index 03f16c0632..343fbeccdd 100644 --- a/packages/fs/tool-fs/package.json +++ b/packages/fs/tool-fs/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-fs", "description": "Model-facing filesystem tools (read, write, edit) over the DeepSeek Harness filesystem seam (ctx.fs)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/tool-present/package.json b/packages/fs/tool-present/package.json index 659cea88a0..9b023e2a2e 100644 --- a/packages/fs/tool-present/package.json +++ b/packages/fs/tool-present/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-present", "description": "Explicit workspace file delivery declarations for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/fs/tool-str-replace-editor/package.json b/packages/fs/tool-str-replace-editor/package.json index e1e35a2a86..2dbd933a52 100644 --- a/packages/fs/tool-str-replace-editor/package.json +++ b/packages/fs/tool-str-replace-editor/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-str-replace-editor", "description": "Model-facing view, create, literal replace, and line insert tool over the Harness filesystem service", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/goal/command-goal/package.json b/packages/goal/command-goal/package.json index 96d36bc0ad..65fc278a2f 100644 --- a/packages/goal/command-goal/package.json +++ b/packages/goal/command-goal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-command-goal", "description": "Human-facing slash command for persisted same-session goals", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/goal/goal-round-driver/package.json b/packages/goal/goal-round-driver/package.json index 9f3b170dee..4abcc68206 100644 --- a/packages/goal/goal-round-driver/package.json +++ b/packages/goal/goal-round-driver/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-goal-round-driver", "description": "Race-fenced same-session goal-round driver", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/goal/goal/package.json b/packages/goal/goal/package.json index 07496de265..29588f456f 100644 --- a/packages/goal/goal/package.json +++ b/packages/goal/goal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-goal", "description": "Event-sourced same-session goal state and lifecycle service for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/goal/tool-goal/package.json b/packages/goal/tool-goal/package.json index 51bd83f6fd..1aaa86f575 100644 --- a/packages/goal/tool-goal/package.json +++ b/packages/goal/tool-goal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-goal", "description": "Model-facing same-session goal tools with execution-time authority checks", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/guard/repeat-tool-reminder/package.json b/packages/guard/repeat-tool-reminder/package.json index 64a40e0cc3..6e57a886a3 100644 --- a/packages/guard/repeat-tool-reminder/package.json +++ b/packages/guard/repeat-tool-reminder/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-repeat-tool-reminder", "description": "Repeat-tool-call guard plugin: advisory reminders when an agent loops on identical tool calls", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/guard/timeout-policy/package.json b/packages/guard/timeout-policy/package.json index 96481352d5..14b7d621ea 100644 --- a/packages/guard/timeout-policy/package.json +++ b/packages/guard/timeout-policy/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-call-timeout-policy", "description": "Tool-call timeout policy: a tools/execute wrapper that arms a per-tool deadline on exec.signal and returns TOOL_TIMEOUT when it wins", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/hooks/hook-protocol/package.json b/packages/hooks/hook-protocol/package.json index ada42c6619..49a85fe3bd 100644 --- a/packages/hooks/hook-protocol/package.json +++ b/packages/hooks/hook-protocol/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-hook-protocol", "description": "Shared Claude Code / Codex hook wire protocol: matcher engine, stdin/exit-code/stdout codec, multi-hook merge, and hook/* session events", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/hooks/hooks-claude-code/package.json b/packages/hooks/hooks-claude-code/package.json index 68057a5d2e..70d0b1bde7 100644 --- a/packages/hooks/hooks-claude-code/package.json +++ b/packages/hooks/hooks-claude-code/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-hooks-claude-code", "description": "Bridge plugin: run a Claude Code hooks.json / settings hook config on the DeepSeek Harness interception seams", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/hooks/hooks-codex/package.json b/packages/hooks/hooks-codex/package.json index 39ec414cc7..b7a20f5cd9 100644 --- a/packages/hooks/hooks-codex/package.json +++ b/packages/hooks/hooks-codex/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-hooks-codex", "description": "Bridge plugin: run a Codex hooks.json hook config on the DeepSeek Harness interception seams", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/directory-picker-auto/package.json b/packages/host/directory-picker-auto/package.json index 8be34c1710..1088c95483 100644 --- a/packages/host/directory-picker-auto/package.json +++ b/packages/host/directory-picker-auto/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-directory-picker-auto", "description": "Adaptive chooser of the directory-picker seam: resolves the host situation at boot and mounts the native or browse backend for the DeepSeek Harness web GUI host", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/directory-picker-browse/package.json b/packages/host/directory-picker-browse/package.json index 6f70fe7462..38002d75f8 100644 --- a/packages/host/directory-picker-browse/package.json +++ b/packages/host/directory-picker-browse/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-directory-picker-browse", "description": "In-app browsing backend of the directory-picker seam (listing/creation primitives over the host filesystem)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/directory-picker-native/package.json b/packages/host/directory-picker-native/package.json index 66c1532a9b..a191b4b1cd 100644 --- a/packages/host/directory-picker-native/package.json +++ b/packages/host/directory-picker-native/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-directory-picker-native", "description": "Native-OS-chooser backend of the directory-picker seam for the DeepSeek Harness web GUI host", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/directory-picker/package.json b/packages/host/directory-picker/package.json index 78511ee411..00eebac289 100644 --- a/packages/host/directory-picker/package.json +++ b/packages/host/directory-picker/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-directory-picker", "description": "Abstract workspace-directory picking seam (ctx.directoryPicker) for the DeepSeek Harness web GUI host", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/frontend-static/package.json b/packages/host/frontend-static/package.json index 5b4a21dc44..ef03cd5fdf 100644 --- a/packages/host/frontend-static/package.json +++ b/packages/host/frontend-static/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-frontend-static", "description": "SPA dist server for the Web shell: owns the webserver fallback seat, serving explicit index entries and static assets with traversal rejection and 404 misses", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/open-in-app/package.json b/packages/host/open-in-app/package.json index 0219a7cb65..58cff2e44e 100644 --- a/packages/host/open-in-app/package.json +++ b/packages/host/open-in-app/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-open-in-app", "description": "Host half of open-in-app: resolved application catalog, icons, and the launch endpoint as three webServer routes", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/plugin-inventory/package.json b/packages/host/plugin-inventory/package.json index fb8aeed845..e72377b7b4 100644 --- a/packages/host/plugin-inventory/package.json +++ b/packages/host/plugin-inventory/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-plugin-inventory", "description": "Read-only Remote projection of current Cordis Loader plugin state", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/host/webserver/package.json b/packages/host/webserver/package.json index ce0ea4e673..697de34315 100644 --- a/packages/host/webserver/package.json +++ b/packages/host/webserver/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-host-webserver", "description": "Web route-registration plugin: HTTP and upgrade routes, index transform taps, and static dist fallback; knows no harness concepts", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/identity/anonymous-user-id/package.json b/packages/identity/anonymous-user-id/package.json index 33dcaef9ee..08f585899d 100644 --- a/packages/identity/anonymous-user-id/package.json +++ b/packages/identity/anonymous-user-id/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-anonymous-user-id", "description": "Shared anonymous user identity for DeepSeek Harness telemetry and feedback correlation", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/interaction/commands/package.json b/packages/interaction/commands/package.json index 98f9010fe8..b75e2f4ddd 100644 --- a/packages/interaction/commands/package.json +++ b/packages/interaction/commands/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-commands", "description": "Plugin-owned human command registry for DeepSeek Harness UIs", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/interaction/permission-presets/package.json b/packages/interaction/permission-presets/package.json index ad1646d1fb..b28f1b5eec 100644 --- a/packages/interaction/permission-presets/package.json +++ b/packages/interaction/permission-presets/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-permission-presets", "description": "User-facing permission presets (ctx.permissionPresets) for the DeepSeek Harness: one product-level Permissions select bundling the sandbox-mode and approval-policy knobs, written through to their own session events", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/interaction/tool-ask-user/package.json b/packages/interaction/tool-ask-user/package.json index bd82bab404..cc3fe60cc0 100644 --- a/packages/interaction/tool-ask-user/package.json +++ b/packages/interaction/tool-ask-user/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-ask-user", "description": "Model-facing ask_user_question tool over the ctx.userQuestions seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/interaction/user-approval/package.json b/packages/interaction/user-approval/package.json index 64a7a2be77..3ca3f0f525 100644 --- a/packages/interaction/user-approval/package.json +++ b/packages/interaction/user-approval/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-user-approval", "description": "User-approval seam (ctx.approval) for the DeepSeek Harness: one-shot permission decisions dispatched to composed answerers over the approval/request waterfall, fail-closed by default", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/interaction/user-questions/package.json b/packages/interaction/user-questions/package.json index b2a1bf8aea..9afed4c94a 100644 --- a/packages/interaction/user-questions/package.json +++ b/packages/interaction/user-questions/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-user-questions", "description": "Abstract user-questions seam (ctx.userQuestions) for asking the human during agent runs", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/jobs/jobs-local/package.json b/packages/jobs/jobs-local/package.json index e4d519dad8..6f948e53a7 100644 --- a/packages/jobs/jobs-local/package.json +++ b/packages/jobs/jobs-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-jobs-local", "description": "Process-local implementation of the DeepSeek Harness background job registry seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/jobs/jobs/package.json b/packages/jobs/jobs/package.json index 8da1246315..84677930f0 100644 --- a/packages/jobs/jobs/package.json +++ b/packages/jobs/jobs/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-jobs", "description": "Background job registry (ctx.jobs) for the DeepSeek Harness — shared ids, owner isolation, polling, cancellation, and completion listeners for long-running tool work", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/jobs/tool-jobs/package.json b/packages/jobs/tool-jobs/package.json index 116531ef3b..24f3db873d 100644 --- a/packages/jobs/tool-jobs/package.json +++ b/packages/jobs/tool-jobs/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-jobs", "description": "Model-facing background job control tools (job_output, job_list, job_kill) over the ctx.jobs registry", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/deepseek-llm-api-extensions/package.json b/packages/llm/deepseek-llm-api-extensions/package.json index 362afd2c35..0ca77d15ba 100644 --- a/packages/llm/deepseek-llm-api-extensions/package.json +++ b/packages/llm/deepseek-llm-api-extensions/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-deepseek-llm-api-extensions", "description": "Additive request-field registry for the official DeepSeek LLM API adapter", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/llm-deepseek/package.json b/packages/llm/llm-deepseek/package.json index d25c0f9429..96a1f09daa 100644 --- a/packages/llm/llm-deepseek/package.json +++ b/packages/llm/llm-deepseek/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-llm-deepseek", "description": "DeepSeek chat-completions adapter for the DeepSeek Harness LLM seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/llm-pi-ai/package.json b/packages/llm/llm-pi-ai/package.json index 291275e245..ac40412c74 100644 --- a/packages/llm/llm-pi-ai/package.json +++ b/packages/llm/llm-pi-ai/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-llm-pi-ai", "description": "pi-ai-backed DeepSeek adapter for the DeepSeek Harness LLM seam (design-verification twin of dsh-llm-deepseek)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/llm-retry/package.json b/packages/llm/llm-retry/package.json index 7e83c7f6a7..b014875abb 100644 --- a/packages/llm/llm-retry/package.json +++ b/packages/llm/llm-retry/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-llm-retry", "description": "Provider-routed LLM request retry policy for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/llm/package.json b/packages/llm/llm/package.json index 486e47ea0c..42607c948a 100644 --- a/packages/llm/llm/package.json +++ b/packages/llm/llm/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-llm", "description": "Provider-neutral LLM service interface for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/plugin-package-inventory-deepseek/package.json b/packages/llm/plugin-package-inventory-deepseek/package.json index 469607d05e..e3a342138f 100644 --- a/packages/llm/plugin-package-inventory-deepseek/package.json +++ b/packages/llm/plugin-package-inventory-deepseek/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-plugin-package-inventory-deepseek", "description": "Active Loader-backed plugin package inventory for official DeepSeek LLM API requests", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/llm/token-meter/package.json b/packages/llm/token-meter/package.json index e97a24ffec..26277f7f7e 100644 --- a/packages/llm/token-meter/package.json +++ b/packages/llm/token-meter/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-token-meter", "description": "Replay-aware token measurement service (ctx.tokenMeter) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/lsp/lsp-stdio/package.json b/packages/lsp/lsp-stdio/package.json index d0cacbce8e..fd0a4daa96 100644 --- a/packages/lsp/lsp-stdio/package.json +++ b/packages/lsp/lsp-stdio/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-lsp-stdio", "description": "Generic stdio language-server provider for the DeepSeek Harness LSP capability seam (ctx.lsp) — spawns configured servers, translates JSON-RPC, and serves transient-open goToDefinition/findReferences/goToImplementation/hover queries in the host filesystem namespace", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/lsp/lsp/package.json b/packages/lsp/lsp/package.json index dad6904fde..5f06b7bbc2 100644 --- a/packages/lsp/lsp/package.json +++ b/packages/lsp/lsp/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-lsp", "description": "Abstract LSP capability seam (ctx.lsp) for the DeepSeek Harness — language-server provider registry keyed by branded id and extension mapping, order-independent per-query selection, normalized definition/references/implementation/hover requests and results, and the LspError taxonomy", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/lsp/tool-lsp/package.json b/packages/lsp/tool-lsp/package.json index a38ba7f575..50c138faac 100644 --- a/packages/lsp/tool-lsp/package.json +++ b/packages/lsp/tool-lsp/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-lsp", "description": "Model-facing lsp tool over the DeepSeek Harness LSP capability seam (ctx.lsp) — one read-only tool with goToDefinition/findReferences/goToImplementation/hover operations, one-based UTF-16 cursor coordinates, bounded location rendering, and hover normalization", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/mcp/mcp-client/package.json b/packages/mcp/mcp-client/package.json index 8ec0b808e9..b4a44591e2 100644 --- a/packages/mcp/mcp-client/package.json +++ b/packages/mcp/mcp-client/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-mcp-client", "description": "MCP client bridge: connects to MCP servers and registers their tools on ctx.tools", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/plan/plan-mode/package.json b/packages/plan/plan-mode/package.json index 77c8258cfb..f220584cb1 100644 --- a/packages/plan/plan-mode/package.json +++ b/packages/plan/plan-mode/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-plan-mode", "description": "Logged per-agent plan mode with deployment guidance, a direct slash command, and a user-reviewed exit", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/preset/agent-presets/package.json b/packages/preset/agent-presets/package.json index 198e9cb3ad..8864d9cbc9 100644 --- a/packages/preset/agent-presets/package.json +++ b/packages/preset/agent-presets/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent-presets", "description": "Per-session agent composition from preset cordis.yml files for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/preset/persona/package.json b/packages/preset/persona/package.json index abb1f1d95f..d36ac063e7 100644 --- a/packages/preset/persona/package.json +++ b/packages/preset/persona/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-persona", "description": "Composition-authored deployment persona section for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/runtime-diagnostics/invariants/package.json b/packages/runtime-diagnostics/invariants/package.json index 2a58624dd3..88ffd72ca5 100644 --- a/packages/runtime-diagnostics/invariants/package.json +++ b/packages/runtime-diagnostics/invariants/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-invariants", "description": "Registry service for package-owned DeepSeek Harness runtime invariants", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sandbox/sandbox-local/package.json b/packages/sandbox/sandbox-local/package.json index 1e81d1c41e..b09d192393 100644 --- a/packages/sandbox/sandbox-local/package.json +++ b/packages/sandbox/sandbox-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sandbox-local", "description": "Local process-sandbox backends for the DeepSeek Harness sandbox seam: bwrap, the npm-distributed landlock-run launcher, macOS Seatbelt, or the Windows ACL restricted-token runner — functionally probed, fail-closed", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sandbox/sandbox-policy/package.json b/packages/sandbox/sandbox-policy/package.json index 88956c44aa..bb670d47be 100644 --- a/packages/sandbox/sandbox-policy/package.json +++ b/packages/sandbox/sandbox-policy/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sandbox-policy", "description": "Per-call sandbox policy resolver and current model context: deployment fallbacks plus each session's mode and workspace root, shared by every enforcing capability family", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sandbox/sandbox-windows-acl/package.json b/packages/sandbox/sandbox-windows-acl/package.json index 237fdf6c5e..aa9f18f337 100644 --- a/packages/sandbox/sandbox-windows-acl/package.json +++ b/packages/sandbox/sandbox-windows-acl/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sandbox-windows-acl", "description": "Windows ACL write-restriction sandbox backend (restricted-token spawn with capability-SID write allowlist) for the DeepSeek Harness sandbox seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sandbox/sandbox/package.json b/packages/sandbox/sandbox/package.json index db96b4b4dd..e58a4360e2 100644 --- a/packages/sandbox/sandbox/package.json +++ b/packages/sandbox/sandbox/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sandbox", "description": "Abstract process-sandbox seam (ctx.sandbox) for the DeepSeek Harness: same-world confinement vocabulary and the SandboxProvider contract", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/schedule/schedule/package.json b/packages/schedule/schedule/package.json index 9bb951f2c2..36e3a7ab3b 100644 --- a/packages/schedule/schedule/package.json +++ b/packages/schedule/schedule/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-schedule", "description": "Agent-scoped durable after, at, and fixed-rate reminders over the session event log", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sdk/client/package.json b/packages/sdk/client/package.json index b2f0a53b0a..c5568acce1 100644 --- a/packages/sdk/client/package.json +++ b/packages/sdk/client/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sdk-client", "description": "TypeScript client SDK for driving a DeepSeek Harness runtime subprocess over stdio JSON-RPC: the DeepSeekHarness high-level turns API and the lower-level HarnessClient", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sdk/protocol/package.json b/packages/sdk/protocol/package.json index 5d886f8917..437026797c 100644 --- a/packages/sdk/protocol/package.json +++ b/packages/sdk/protocol/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sdk-protocol", "description": "Shared wire protocol for the DeepSeek Harness SDK runtime: the newline-delimited JSON-RPC stdio transport and the named request, result, and notification types spoken between the runtime server and SDK clients", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/sdk/server/package.json b/packages/sdk/server/package.json index f2a67d92eb..ec10f6c44e 100644 --- a/packages/sdk/server/package.json +++ b/packages/sdk/server/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-sdk-jsonrpc-server", "description": "Stdio JSON-RPC server plugin for out-of-process DeepSeek Harness SDK clients", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session-query/session-log-export/package.json b/packages/session-query/session-log-export/package.json index df74a200f6..61e19ed507 100644 --- a/packages/session-query/session-log-export/package.json +++ b/packages/session-query/session-log-export/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-log-export", "description": "Web Session-log export command and shared download dialog", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session-query/session-query-sqlite/package.json b/packages/session-query/session-query-sqlite/package.json index 6c002b89b1..b1c46dfc9b 100644 --- a/packages/session-query/session-query-sqlite/package.json +++ b/packages/session-query/session-query-sqlite/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-query-sqlite", "description": "Concrete ctx.sessionQuery backend with SQLite FTS5 search", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session-query/session-query/package.json b/packages/session-query/session-query/package.json index 209d8d3ae6..6e6ea9bcd3 100644 --- a/packages/session-query/session-query/package.json +++ b/packages/session-query/session-query/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-query", "description": "Combined session query service contract with concrete reads, traces, and filters", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session-query/tool-session-query/package.json b/packages/session-query/tool-session-query/package.json index 459a310a4f..a4b2ce8125 100644 --- a/packages/session-query/tool-session-query/package.json +++ b/packages/session-query/tool-session-query/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-session-query", "description": "Workspace-authorized model-facing session history search, trace, and event read tools", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-checkpoint-policy/package.json b/packages/session/session-checkpoint-policy/package.json index ea8f06bd48..073d8b9301 100644 --- a/packages/session/session-checkpoint-policy/package.json +++ b/packages/session/session-checkpoint-policy/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-checkpoint-policy", "description": "Semantic session durability checkpoints before model requests and tool side effects", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-format-catalog/package.json b/packages/session/session-format-catalog/package.json index 35c64ad7c9..7b05cf37dc 100644 --- a/packages/session/session-format-catalog/package.json +++ b/packages/session/session-format-catalog/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-format-catalog", "description": "Build-static first-party Session format codec and migration catalog", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-format-v0-to-v1/package.json b/packages/session/session-format-v0-to-v1/package.json index 237b0353ca..1e96ded8e6 100644 --- a/packages/session/session-format-v0-to-v1/package.json +++ b/packages/session/session-format-v0-to-v1/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-format-v0-to-v1", "description": "Frozen released-v0 Session codec and identity migration to v1", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-format-v1-to-v2/package.json b/packages/session/session-format-v1-to-v2/package.json index 7eff82299f..b1a302805e 100644 --- a/packages/session/session-format-v1-to-v2/package.json +++ b/packages/session/session-format-v1-to-v2/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-format-v1-to-v2", "description": "Frozen released-v1 Session codec and assistant-stream migration to v2", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-format-v2-to-v3/package.json b/packages/session/session-format-v2-to-v3/package.json index e893b3afa9..2ab1d8b825 100644 --- a/packages/session/session-format-v2-to-v3/package.json +++ b/packages/session/session-format-v2-to-v3/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-format-v2-to-v3", "description": "Streaming system-prompt, canonical-envelope and PTC migration into V3", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-format/package.json b/packages/session/session-format/package.json index d76b1d576e..e9e8c772eb 100644 --- a/packages/session/session-format/package.json +++ b/packages/session/session-format/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-format", "description": "Streaming adjacent Session format migration machinery", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-log-deepseek/package.json b/packages/session/session-log-deepseek/package.json index 94050124cc..f8e5421b20 100644 --- a/packages/session/session-log-deepseek/package.json +++ b/packages/session/session-log-deepseek/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-log-deepseek", "description": "Incremental lossless session-log request extension for the official DeepSeek LLM API", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-persistence-jsonl/package.json b/packages/session/session-persistence-jsonl/package.json index 80df4e2342..051c990c56 100644 --- a/packages/session/session-persistence-jsonl/package.json +++ b/packages/session/session-persistence-jsonl/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-persistence-jsonl", "description": "JSONL durable session persistence backend for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-persistence/package.json b/packages/session/session-persistence/package.json index 7140efbce9..4d4f14bc46 100644 --- a/packages/session/session-persistence/package.json +++ b/packages/session/session-persistence/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-persistence", "description": "Abstract durable session persistence seam (ctx.sessionPersistence) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-projection-cache/package.json b/packages/session/session-projection-cache/package.json index 8bad923651..9fb680ffb2 100644 --- a/packages/session/session-projection-cache/package.json +++ b/packages/session/session-projection-cache/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-projection-cache", "description": "Persisted projection cache (ctx.sessionProjectionCache): durable per-session checkpoint records on the session_projcache storage domain (per-record layout), throttled write-behind, and the cached listing read", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-projection/package.json b/packages/session/session-projection/package.json index 358aa65c23..ecf64e41b8 100644 --- a/packages/session/session-projection/package.json +++ b/packages/session/session-projection/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-projection", "description": "Session-projection seam: the merge-extensible projection type table, the provider contract, and the ctx.sessionProjections registry serving whole current values of log-derived per-session state", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-stats/package.json b/packages/session/session-stats/package.json index 1f0561d70c..ed0320ebf3 100644 --- a/packages/session/session-stats/package.json +++ b/packages/session/session-stats/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-stats", "description": "Whole-log conversation counts and wall times projection (sessionStats) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-telemetry-otel/package.json b/packages/session/session-telemetry-otel/package.json index b3f1361173..fdccda3937 100644 --- a/packages/session/session-telemetry-otel/package.json +++ b/packages/session/session-telemetry-otel/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-telemetry-otel", "description": "OpenTelemetry backend for the DeepSeek Harness telemetry seam: hands captured session records to the OTel JS SDK's log pipeline", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-telemetry/package.json b/packages/session/session-telemetry/package.json index de05df1d90..501654fc92 100644 --- a/packages/session/session-telemetry/package.json +++ b/packages/session/session-telemetry/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-telemetry", "description": "SessionTelemetryBackend seam for the DeepSeek Harness: session-event capture, projection, redaction, and handoff to a reporting backend", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-title-all-prompts-llm/package.json b/packages/session/session-title-all-prompts-llm/package.json index 90417298b3..ebe626e54e 100644 --- a/packages/session/session-title-all-prompts-llm/package.json +++ b/packages/session/session-title-all-prompts-llm/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-title-all-prompts-llm", "description": "All-user-messages LLM provider plugin for DeepSeek Harness session titles", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-title-first-prompt-llm/package.json b/packages/session/session-title-first-prompt-llm/package.json index 77e29c11af..550bbbd087 100644 --- a/packages/session/session-title-first-prompt-llm/package.json +++ b/packages/session/session-title-first-prompt-llm/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-title-first-prompt-llm", "description": "First-message LLM provider plugin for DeepSeek Harness session titles", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-title-llm/package.json b/packages/session/session-title-llm/package.json index 7dc081293d..2a34c0522d 100644 --- a/packages/session/session-title-llm/package.json +++ b/packages/session/session-title-llm/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-title-llm", "description": "Shared LLM generation policy for DeepSeek Harness session-title providers", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-title/package.json b/packages/session/session-title/package.json index 2cc7a6a604..aa48bb7059 100644 --- a/packages/session/session-title/package.json +++ b/packages/session/session-title/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-title", "description": "Log-backed session title service and provider registry for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/session/session-turn-outline/package.json b/packages/session/session-turn-outline/package.json index 1ea6e8cc81..0894dc23f8 100644 --- a/packages/session/session-turn-outline/package.json +++ b/packages/session/session-turn-outline/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-turn-outline", "description": "Whole-log turn outline projection (turnOutline) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/settings/settings-file/package.json b/packages/settings/settings-file/package.json index 663c9682db..e317cb4a4b 100644 --- a/packages/settings/settings-file/package.json +++ b/packages/settings/settings-file/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-settings-file", "description": "File-backed settings provider (settings.yaml) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/settings/settings/package.json b/packages/settings/settings/package.json index 9151e92d0b..a175d964d1 100644 --- a/packages/settings/settings/package.json +++ b/packages/settings/settings/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-settings", "description": "Abstract user-settings seam (ctx.settings) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/bash-local/package.json b/packages/shell/bash-local/package.json index 87ba3b08e0..14f6c3def0 100644 --- a/packages/shell/bash-local/package.json +++ b/packages/shell/bash-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-bash-local", "description": "Local-subprocess implementation of the DeepSeek Harness bash executor seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/bash-sandbox/package.json b/packages/shell/bash-sandbox/package.json index 7b0c17a2e4..94afedadab 100644 --- a/packages/shell/bash-sandbox/package.json +++ b/packages/shell/bash-sandbox/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-bash-sandbox", "description": "Sandbox-consuming implementation of the DeepSeek Harness bash executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/pwsh-local/package.json b/packages/shell/pwsh-local/package.json index 7254df4d80..5449e63832 100644 --- a/packages/shell/pwsh-local/package.json +++ b/packages/shell/pwsh-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-pwsh-local", "description": "Local PowerShell implementation of the DeepSeek Harness bash executor seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/pwsh-sandbox/package.json b/packages/shell/pwsh-sandbox/package.json index be6f6fe406..c6ab3fe73f 100644 --- a/packages/shell/pwsh-sandbox/package.json +++ b/packages/shell/pwsh-sandbox/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-pwsh-sandbox", "description": "Sandbox-consuming implementation of the DeepSeek Harness PowerShell executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/shell-env/package.json b/packages/shell/shell-env/package.json index 8956952748..b2cd4eadad 100644 --- a/packages/shell/shell-env/package.json +++ b/packages/shell/shell-env/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-shell-env", "description": "Tool-independent managed DSH_* shell environment registry", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/shell/package.json b/packages/shell/shell/package.json index 8821c3aeb8..89ba9cbf1b 100644 --- a/packages/shell/shell/package.json +++ b/packages/shell/shell/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-shell", "description": "Abstract bash executor seam (ctx.shell) for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/tool-bash-persistent/package.json b/packages/shell/tool-bash-persistent/package.json index 3e0a7a7a8c..c371cbe14e 100644 --- a/packages/shell/tool-bash-persistent/package.json +++ b/packages/shell/tool-bash-persistent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-bash-persistent", "description": "Model-facing owner-scoped persistent Bash tool backed by the Harness PTY service", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/tool-bash/package.json b/packages/shell/tool-bash/package.json index d6308c9be3..73c8784e36 100644 --- a/packages/shell/tool-bash/package.json +++ b/packages/shell/tool-bash/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-bash", "description": "Model-facing bash tool with optional generic background-job and sandbox-escalation support", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/tool-pwsh-persistent/package.json b/packages/shell/tool-pwsh-persistent/package.json index 6b536ee67a..d83c8aa391 100644 --- a/packages/shell/tool-pwsh-persistent/package.json +++ b/packages/shell/tool-pwsh-persistent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-pwsh-persistent", "description": "Model-facing owner-scoped persistent PowerShell tool backed by the Harness PTY service", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/shell/tool-pwsh/package.json b/packages/shell/tool-pwsh/package.json index 455635d24d..ad4edddb51 100644 --- a/packages/shell/tool-pwsh/package.json +++ b/packages/shell/tool-pwsh/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-pwsh", "description": "Model-facing pwsh tool over the bash executor seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/skill/skill-badge/package.json b/packages/skill/skill-badge/package.json index 4965ecb35d..a2df18c583 100644 --- a/packages/skill/skill-badge/package.json +++ b/packages/skill/skill-badge/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-skill-badge", "description": "Bundled dsh badge skill provider for DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/skill/skill-filesystem/package.json b/packages/skill/skill-filesystem/package.json index 12fc7ec3b2..1a09d7ea55 100644 --- a/packages/skill/skill-filesystem/package.json +++ b/packages/skill/skill-filesystem/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-skill-filesystem", "description": "Local filesystem skill provider for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/skill/skill/package.json b/packages/skill/skill/package.json index d55f3a1897..6b7a052581 100644 --- a/packages/skill/skill/package.json +++ b/packages/skill/skill/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-skill", "description": "Agent skill provider registry for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/skill/tool-skill/package.json b/packages/skill/tool-skill/package.json index b79118fbd9..90173f9f12 100644 --- a/packages/skill/tool-skill/package.json +++ b/packages/skill/tool-skill/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-skill", "description": "Model-facing skill loading tool for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/spill/spill-local/package.json b/packages/spill/spill-local/package.json index 36bfb9cf3a..3dca8cdb97 100644 --- a/packages/spill/spill-local/package.json +++ b/packages/spill/spill-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-spill-local", "description": "Local-filesystem implementation of the DeepSeek Harness spill storage seam (private session-scoped files)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/spill/spill-policy/package.json b/packages/spill/spill-policy/package.json index 88e42b054f..beae462383 100644 --- a/packages/spill/spill-policy/package.json +++ b/packages/spill/spill-policy/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-spill-policy", "description": "Tool-result spill policy for the DeepSeek Harness — replaces oversized plain-text tool results with a retained preview plus a spill-file path (no service API)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/spill/spill/package.json b/packages/spill/spill/package.json index fe381277f8..6744b3bef2 100644 --- a/packages/spill/spill/package.json +++ b/packages/spill/spill/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-spill", "description": "Abstract spill storage seam (ctx.spillStore) for the DeepSeek Harness — save oversized tool text and return a retrieval locator", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/storage/storage-domain/package.json b/packages/storage/storage-domain/package.json index 3b322ea6dd..25e93ba114 100644 --- a/packages/storage/storage-domain/package.json +++ b/packages/storage/storage-domain/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-storage-domain", "description": "Domain data form (ctx.storage.domain): schema-validated, event-emitting KV domains over storage backends for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/storage/storage-json/package.json b/packages/storage/storage-json/package.json index bf363340b4..bfd9a9548e 100644 --- a/packages/storage/storage-json/package.json +++ b/packages/storage/storage-json/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-storage-json", "description": "JSON file KV storage backend for the DeepSeek Harness storage hub", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/storage/storage-sqlite/package.json b/packages/storage/storage-sqlite/package.json index d04fad5ef1..f2d2d97371 100644 --- a/packages/storage/storage-sqlite/package.json +++ b/packages/storage/storage-sqlite/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-storage-sqlite", "description": "SQLite storage backend (kv facet) for the DeepSeek Harness storage hub", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/storage/storage/package.json b/packages/storage/storage/package.json index 30d2555ac2..683f16ed89 100644 --- a/packages/storage/storage/package.json +++ b/packages/storage/storage/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-storage", "description": "Storage hub (ctx.storage): named backend registry plus mounted data-form facilities for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-acp/package.json b/packages/subagent/subagent-acp/package.json index db33332e03..fdefecef3f 100644 --- a/packages/subagent/subagent-acp/package.json +++ b/packages/subagent/subagent-acp/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-acp", "description": "Out-of-process ACP subagent backend: drives a child agent in a spawned subprocess over the Agent Client Protocol", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-claude-code/package.json b/packages/subagent/subagent-claude-code/package.json index 569dcb1e47..ad5d61a1b0 100644 --- a/packages/subagent/subagent-claude-code/package.json +++ b/packages/subagent/subagent-claude-code/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-claude-code", "description": "One-shot Claude Code subagent provider over the official Agent SDK", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-codex/package.json b/packages/subagent/subagent-codex/package.json index 847743c103..9fd53d3f6b 100644 --- a/packages/subagent/subagent-codex/package.json +++ b/packages/subagent/subagent-codex/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-codex", "description": "One-shot Codex subagent provider over the official app-server protocol", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-dsh-sdk/package.json b/packages/subagent/subagent-dsh-sdk/package.json index 2129650bf9..75366da19d 100644 --- a/packages/subagent/subagent-dsh-sdk/package.json +++ b/packages/subagent/subagent-dsh-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-dsh-sdk", "description": "Out-of-process SDK subagent backend: drives a child DeepSeek Harness runtime subprocess over stdio JSON-RPC through the TypeScript SDK client", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-fork-in-process/package.json b/packages/subagent/subagent-fork-in-process/package.json index 507e1cd6be..ac1c994a81 100644 --- a/packages/subagent/subagent-fork-in-process/package.json +++ b/packages/subagent/subagent-fork-in-process/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-fork-in-process", "description": "In-process fork subagent backend: runs a child agent seeded with a prefix of the parent's log", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-in-process-driver/package.json b/packages/subagent/subagent-in-process-driver/package.json index 7c50e623de..2cffea484b 100644 --- a/packages/subagent/subagent-in-process-driver/package.json +++ b/packages/subagent/subagent-in-process-driver/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-in-process-driver", "description": "Shared in-process subagent run driver: drives a child agent on ctx.agents (used by the spawn and fork backends)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent-spawn-in-process/package.json b/packages/subagent/subagent-spawn-in-process/package.json index 489d735a23..fddaca056b 100644 --- a/packages/subagent/subagent-spawn-in-process/package.json +++ b/packages/subagent/subagent-spawn-in-process/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent-spawn-in-process", "description": "In-process spawn subagent backend: runs a fresh child agent on ctx.agents", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/subagent/package.json b/packages/subagent/subagent/package.json index 91c412970d..e80b2c60d3 100644 --- a/packages/subagent/subagent/package.json +++ b/packages/subagent/subagent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subagent", "description": "Abstract subagent seam (ctx.subagents): named-provider registry for delegating to child agents", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/tool-subagent-control/package.json b/packages/subagent/tool-subagent-control/package.json index 938bee4928..adf00d10a2 100644 --- a/packages/subagent/tool-subagent-control/package.json +++ b/packages/subagent/tool-subagent-control/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-subagent-control", "description": "Globally named send_message, interrupt_agent, and list_agents tools over ctx.subagents continuations", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subagent/tool-subagent/package.json b/packages/subagent/tool-subagent/package.json index ea6d41aad7..cfd711a58c 100644 --- a/packages/subagent/tool-subagent/package.json +++ b/packages/subagent/tool-subagent/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-subagent", "description": "Model-facing subagent delegation tool over the ctx.subagents seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subprocess/subprocess-local/package.json b/packages/subprocess/subprocess-local/package.json index 9ddd44aa8c..5d931ca699 100644 --- a/packages/subprocess/subprocess-local/package.json +++ b/packages/subprocess/subprocess-local/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subprocess-local", "description": "Local-subprocess implementation of the DeepSeek Harness subprocess seam", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subprocess/subprocess/package.json b/packages/subprocess/subprocess/package.json index 86668ed669..e1e4a52318 100644 --- a/packages/subprocess/subprocess/package.json +++ b/packages/subprocess/subprocess/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-subprocess", "description": "Subprocess seam (ctx.subprocess) for the DeepSeek Harness — managed process groups, bounded spill-backed output, and escalated kills behind one abstract service", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/subprocess/win32-process/package.json b/packages/subprocess/win32-process/package.json index baaa455ffd..fa94953d38 100644 --- a/packages/subprocess/win32-process/package.json +++ b/packages/subprocess/win32-process/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-win32-process", "description": "Shared low-level Win32 process, stdio, and Job Object primitives", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/terminal/terminal-bash/package.json b/packages/terminal/terminal-bash/package.json index 7dc1f47d67..88757151b1 100644 --- a/packages/terminal/terminal-bash/package.json +++ b/packages/terminal/terminal-bash/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-terminal-bash", "description": "Persistent shell PTY backend over the DeepSeek Harness subprocess terminal primitive", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/terminal/terminal/package.json b/packages/terminal/terminal/package.json index cdd4676fc8..f81401e660 100644 --- a/packages/terminal/terminal/package.json +++ b/packages/terminal/terminal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-terminal", "description": "Persistent PTY session seam for the DeepSeek Harness — owner-scoped ids, backend registry, interactive sends, reads, signals, and awaited cleanup", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/terminal/tool-terminal/package.json b/packages/terminal/tool-terminal/package.json index 62f9215d9e..52ed02d241 100644 --- a/packages/terminal/tool-terminal/package.json +++ b/packages/terminal/tool-terminal/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-terminal", "description": "Six model-facing persistent PTY tools with owner isolation and generic background-job integration", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-support/agent-loop-testkit/package.json b/packages/test-support/agent-loop-testkit/package.json index dd756655cb..70fed66a8d 100644 --- a/packages/test-support/agent-loop-testkit/package.json +++ b/packages/test-support/agent-loop-testkit/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-agent-loop-testkit", "description": "Prerequisite mounting, production AgentLoop drivers, and Inbox stubs for tests", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-support/client-runtime/package.json b/packages/test-support/client-runtime/package.json index 2b1b3d0bf2..f23b3e2d63 100644 --- a/packages/test-support/client-runtime/package.json +++ b/packages/test-support/client-runtime/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-client-test-runtime", "description": "jsdom slot test runtime: real Cordis Context + SlotRegistry + UI renderer with test-owned session/workspace doubles for feature specs", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-support/llm-mock-server/package.json b/packages/test-support/llm-mock-server/package.json index eda9c672f6..efba8e4d14 100644 --- a/packages/test-support/llm-mock-server/package.json +++ b/packages/test-support/llm-mock-server/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-llm-mock-server", "description": "Scriptable OpenAI-compatible HTTP/SSE fault server for LLM recovery tests", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-support/llm-replay/package.json b/packages/test-support/llm-replay/package.json index 245095b254..b316098c5c 100644 --- a/packages/test-support/llm-replay/package.json +++ b/packages/test-support/llm-replay/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-llm-replay", "description": "Replay LLM plugin: short-circuits llm/stream with model chunks reconstructed from a recorded session JSONL (keyless snapshot tests)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-support/loader-smoke/package.json b/packages/test-support/loader-smoke/package.json index d0bb80d2dd..dbf7331cd9 100644 --- a/packages/test-support/loader-smoke/package.json +++ b/packages/test-support/loader-smoke/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-loader-smoke", "description": "Shared subprocess and direct-agent harness for keyless real-Loader example smoke tests", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-support/session-snapshot/package.json b/packages/test-support/session-snapshot/package.json index ba37c3588f..138894273a 100644 --- a/packages/test-support/session-snapshot/package.json +++ b/packages/test-support/session-snapshot/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-session-snapshot", "description": "Session-log snapshot core with an ACP protocol adapter, expected-output normalization, and fixture invariants", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/todo/tool-todo/package.json b/packages/todo/tool-todo/package.json index 4d57bff520..5ca2d72f9d 100644 --- a/packages/todo/tool-todo/package.json +++ b/packages/todo/tool-todo/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-todo", "description": "Model-facing todo_write tool over the DeepSeek Harness event-sourced session log", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/typert/generator/package.json b/packages/typert/generator/package.json index 21cf25f8e9..b3aa62a13c 100644 --- a/packages/typert/generator/package.json +++ b/packages/typert/generator/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-typert-generator", "description": "TypeScript project analyzer and model-driven Typert artifact generator", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/typert/loader/package.json b/packages/typert/loader/package.json index bcbb5548f8..b456b74760 100644 --- a/packages/typert/loader/package.json +++ b/packages/typert/loader/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-typert-loader", "description": "Loader integration for generated Typert package contributions", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/typert/protocol/package.json b/packages/typert/protocol/package.json index 347f804f31..db5a2cc7de 100644 --- a/packages/typert/protocol/package.json +++ b/packages/typert/protocol/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-typert-protocol", "description": "Compiler-independent Remote metadata and Typert provider protocols", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/typert/registry/package.json b/packages/typert/registry/package.json index d2b9e5c60f..c2dc26fb03 100644 --- a/packages/typert/registry/package.json +++ b/packages/typert/registry/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-typert-registry", "description": "Runtime registry for generated package reflection and Zod schemas", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/atomic-write/package.json b/packages/util/atomic-write/package.json index b805131b48..6fdfc94e10 100644 --- a/packages/util/atomic-write/package.json +++ b/packages/util/atomic-write/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-atomic-write", "description": "Zero-dependency atomic file replacement: exclusive-create random-suffix temp + rename carrying the caller-stated permissions (writeFileAtomic)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/brand/package.json b/packages/util/brand/package.json index e389cf15eb..03a8ed4cb9 100644 --- a/packages/util/brand/package.json +++ b/packages/util/brand/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-brand", "description": "Stateless branded primitive types for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/chunked-list/package.json b/packages/util/chunked-list/package.json index 86505ac3bc..ac0e863eaf 100644 --- a/packages/util/chunked-list/package.json +++ b/packages/util/chunked-list/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-chunked-list", "description": "Persistent append-only chunked lists with bounded copying and JSON checkpoint validation", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/crypto/package.json b/packages/util/crypto/package.json index 5ab63eb83a..cc9cfb2a3b 100644 --- a/packages/util/crypto/package.json +++ b/packages/util/crypto/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-util-crypto", "description": "Zero-dependency browser-safe UUID and byte-encoding helpers", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/deque/package.json b/packages/util/deque/package.json index d9f0a1804f..598cb5f035 100644 --- a/packages/util/deque/package.json +++ b/packages/util/deque/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-deque", "description": "Zero-dependency circular deque with amortized constant-time end operations and bounded vacant storage", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/home-paths/package.json b/packages/util/home-paths/package.json index 4187d95fa2..2db1274725 100644 --- a/packages/util/home-paths/package.json +++ b/packages/util/home-paths/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-home-paths", "description": "Shared filesystem path helpers for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/http-proxy/package.json b/packages/util/http-proxy/package.json index 7a8170f50b..347b01616e 100644 --- a/packages/util/http-proxy/package.json +++ b/packages/util/http-proxy/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-http-proxy", "description": "Process-wide outbound HTTP proxy policy for DeepSeek Harness: resolve it from the launch environment and install it as undici's global dispatcher", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/launch-environment/package.json b/packages/util/launch-environment/package.json index 28a01033db..8486d4c28c 100644 --- a/packages/util/launch-environment/package.json +++ b/packages/util/launch-environment/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-launch-environment", "description": "Immutable DeepSeek Harness launch environment that records which layer supplied each value", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/native-command/package.json b/packages/util/native-command/package.json index f4ce7b6ec2..9f1d01ac3b 100644 --- a/packages/util/native-command/package.json +++ b/packages/util/native-command/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-native-command", "description": "Host-native command and path-opening utilities with shell-free execution, cancellation, desktop detection, and WSL handoff", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/output-retention/package.json b/packages/util/output-retention/package.json index 7048e841c1..c13057bbf4 100644 --- a/packages/util/output-retention/package.json +++ b/packages/util/output-retention/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-output-retention", "description": "Zero-dependency bounded-retention primitive: ItemRetainer/TextRetainer + neutral notice helpers (what did we keep, what did we omit)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/package-manifest/package.json b/packages/util/package-manifest/package.json index c9b9121f69..10edfdf497 100644 --- a/packages/util/package-manifest/package.json +++ b/packages/util/package-manifest/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-package-manifest", "description": "Shared type declarations for package.json.dsh configuration fields", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/time/package.json b/packages/util/time/package.json index 81edeb6a94..9c4b1e12e6 100644 --- a/packages/util/time/package.json +++ b/packages/util/time/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-util-time", "description": "Zero-dependency time vocabulary shared by wire boundaries: canonicalClientTimeZone (IANA zone validation and canonicalization only, no formatting)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/timeout/package.json b/packages/util/timeout/package.json index c5fab6aade..0ce35639af 100644 --- a/packages/util/timeout/package.json +++ b/packages/util/timeout/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-timeout", "description": "Zero-dependency timeout/deadline primitive: clampTimeout, deadline, timeoutOf, TimeoutReason (timing + classification only, no termination)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/values/package.json b/packages/util/values/package.json index af71263cbf..296695f127 100644 --- a/packages/util/values/package.json +++ b/packages/util/values/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-util-values", "description": "Duplicate-install-safe value primitives for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/util/workspace-path/package.json b/packages/util/workspace-path/package.json index 3617c53018..a2e8ec073d 100644 --- a/packages/util/workspace-path/package.json +++ b/packages/util/workspace-path/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-util-workspace-path", "description": "Browser-safe Workspace path and display helpers", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/web/tool-web/package.json b/packages/web/tool-web/package.json index c731904124..60aff70ad0 100644 --- a/packages/web/tool-web/package.json +++ b/packages/web/tool-web/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-web", "description": "Model-facing web tools (web_search, web_fetch) over the DeepSeek Harness web capability seam (ctx.web)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/web/web-fetch-http/package.json b/packages/web/web-fetch-http/package.json index c81a828ce4..ca30ce34f9 100644 --- a/packages/web/web-fetch-http/package.json +++ b/packages/web/web-fetch-http/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web-fetch-http", "description": "Anonymous public HTTP(S) fetch provider for the DeepSeek Harness web capability seam (ctx.web)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/web/web-search-deepseek/package.json b/packages/web/web-search-deepseek/package.json index 98853ed968..539fa43cb4 100644 --- a/packages/web/web-search-deepseek/package.json +++ b/packages/web/web-search-deepseek/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web-search-deepseek", "description": "DeepSeek-backed search provider (native web_search via the Anthropic-compatible API) for the DeepSeek Harness web capability seam (ctx.web)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/web/web-search-exa/package.json b/packages/web/web-search-exa/package.json index 9e5d349579..8e7a4ee727 100644 --- a/packages/web/web-search-exa/package.json +++ b/packages/web/web-search-exa/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web-search-exa", "description": "Exa-backed search provider for the DeepSeek Harness web capability seam (ctx.web)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/web/web-search-perplexity/package.json b/packages/web/web-search-perplexity/package.json index f0f7b73280..fb8b89a771 100644 --- a/packages/web/web-search-perplexity/package.json +++ b/packages/web/web-search-perplexity/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web-search-perplexity", "description": "Perplexity-backed search provider for the DeepSeek Harness web capability seam (ctx.web)", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/web/web/package.json b/packages/web/web/package.json index b5e92eb755..3edb726b7b 100644 --- a/packages/web/web/package.json +++ b/packages/web/web/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-web", "description": "Abstract web access capability seam (ctx.web) for the DeepSeek Harness — search/fetch provider registry, registration-order-independent selection, request/result vocabulary, and the WebError taxonomy", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/webhook/webhook-github/package.json b/packages/webhook/webhook-github/package.json index 6f40c1fce7..ab473bbd2b 100644 --- a/packages/webhook/webhook-github/package.json +++ b/packages/webhook/webhook-github/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-webhook-github", "description": "Signed GitHub HTTP webhook adapter for the DeepSeek Harness webhook runtime", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/webhook/webhook/package.json b/packages/webhook/webhook/package.json index 5f2277ba07..fae2c0cc69 100644 --- a/packages/webhook/webhook/package.json +++ b/packages/webhook/webhook/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-webhook", "description": "Fire-and-forget webhook rule runtime that creates Workspace-backed DeepSeek Harness Sessions", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/workflow/tool-ralph/package.json b/packages/workflow/tool-ralph/package.json index 70a82b6967..3b16bf9ba3 100644 --- a/packages/workflow/tool-ralph/package.json +++ b/packages/workflow/tool-ralph/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-ralph", "description": "Model-facing fresh-agent Ralph loop over the workflow and subagent seams", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/workflow/tool-workflow/package.json b/packages/workflow/tool-workflow/package.json index 4115427262..f5dbad243b 100644 --- a/packages/workflow/tool-workflow/package.json +++ b/packages/workflow/tool-workflow/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-tool-workflow", "description": "Model-facing workflow tool: run a JavaScript orchestration script over ctx.workflowEngine", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/workflow/workflow-worker-thread/package.json b/packages/workflow/workflow-worker-thread/package.json index 259fe7527e..2a42dd5163 100644 --- a/packages/workflow/workflow-worker-thread/package.json +++ b/packages/workflow/workflow-worker-thread/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-workflow-worker-thread", "description": "worker-thread workflow engine: executes model-written orchestration scripts off the host event loop, bridging agent() calls back to ctx.subagents", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/workflow/workflow/package.json b/packages/workflow/workflow/package.json index f1bfc1f276..e027f779c0 100644 --- a/packages/workflow/workflow/package.json +++ b/packages/workflow/workflow/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-workflow", "description": "Workflow capability seam: ctx.workflowEngine service, run vocabulary, and workflow/* events", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, diff --git a/packages/workspace/workspace/package.json b/packages/workspace/workspace/package.json index b5fb6fe436..eb2151b3ab 100644 --- a/packages/workspace/workspace/package.json +++ b/packages/workspace/workspace/package.json @@ -1,7 +1,7 @@ { "name": "@deepseek-ai/dsh-workspace", "description": "Workspace entity registry (ctx.workspaceRegistry): durable workspace records with validated session attachment over the domain data form for the DeepSeek Harness", - "version": "0.1.5-rc.2", + "version": "0.1.5-rc.3", "publishConfig": { "access": "public" }, From d459183f329d2bb5fba59c58066de947137c703b Mon Sep 17 00:00:00 2001 From: Yichen Jiang Date: Tue, 22 Sep 2026 14:28:46 +0800 Subject: [PATCH 10/23] docs(settings): correct provider configuration paths and examples --- docs/user/guide/providers.i18n.yaml | 4 +-- docs/user/guide/providers.md | 30 ++++++++++++---------- docs/user/guide/providers.zh.md | 30 ++++++++++++---------- packages/llm/llm-deepseek/README.i18n.yaml | 4 +-- packages/llm/llm-deepseek/README.md | 2 +- packages/llm/llm-deepseek/README.zh.md | 2 +- 6 files changed, 38 insertions(+), 34 deletions(-) diff --git a/docs/user/guide/providers.i18n.yaml b/docs/user/guide/providers.i18n.yaml index e3c0fdb127..7461948374 100644 --- a/docs/user/guide/providers.i18n.yaml +++ b/docs/user/guide/providers.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write docs/user/guide/providers.md -providers.md: 81ccba8b0665fa1f7666b5724aab4a8b3d183bbf -providers.zh.md: 1afb7e7bf616206290e5cc4a90ef45b4250a9596 +providers.md: 773ff6722a8558720a458f7574940972cf976958 +providers.zh.md: 6d618ed1e9eec17e8c4a000d00cc6987d0a6af14 diff --git a/docs/user/guide/providers.md b/docs/user/guide/providers.md index 81ccba8b06..773ff6722a 100644 --- a/docs/user/guide/providers.md +++ b/docs/user/guide/providers.md @@ -20,7 +20,7 @@ Providers that sign in with OAuth, such as Codex, are not supported here yet. ## Add a custom model API -Switch the card to **Custom model API** for a relay, a company gateway, a self-hosted server, or any provider absent from the installed catalog. Supply a lowercase Provider ID, base URL, API protocol, credential, and at least one model. The **API protocol** must be the one your gateway speaks, and the picker offers three: OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages, stored in `settings.yaml` as `openai-completions`, `openai-responses`, and `anthropic-messages`. A provider speaks one protocol, so a gateway that serves two needs two providers. +Switch the card to **Custom model API** for a relay, a company gateway, a self-hosted server, or any provider absent from the installed catalog. Supply a lowercase Provider ID, base URL, API protocol, credential, and at least one model. The **API protocol** must be the one your gateway speaks, and the picker offers three: OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages, stored in the active profile's `cordis.patch.yml` as `openai-completions`, `openai-responses`, and `anthropic-messages`. A provider speaks one protocol, so a gateway that serves two needs two providers. ![The custom model API form: Provider ID, display name, base URL, API protocol, and API key](providers-custom-form.png) @@ -44,6 +44,8 @@ The generated [plugin configuration catalog](../../config-catalog.md) lists ever ::: tip Additional settings The Models page exposes the API key, display name, base URL, API protocol, and each model's id, display name, context window, max output tokens, and input types. Configure reasoning effort levels, request-compatibility switches, headers, timeouts, and retry policy in `$DSH_HOME/profiles//cordis.patch.yml`, the same document the page writes. Edit it directly, or, when the browser runs on the same machine as the server, open it with **Open configuration file** in the Settings header; the adapters re-read it on the next request, so nothing needs a restart. The subsections below cover the fields most gateways need. + +For the standard Web UI launch with `dsh web`, `` is `web`, so the path is `$DSH_HOME/profiles/web/cordis.patch.yml`. If you launch a custom profile, use the name selected at startup instead. ::: ### Image input @@ -132,14 +134,14 @@ Each key is a level the menu offers, and its value is the spelling sent on the w An `off` left empty sends nothing, which only stops a model that thinks on request; an `off` given a value sends that value as `reasoning_effort` instead. A model that thinks unless told not to — DeepSeek V4 behind an OpenAI-compatible gateway, for example — needs `compat.thinkingFormat: deepseek`, which makes `off` send `thinking: {type: disabled}` and every other level send `thinking: {type: enabled}` beside the effort: ```yaml - models: - - id: deepseek-v4-pro - compat: - thinkingFormat: deepseek - reasoningEfforts: - off: - high: high - max: max + models: + - id: deepseek-v4-pro + compat: + thinkingFormat: deepseek + reasoningEfforts: + off: + high: high + max: max ``` A built-in provider's model whose gateway does not reason loses its levels with `reasoningEfforts: false` under `modelOverrides`; selecting an effort for it is then refused as `UNSUPPORTED_REASONING_EFFORT`. DeepSeek's own route needs none of this: its models already offer `off`, `low`, `high`, and `max`, and `llm-deepseek.reasoningEffort` sets the default the picker starts from: @@ -174,11 +176,11 @@ Two account for most of it. A model that declares reasoning has its system promp A route's `compat` is the default for its models, and a model's own wins field by field, so one model can be corrected without restating the route: ```yaml - models: - - id: my-model - - id: my-reasoner - compat: - thinkingFormat: deepseek + models: + - id: my-model + - id: my-reasoner + compat: + thinkingFormat: deepseek ``` What neither sets keeps the installed catalog's value for that model, and what the catalog does not describe falls to pi-ai's detection. Give every switch you name a value: a key left empty (`supportsDeveloperRole:`) is refused rather than ignored, because an empty value would erase what the catalog knows while saying nothing in its place. A name no protocol accepts is refused too, and the message lists the ones that are available. diff --git a/docs/user/guide/providers.zh.md b/docs/user/guide/providers.zh.md index 1afb7e7bf6..6d618ed1e9 100644 --- a/docs/user/guide/providers.zh.md +++ b/docs/user/guide/providers.zh.md @@ -20,7 +20,7 @@ ## 添加自定义模型 API -对于中转站、公司网关、自建服务器或已安装目录中不存在的提供商,把卡片切换到**自定义模型 API**。提供小写 Provider ID、基础 URL、API 协议、凭据和至少一个模型。**API 协议**必须选网关实际使用的那一种,选择框提供三种:OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages,在 `settings.yaml` 中分别存为 `openai-completions`、`openai-responses` 和 `anthropic-messages`。一个提供商只使用一种协议,网关同时提供两种时需要建两个提供商。 +对于中转站、公司网关、自建服务器或已安装目录中不存在的提供商,把卡片切换到**自定义模型 API**。提供小写 Provider ID、基础 URL、API 协议、凭据和至少一个模型。**API 协议**必须选网关实际使用的那一种,选择框提供三种:OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages,在当前 profile 的 `cordis.patch.yml` 中分别存为 `openai-completions`、`openai-responses` 和 `anthropic-messages`。一个提供商只使用一种协议,网关同时提供两种时需要建两个提供商。 ![自定义模型 API 表单:Provider ID、显示名称、API 地址、API 协议、API 密钥](providers-custom-form.zh.png) @@ -44,6 +44,8 @@ Provider ID 是永久的,因为请求、已保存会话、模型默认值和 ::: tip 其他设置 模型页提供 API 密钥、显示名称、API 地址、API 协议,以及每个模型的 ID、显示名称、上下文窗口、最大输出 token 数和输入类型。推理等级、请求兼容性开关、请求头、超时和重试策略在 `$DSH_HOME/profiles//cordis.patch.yml` 中设置,也就是模型页写入的同一份文档。可以直接编辑它;浏览器与服务器在同一台机器时,也可以点击设置页顶部的**打开配置文件**打开它。适配器会在下一次请求时重新读取,无需重启任何东西。下面各小节介绍多数网关会用到的字段。 + +按常规方式通过 `dsh web` 启动 Web UI 时,`` 就是 `web`,完整路径为 `$DSH_HOME/profiles/web/cordis.patch.yml`。如果使用自定义 profile,请替换为启动时指定的名称。 ::: ### 图片输入 @@ -132,14 +134,14 @@ DeepSeek 将省略的 `inputModalities` 视为纯文本,并拒绝空列表。 留空的 `off` 什么都不发送,这只能让「按请求才思考」的模型停下来;给 `off` 一个值,则会把该值作为 `reasoning_effort` 发送。对于「不明确关闭就会思考」的模型——例如 OpenAI 兼容网关后面的 DeepSeek V4——需要 `compat.thinkingFormat: deepseek`:它让 `off` 发送 `thinking: {type: disabled}`,其他每个等级则在 effort 之外再发送 `thinking: {type: enabled}`: ```yaml - models: - - id: deepseek-v4-pro - compat: - thinkingFormat: deepseek - reasoningEfforts: - off: - high: high - max: max + models: + - id: deepseek-v4-pro + compat: + thinkingFormat: deepseek + reasoningEfforts: + off: + high: high + max: max ``` 网关并不提供推理能力的内置提供商模型,可在 `modelOverrides` 下用 `reasoningEfforts: false` 去掉其等级;之后再为它选择等级会被拒绝并报 `UNSUPPORTED_REASONING_EFFORT`。DeepSeek 自身的路由不需要以上任何配置:其模型已经提供 `off`、`low`、`high` 和 `max`,`llm-deepseek.reasoningEffort` 设置选择器的起始默认值: @@ -174,11 +176,11 @@ DeepSeek 将省略的 `inputModalities` 视为纯文本,并拒绝空列表。 路由的 `compat` 是其模型的默认值,模型自身的则逐字段胜出,因此更正某一个模型无需重述整条路由: ```yaml - models: - - id: my-model - - id: my-reasoner - compat: - thinkingFormat: deepseek + models: + - id: my-model + - id: my-reasoner + compat: + thinkingFormat: deepseek ``` 两者都未设置的字段,沿用已安装 catalog 为该模型记录的值;catalog 也未描述的,落到 pi-ai 的检测。凡是写下的开关都要给值:冒号后留空的键(`supportsDeveloperRole:`)会被拒绝而不是被忽略,因为空值会抹掉 catalog 已知的信息,却又没有给出任何替代。任何协议都不接受的名字同样会被拒绝,报错会列出可用的那些。 diff --git a/packages/llm/llm-deepseek/README.i18n.yaml b/packages/llm/llm-deepseek/README.i18n.yaml index 10e933caf1..f3872a2482 100644 --- a/packages/llm/llm-deepseek/README.i18n.yaml +++ b/packages/llm/llm-deepseek/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/llm/llm-deepseek/README.md -README.md: 8b71e435884b8ea0364e7bea0924f2f351f11ec5 -README.zh.md: 90709e09b73e0448a90a1f2d224203ad3ce7bd36 +README.md: 1fad3d3f832ff21c6ae1616d3637674d6c923b2b +README.zh.md: 9914f53f732d0586fa14e2f1c6b9b05ed47c6567 diff --git a/packages/llm/llm-deepseek/README.md b/packages/llm/llm-deepseek/README.md index 8b71e43588..1fad3d3f83 100644 --- a/packages/llm/llm-deepseek/README.md +++ b/packages/llm/llm-deepseek/README.md @@ -110,7 +110,7 @@ When `ctx.deepseekLlmApiExtensions` is present, the adapter prepares its registe ### Failures and recovery -Configuration accepts Messages only and has no `protocol` field. If resolution reports `protocol is not configurable`, remove `protocol` from the `llm-deepseek` section in `/settings.yaml` and from any matching Cordis entry or overlay. Keep the intended `baseURL`, `apiKeyEnv`, and `models` fields. An invalid live section keeps the complete last good configuration; saving other fields in the Models card does not remove an unknown property. Edit the configuration file, then let settings reload or restart the profile; composition edits require a profile restart. +Configuration accepts Messages only and has no `protocol` field. If resolution reports `protocol is not configurable`, remove `protocol` from the `config` of the `llm-deepseek` entry in `$DSH_HOME/profiles//cordis.patch.yml` and from any overriding home patch or command-line overlay. Keep the intended `baseURL`, `apiKeyEnv`, and `models` fields. A stored configuration rejected by adapter validation makes subsequent requests fail until corrected; saving other fields in the Models card does not remove an unknown property. Edit the configuration file, then let the profile reload it through HMR or restart the profile if HMR is disabled. Successful Files responses must contain valid JSON. JSON decoding failures from upload, list, retrieve, and delete throw `INVALID_RESPONSE` with the operation and HTTP status in the message, the status in `LlmError.failure`, and the original parser error as `cause`. Body-read transport and cancellation errors retain their identity. diff --git a/packages/llm/llm-deepseek/README.zh.md b/packages/llm/llm-deepseek/README.zh.md index 90709e09b7..9914f53f73 100644 --- a/packages/llm/llm-deepseek/README.zh.md +++ b/packages/llm/llm-deepseek/README.zh.md @@ -110,7 +110,7 @@ Files 模式通过 `maxRequestFilesBytes` 与 `maxImagesPerRequest` 限制保留 ### 失败与恢复 -配置仅接受 Messages,不提供 `protocol` 字段。若解析报告 `protocol is not configurable`,请从 `/settings.yaml` 的 `llm-deepseek` 分节以及对应 Cordis 条目或 overlay 中删除 `protocol`,保留需要的 `baseURL`、`apiKeyEnv` 和 `models` 字段。无效的实时分节会继续使用完整的最后有效配置;在模型设置卡中保存其他字段不会移除未知属性。请编辑配置文件,等待设置重新加载或重启 profile;组装配置变更需要重启 profile。 +配置仅接受 Messages,不提供 `protocol` 字段。若解析报告 `protocol is not configurable`,请从 `$DSH_HOME/profiles//cordis.patch.yml` 中 `llm-deepseek` 条目的 `config` 以及覆盖它的 home patch 或命令行 overlay 中删除 `protocol`,保留需要的 `baseURL`、`apiKeyEnv` 和 `models` 字段。已存储的配置若被适配器校验拒绝,后续请求会持续失败,直到配置修正;在模型设置卡中保存其他字段不会移除未知属性。请编辑配置文件,等待 profile 通过 HMR(热模块替换)重新加载;若未启用 HMR,则重启 profile。 成功的 Files 响应必须包含有效 JSON。上传、列举、获取和删除操作的 JSON 解码失败抛出 `INVALID_RESPONSE`,消息包含操作名称与 HTTP 状态,`LlmError.failure` 保留该状态,`cause` 保留原始解析错误。读取响应体时的传输和取消错误保留其原有身份。 From 5f1a524f616dd464f15968692cb5f82522a1d807 Mon Sep 17 00:00:00 2001 From: lsdsjy <1356263+lsdsjy@users.noreply.github.com> Date: Tue, 22 Sep 2026 14:39:19 +0800 Subject: [PATCH 11/23] docs(credentials): clarify private platform request headers --- packages/credentials/deepseek-account/README.i18n.yaml | 4 ++-- packages/credentials/deepseek-account/README.md | 2 +- packages/credentials/deepseek-account/README.zh.md | 2 +- packages/credentials/deepseek-account/src/index.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/credentials/deepseek-account/README.i18n.yaml b/packages/credentials/deepseek-account/README.i18n.yaml index 7d8ddfe1f3..08b3bb0cbf 100644 --- a/packages/credentials/deepseek-account/README.i18n.yaml +++ b/packages/credentials/deepseek-account/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/credentials/deepseek-account/README.md -README.md: 72b42ee996b809992e48ea4c124f0793d756526a -README.zh.md: b30813e24adc2afc9e8245b839432dd195093c63 +README.md: c54dc4feced92308a83c47aa0eb7033766708205 +README.zh.md: 1df0ca4cdc7d55584d8dcba29706746c87dcb31f diff --git a/packages/credentials/deepseek-account/README.md b/packages/credentials/deepseek-account/README.md index 72b42ee996..c54dc4fece 100644 --- a/packages/credentials/deepseek-account/README.md +++ b/packages/credentials/deepseek-account/README.md @@ -60,4 +60,4 @@ No model request prefix changes. The [desktop login decision](../../../.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.md) records cancellation and storage ownership. -PlatformSession may carry private deployment requestHeaders from Host to Electron main. Consumers must exclude those headers from renderer bootstrap and restrict them to the configured origin. mergePlatformCookies preserves unrelated cookie pairs while replacing matching names. +PlatformSession may carry Host-only requestHeaders from Host to Electron main: deployment headers plus the provider's x-client-platform. Consumers must exclude those headers from renderer bootstrap and restrict them to the configured origin. mergePlatformCookies preserves unrelated cookie pairs while replacing matching names. diff --git a/packages/credentials/deepseek-account/README.zh.md b/packages/credentials/deepseek-account/README.zh.md index b30813e24a..1df0ca4cdc 100644 --- a/packages/credentials/deepseek-account/README.zh.md +++ b/packages/credentials/deepseek-account/README.zh.md @@ -60,4 +60,4 @@ AccountDetails.balance 就绪时,value 保存充值钱包,bonusWallets 保 [桌面登录决策](../../../.agents/notes/implemented/architecture/2026-09-14-deepseek-account-login.zh.md)记录取消和存储的职责。 -PlatformSession 可将私有部署 requestHeaders 从 Host 传至 Electron 主进程。消费者必须从渲染层 bootstrap 排除这些请求头,并将其限定于配置来源。mergePlatformCookies 替换同名 Cookie,同时保留其他 Cookie。 +PlatformSession 可将仅限 Host 的 requestHeaders 从 Host 传至 Electron 主进程,其中包含部署请求头和 provider 提供的 x-client-platform。消费者必须从渲染层 bootstrap 排除这些请求头,并将其限定于配置来源。mergePlatformCookies 替换同名 Cookie,同时保留其他 Cookie。 diff --git a/packages/credentials/deepseek-account/src/index.ts b/packages/credentials/deepseek-account/src/index.ts index 465bbedf03..9e91d591c7 100644 --- a/packages/credentials/deepseek-account/src/index.ts +++ b/packages/credentials/deepseek-account/src/index.ts @@ -15,7 +15,7 @@ export interface PlatformSession { readonly token: string /** Optional dist query value selecting the embedded frontend deployment. */ readonly embeddedPageDist?: string - /** Private deployment headers for native requests; excluded from renderer bootstrap. */ + /** Host-only request headers: deployment headers and the provider client identity; never exposed through renderer bootstrap. */ readonly requestHeaders?: Readonly> } From c74e36acfc6ee987abc5c923108d922789afefa0 Mon Sep 17 00:00:00 2001 From: Turtle Date: Tue, 22 Sep 2026 14:55:34 +0800 Subject: [PATCH 12/23] fix(web): keep line breaks when re-editing a queued message The inline queue editor was a single-line input, and HTML strips newlines from such a value: opening and saving a multi-line queued message silently collapsed it into one line before delivery. Edit in a textarea that grows with its content, capped at six lines; Enter saves, Shift+Enter breaks the line, and Escape still cancels. --- .../client/ui-conversation/README.i18n.yaml | 4 +- packages/client/ui-conversation/README.md | 2 +- packages/client/ui-conversation/README.zh.md | 2 +- .../src/client/queue/QueueDock.module.css | 11 ++- .../src/client/queue/QueueDock.tsx | 71 ++++++++++++++----- .../tests/queue-dock.client.spec.tsx | 31 +++++++- 6 files changed, 95 insertions(+), 26 deletions(-) diff --git a/packages/client/ui-conversation/README.i18n.yaml b/packages/client/ui-conversation/README.i18n.yaml index 192a0da89b..99eba4e710 100644 --- a/packages/client/ui-conversation/README.i18n.yaml +++ b/packages/client/ui-conversation/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/client/ui-conversation/README.md -README.md: a58ae14a450a18ae4bc89dc0dc5cc6fb664d48e0 -README.zh.md: 20d6cab01e7b5fc4c9b075a993783c9df8121413 +README.md: 48df40483632a7c63ec59d389f920d4dd663155b +README.zh.md: f5c34657264f97d8f0178859dcba5e3fc981f17d diff --git a/packages/client/ui-conversation/README.md b/packages/client/ui-conversation/README.md index a58ae14a45..48df404836 100644 --- a/packages/client/ui-conversation/README.md +++ b/packages/client/ui-conversation/README.md @@ -68,7 +68,7 @@ Active transcripts in the main occurrence expose content-width drag handles in t The width-handle indicator follows the pointer only during a captured drag; ordinary hover leaves its position unchanged. -The resident composer survives no-Session and Session transitions. Whitespace hides its placeholder; a whitespace-only draft without attachments cannot be sent. The no-Session state keeps the same composer surface mounted but inert while the Workspace picker connects a blank Session. The surface is a shell-owned Lexical editor: reference chips are atomic decorator nodes carrying the owner's serialization identity (submission expands them through the owner codec), claimed slash commands stay styled leading text, folder text references carry the folder glyph as an icon prefix, and the draft's clipboard projection is mirrored into the per-Session Conversation store. QueueDock reads `next-turn` directly from the Session `inbox` projection, including cold recovered messages. Queue operations address exact queue occurrences through the scoped `ctx.conversation` service; queue previews render sent text through the shared inline reference projection from `ui-primitives` (wire session forms fold to their label) and show local or durable images and files in original attachment order. Images use thumbnails; files use compact name-and-size cards. An edit exposes the literal sent text, and durable thumbnails resolve through the session image URL cache. Busy Enter behavior is stored in the Host-backed `ui-conversation` settings namespace. The composer keymap arbitrates the trigger menu's keys through the slash pipeline — Tab settles the highlighted completion (or drills a drillable one), Escape and Shift+Tab leave the menu without settling — and leaves every other key to the editor. An overlay that takes the keyboard hands it back through `SessionInput.focus()`, which rides Lexical's own focus so the caret returns where the draft left it rather than at the start. +The resident composer survives no-Session and Session transitions. Whitespace hides its placeholder; a whitespace-only draft without attachments cannot be sent. The no-Session state keeps the same composer surface mounted but inert while the Workspace picker connects a blank Session. The surface is a shell-owned Lexical editor: reference chips are atomic decorator nodes carrying the owner's serialization identity (submission expands them through the owner codec), claimed slash commands stay styled leading text, folder text references carry the folder glyph as an icon prefix, and the draft's clipboard projection is mirrored into the per-Session Conversation store. QueueDock reads `next-turn` directly from the Session `inbox` projection, including cold recovered messages. Queue operations address exact queue occurrences through the scoped `ctx.conversation` service; queue previews render sent text through the shared inline reference projection from `ui-primitives` (wire session forms fold to their label) and show local or durable images and files in original attachment order. Images use thumbnails; files use compact name-and-size cards. An edit exposes the literal sent text in a textarea that grows with its content, so line breaks survive re-editing; Enter saves, Shift+Enter breaks the line, and Escape cancels. Durable thumbnails resolve through the session image URL cache. Busy Enter behavior is stored in the Host-backed `ui-conversation` settings namespace. The composer keymap arbitrates the trigger menu's keys through the slash pipeline — Tab settles the highlighted completion (or drills a drillable one), Escape and Shift+Tab leave the menu without settling — and leaves every other key to the editor. An overlay that takes the keyboard hands it back through `SessionInput.focus()`, which rides Lexical's own focus so the caret returns where the draft left it rather than at the start. Default sends commit optimistically: Enter clears the draft, occurrence table, and undo history in the same transaction, keeps the composer in `plain`, and runs the send as a detached attempt, so typing and further sends continue during the flight. `sendSession` registers a Session submission echo (`session.beginSubmission`) with the delivery mode before serializing, preserving selected image and file order in `pendingSubmissions`; Session derives the placement from that mode and its current running state, so idle sends use the transcript, busy Queue sends use QueueDock, and busy Steer sends use the pending-steering surface. It then yields one paint, encodes images through the browser's native `FileReader` data-URL path, and cites staged file receipts. Command submissions use the same receipts for generic files, so sending `/goal` or `/plan` never reads those browser files again. The prompt reuses the submission `requestId`; queue and history observation by that `rpcId` retires the echo once. Concurrent failures are restored together in submission order until the user edits the restored content; command submissions keep the frozen `submitting` phase. Detached attempts retain their attachment ids through admission and Session scope disposal. An observed retirement immediately exposes each image preview through the durable cache, replaces it with the canonical URL after fetching the admitted attachment, revokes each URL after its use ends, and releases file cards. Selected generic files enter one FIFO background-upload queue; `maxConcurrentFileUploads` defaults to two active Worker transports, the Conversation service retains queued and active operations plus byte progress across Session navigation, and removing a draft skips its queued transfer or aborts its active transport. Where the browser shell exposes `__DSH_HOST_PATHS__` (the Desktop application), dropped or pasted folders and dropped, picked, or pasted non-image files with a real path become `@path` chips; images keep uploading. Drag-and-drop and paste identify directories through the browser entry API; when that API is absent or returns no entry, pasted items retain ordinary file handling. The file picker cannot select directories. References require the `ui-reference` plugin and the original paths to remain readable by the model's file tools. Paths inside the workspace are relative; others remain absolute. The whole batch is validated before insertion, retains source order and selected text, and uses whitespace-separated, closed-quote mentions. A browser without the bridge refuses dropped or pasted folders; a Desktop folder without a reported path is rejected separately. Continuable subagents disable attachment intake and skip local echoes because their transport does not preserve the browser request id. diff --git a/packages/client/ui-conversation/README.zh.md b/packages/client/ui-conversation/README.zh.md index 20d6cab01e..f5c3465726 100644 --- a/packages/client/ui-conversation/README.zh.md +++ b/packages/client/ui-conversation/README.zh.md @@ -68,7 +68,7 @@ Session 首次绑定或缓存的 Session 成为 current 时,shell 会在渲染 宽度拖拽条的指示线只在已捕获指针的拖拽期间跟随指针,普通悬停不改变其位置。 -常驻 composer 在无 Session 与有 Session 之间保持挂载。输入空白字符会隐藏占位提示;没有附件的纯空白草稿无法发送。无 Session 时,同一个编辑器表面保持 inert,Workspace picker 连接 blank Session。该表面是 shell 所有的 Lexical 编辑器:引用 chip 是携带 owner 序列化身份的原子 decorator 节点(提交时经 owner codec 展开),已认领的 slash command 保持为带样式的行首文本,文件夹文本引用以图标前缀携带文件夹图形,草稿的剪贴板投影镜像到逐 Session Conversation store。QueueDock 直接从 Session 的 `inbox` 投影读取 `next-turn`,包含从冷状态恢复的消息。Queue 操作通过 scoped `ctx.conversation` service 寻址准确的 queue occurrence;queue 预览经 `ui-primitives` 的共享行内引用投影渲染已发送文本(wire 会话形式折叠为其标签),并按原始附件顺序展示本地或持久化的图片和文件。图片使用缩略图,文件使用紧凑的名称与大小卡片。编辑态展示字面发送文本,持久化缩略图通过会话图片 URL 缓存解析。繁忙时 Enter 行为保存在 Host-backed `ui-conversation` settings namespace。 composer 键盘映射经斜杠流水线裁决触发菜单的按键——Tab 确认高亮补全项(可下钻项则下钻),Escape 与 Shift+Tab 离开菜单且不选定——其余按键交给编辑器自身。 接管键盘的浮层通过 `SessionInput.focus()` 把键盘还回来,该路径走 Lexical 自己的 focus,因此光标回到草稿原来的位置而不是开头。 +常驻 composer 在无 Session 与有 Session 之间保持挂载。输入空白字符会隐藏占位提示;没有附件的纯空白草稿无法发送。无 Session 时,同一个编辑器表面保持 inert,Workspace picker 连接 blank Session。该表面是 shell 所有的 Lexical 编辑器:引用 chip 是携带 owner 序列化身份的原子 decorator 节点(提交时经 owner codec 展开),已认领的 slash command 保持为带样式的行首文本,文件夹文本引用以图标前缀携带文件夹图形,草稿的剪贴板投影镜像到逐 Session Conversation store。QueueDock 直接从 Session 的 `inbox` 投影读取 `next-turn`,包含从冷状态恢复的消息。Queue 操作通过 scoped `ctx.conversation` service 寻址准确的 queue occurrence;queue 预览经 `ui-primitives` 的共享行内引用投影渲染已发送文本(wire 会话形式折叠为其标签),并按原始附件顺序展示本地或持久化的图片和文件。图片使用缩略图,文件使用紧凑的名称与大小卡片。编辑态在可随内容增高的 textarea 中展示字面发送文本,因此重新编辑不会丢失换行;Enter 保存,Shift+Enter 换行,Escape 取消。持久化缩略图通过会话图片 URL 缓存解析。繁忙时 Enter 行为保存在 Host-backed `ui-conversation` settings namespace。 composer 键盘映射经斜杠流水线裁决触发菜单的按键——Tab 确认高亮补全项(可下钻项则下钻),Escape 与 Shift+Tab 离开菜单且不选定——其余按键交给编辑器自身。 接管键盘的浮层通过 `SessionInput.focus()` 把键盘还回来,该路径走 Lexical 自己的 focus,因此光标回到草稿原来的位置而不是开头。 默认发送采用乐观提交:Enter 在同一事务里清空草稿、occurrence 表和撤销历史,composer 保持 `plain`,发送作为 detached attempt 运行,发送期间可以继续输入和提交。`sendSession` 在序列化之前用投递模式注册 Session 提交回显(`session.beginSubmission`),并在 `pendingSubmissions` 中保留图片与文件的选择顺序;Session 根据该模式与当前运行状态推导位置,因此空闲发送进入 transcript(文本记录),繁忙时 Queue 进入 QueueDock,繁忙时 Steer 进入 pending-steering 区域。随后让出一帧,图片经浏览器原生 `FileReader` data-URL 路径编码,文件则引用已暂存凭证。命令提交也用同一凭证表示通用文件,因此发送 `/goal` 或 `/plan` 时不会再次读取这些浏览器文件。提示词复用提交 `requestId`;queue 或历史以同一 `rpcId` 被观察后,回显只退休一次。多个并发发送失败时,在用户编辑还原内容之前按提交顺序合并还原;命令提交保持冻结的 `submitting` 阶段。Detached attempt 持有附件 id,直到 admission 完成或 Session scope 销毁。回显以 observed 退休时,durable 图片缓存立即公开每个预览 URL,读取 admitted 附件后用规范化 URL 替换预览,并在各 URL 停止使用后撤销,同时释放文件卡。选中的通用文件进入同一个先进先出的后台上传队列;`maxConcurrentFileUploads` 默认允许两个 Worker transport 同时运行,Conversation 服务在切换 Session 时继续持有排队和运行中的传输操作及字节进度,移除草稿会跳过排队中的传输或中止正在运行的传输。浏览器 shell 暴露 `__DSH_HOST_PATHS__` 时(桌面应用),拖入或粘贴的文件夹以及拖入、选择或粘贴的带真实路径的非图片文件会成为 `@路径` chip;图片仍然上传。拖放和粘贴通过浏览器 entry API 识别目录;该 API 不可用或没有返回 entry 时,粘贴项沿用普通文件处理。文件选择器不能选择目录。引用需要启用 `ui-reference` 插件,原路径也必须仍可由模型的文件工具读取。工作区内的路径使用相对形式,其他路径保留绝对形式。整批文件先校验再插入,保留来源顺序和已选中的文字,引用之间有空白分隔,含空格的路径使用闭合引号。没有该桥的浏览器会拒绝拖入或粘贴的文件夹,桌面端无法获取文件夹路径时单独报错。continuable 子代理禁用附件入口,也不创建本地回显,因为其 transport 不保留浏览器 request id。 diff --git a/packages/client/ui-conversation/src/client/queue/QueueDock.module.css b/packages/client/ui-conversation/src/client/queue/QueueDock.module.css index 516ba7e83a..ca1abd25d2 100644 --- a/packages/client/ui-conversation/src/client/queue/QueueDock.module.css +++ b/packages/client/ui-conversation/src/client/queue/QueueDock.module.css @@ -124,7 +124,8 @@ align-items: center; gap: 10px; width: 100%; - height: 36px; + /* Grows with the inline editor's content; the other rows stay 36px. */ + min-height: 36px; padding: 4px 5px 4px 12px; border-radius: 8px; } @@ -211,13 +212,17 @@ .editor { box-sizing: border-box; - height: 28px; - padding: 0 8px; + min-height: 28px; + /* Six 20px text lines plus padding and border, then the editor scrolls. */ + max-height: 127px; + padding: 3px 8px; border: 0.5px solid var(--dsw-alias-border-l4); border-radius: 6px; outline: none; background: var(--dsw-alias-bg-base); color: var(--dsw-alias-label-primary); + overflow-y: auto; + resize: none; } .editor:focus { diff --git a/packages/client/ui-conversation/src/client/queue/QueueDock.tsx b/packages/client/ui-conversation/src/client/queue/QueueDock.tsx index 22f0730795..03146f3e4c 100644 --- a/packages/client/ui-conversation/src/client/queue/QueueDock.tsx +++ b/packages/client/ui-conversation/src/client/queue/QueueDock.tsx @@ -1,5 +1,5 @@ import type { Context } from '@deepseek-ai/cordis' -import { useEffect, useId, useMemo, useState } from 'react' +import { useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from 'react' import type { FileAttachmentRef, ImageAttachmentRef } from '@deepseek-ai/dsh-attachment' import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots' import type { SessionId } from '@deepseek-ai/dsh-session/types' @@ -98,6 +98,53 @@ function QueueThumb({ attachment, loadImage, label }: { : {label} } +/** + * Inline editor for one queued row. A textarea rather than an input: HTML + * strips newlines from single-line input values, so editing a multi-line + * queued message through one rewrites it as a single line. It grows with its + * content up to the CSS cap, then scrolls. Enter saves, Shift+Enter breaks the + * line, Escape cancels. + */ +function QueueEditor({ text, label, onChange, onSave, onCancel }: { + text: string + label: string + onChange: (text: string) => void + onSave: () => void + onCancel: () => void +}) { + const ref = useRef(null) + + useLayoutEffect(() => { + const node = ref.current + /* v8 ignore next -- the ref is attached before layout effects run. */ + if (node === null) return + node.style.height = 'auto' + // scrollHeight excludes the border that the border-box height includes. + node.style.height = `${node.scrollHeight + node.offsetHeight - node.clientHeight}px` + }, [text]) + + return ( +