@deepseek-ai/dsh-base 0.1.0-rc.6 → 0.1.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/bundle/base/README.md
5
- README.md: bd38f39f58ee1f765ff34d40cf57cc6daed2b32b
6
- README.zh.md: bcf4463587f42a245126f87388f3c0a4e57f0976
5
+ README.md: 8487426ee7bf1b39a79b4e80b9c7bd661f317998
6
+ README.zh.md: 797968d362cd35d1ba04087b30d8d02d1b537b44
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [中文](README.zh.md)
4
4
 
5
- The shared dsh core as a profile bundle: [`cordis.patch.yml`](cordis.patch.yml) inserts every base plugin row — model adapters, the shared [`agent-default-model`](../../core/agent-default-model/README.md) selection, tools, persistence, policy, settings/credentials, telemetry, and host-level subagent providers — over the empty profile root, as the first layer of every profile's `dsh.profile.bundles` list. Codex and Claude Code providers load dormant; Agent Presets independently decide whether their agent contributes either model-facing delegation tool. Later bundle layers (e.g. [`dsh-web-app`](../web-app/README.md)) and the user's profile `cordis.patch.yml` override these rows by id; a patch replaces a row's whole `config`, so mode-specific values live in mode bundles, not here. The package has no runtime API; the profile composer resolves the patch through the `dsh.bundle.patch` manifest field, never through code.
5
+ The shared dsh core as a profile bundle: [`cordis.patch.yml`](cordis.patch.yml) inserts every base plugin row — model adapters, the shared [`agent-default-model`](../../core/agent-default-model/README.md) selection, tools, persistence, policy, settings/credentials, telemetry, and the core spawn/fork subagent providers — over the empty profile root, as the first layer of every profile's `dsh.profile.bundles` list. The optional Codex and Claude Code providers stay outside this package and its production dependency closure; a Profile installs either [product provider Bundle](../../subagent/README.md) only when needed. The default `@deepseek-ai/dsh` production closure therefore includes neither product provider, the Claude Agent SDK, nor the Codex wrapper and platform payloads. Later bundle layers (e.g. [`dsh-web-app`](../web-app/README.md)) and the user's profile `cordis.patch.yml` override these rows by id; a patch replaces a row's whole `config`, so mode-specific values live in mode bundles, not here. The package has no runtime API; the profile composer resolves the patch through the `dsh.bundle.patch` manifest field, never through code.
6
6
 
7
7
  The patch gates both shell stacks by platform on its own rows: `bash-sandbox`/`tool-bash` carry `disabled: !!js process.platform === 'win32'` (bash has no Windows runner), and their twins `pwsh-sandbox`/`tool-pwsh` mount on win32 only with the inverted expression — one shared patch file, exactly one shell stack per host. The permission surface stays exactly as on POSIX: `sandbox`/`sandbox-policy` enforce the file-effect policy through the Windows ACL restricted-token runner (the win32 chain of `dsh-sandbox-local` → `@deepseek-ai/dsh-sandbox-windows-acl`), the permission switcher and the approval service run unchanged, and `fs-sandbox` keeps fencing `ctx.fs` writes — mounting `dsh-fs-local` alongside it would double-register `ctx.fs` and fail the load. A Windows host that prefers the unconfined local pwsh executor or full access overrides these rows through its profile or home `cordis.patch.yml` (the bash-restore recipe must be complete: disable `pwsh-sandbox`/`tool-pwsh` AND re-enable `bash-sandbox`/`tool-bash` — both executor families register the same `bash` service, so an incomplete recipe fails loud at load). POSIX hosts see the pwsh rows disabled.
8
8
 
@@ -19,5 +19,4 @@ None directly; each inserted row's package owns its effect.
19
19
  ## Known Limitations and Deferred Work
20
20
 
21
21
  - **A patch replaces whole row configs** — profile overrides must restate every field a row keeps; there is no deep-merge layer.
22
- - **Claude's SDK platform CLI remains in the Profile install closure** — the base bundle depends on the Claude provider, whose production path resolves the host `claude`; removing the SDK's unused optional payload is deferred to the product installation-closure follow-up.
23
22
  - **The Windows temp grant is a private per-session subdirectory** — `workspace-write` confines writes to the workspace plus the session's own temp subdirectory (`<temp>\dsh-<hash>`, TMP/TEMP rewritten for confined children); `read-only` grants nothing. See `@deepseek-ai/dsh-sandbox-windows-acl`.
package/README.zh.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md) | 中文
4
4
 
5
- 以 profile 组合包形式交付的共享 dsh 核心:[`cordis.patch.yml`](cordis.patch.yml) 在空的 profile 根之上插入全部基础插件行——模型适配器、共享的 [`agent-default-model`](../../core/agent-default-model/README.md) 选择、工具、持久化、策略、settings/credentials、遥测与宿主级 subagent provider——作为每个 profile 的 `dsh.profile.bundles` 列表中的第一层。Codex 与 Claude Code provider 以休眠状态加载;Agent Preset 分别决定自己的 agent 是否贡献任一面向模型的委派工具。后续的组合包层(例如 [`dsh-web-app`](../web-app/README.md))和用户 profile 的 `cordis.patch.yml` 按 id 覆盖这些行;patch 会替换目标行的整个 `config`,因此模式专属的值放在各模式组合包中,而不是这里。该包没有运行时 API;profile 组合器通过 manifest(元数据清单)的 `dsh.bundle.patch` 字段解析 patch,绝不通过代码。
5
+ 以 profile 组合包形式交付的共享 dsh 核心:[`cordis.patch.yml`](cordis.patch.yml) 在空的 profile 根之上插入全部基础插件行——模型适配器、共享的 [`agent-default-model`](../../core/agent-default-model/README.md) 选择、工具、持久化、策略、settings/credentials、遥测与核心 spawn/fork subagent provider——作为每个 profile 的 `dsh.profile.bundles` 列表中的第一层。可选的 Codex 与 Claude Code provider 不属于本包及其生产依赖闭包;Profile 仅在需要时安装任一[产品 provider Bundle](../../subagent/README.md)。因此,默认的 `@deepseek-ai/dsh` 生产依赖闭包既不包含任一产品 provider、Claude Agent SDK,也不包含 Codex wrapper 及其平台载荷。后续的组合包层(例如 [`dsh-web-app`](../web-app/README.md))和用户 profile 的 `cordis.patch.yml` 按 id 覆盖这些行;patch 会替换目标行的整个 `config`,因此模式专属的值放在各模式组合包中,而不是这里。该包没有运行时 API;profile 组合器通过 manifest(元数据清单)的 `dsh.bundle.patch` 字段解析 patch,绝不通过代码。
6
6
 
7
7
  patch 在自身上按平台门控两个 shell 栈:`bash-sandbox`/`tool-bash` 携带 `disabled: !!js process.platform === 'win32'`(bash 没有 Windows runner),它们的孪生行 `pwsh-sandbox`/`tool-pwsh` 以取反的表达式仅在 win32 挂载——同一份 patch 文件,每个宿主恰好挂载一个 shell 栈。权限面与 POSIX 完全一致:`sandbox`/`sandbox-policy` 通过 Windows ACL 受限令牌 runner(`dsh-sandbox-local` 的 win32 链 → `@deepseek-ai/dsh-sandbox-windows-acl`)执行文件效果策略,权限切换器与 approval 服务原样运行,`fs-sandbox` 继续围栏 `ctx.fs` 写入——在其旁再挂载 `dsh-fs-local` 会重复注册 `ctx.fs` 并在加载时失败。偏好不受沙盒约束的本地 pwsh 执行器或完整访问的 Windows 主机通过其 profile 或 home 的 `cordis.patch.yml` 覆盖这些行(bash 恢复配方必须完整:禁用 `pwsh-sandbox`/`tool-pwsh` 并重新启用 `bash-sandbox`/`tool-bash`——两个执行器家族注册同一个 `bash` 服务,配方不完整会在加载时直接报错)。POSIX 主机看到的是被禁用的 pwsh 行。
8
8
 
@@ -19,5 +19,4 @@ patch 在自身上按平台门控两个 shell 栈:`bash-sandbox`/`tool-bash`
19
19
  ## 已知限制与暂缓事项
20
20
 
21
21
  - **patch 会替换整行 `config`**:profile 覆盖必须重述该行需要保留的每个字段;不存在深度合并层。
22
- - **Claude SDK 的平台 CLI(命令行界面)仍在 Profile 安装闭包中**:base 组合包依赖 Claude 提供方,其生产路径解析宿主提供的 `claude`;移除 SDK 中未使用的可选载荷,推迟到产品安装闭包后续项处理。
23
22
  - **Windows 的临时目录授权是按会话的私有子目录**——`workspace-write` 把写入限制在工作区与会话自己的 temp 子目录(`<temp>\dsh-<hash>`,受限子进程的 TMP/TEMP 被改写);`read-only` 不授予任何临时目录写入权限。见 `@deepseek-ai/dsh-sandbox-windows-acl`。
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-base",
3
3
  "description": "The shared dsh core as a profile bundle: every profile's first patch layer, inserting the base plugin rows over the empty profile root",
4
- "version": "0.1.0-rc.6",
4
+ "version": "0.1.0-rc.8",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -39,90 +39,90 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "@deepseek-ai/cordis-plugin-timer": "^1.1.3",
43
- "@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
44
- "@deepseek-ai/dsh-agent-default-model": "^0.1.0-rc.6",
45
- "@deepseek-ai/dsh-agent-loop": "^0.1.0-rc.6",
46
- "@deepseek-ai/dsh-shell-env": "^0.1.0-rc.6",
47
42
  "@deepseek-ai/cordis-plugin-hmr": "^1.0.16",
48
- "@deepseek-ai/dsh-bash-sandbox": "^0.1.0-rc.6",
49
- "@deepseek-ai/dsh-command-compact": "^0.1.0-rc.6",
50
- "@deepseek-ai/dsh-command-feedback": "^0.1.0-rc.6",
51
- "@deepseek-ai/dsh-command-goal": "^0.1.0-rc.6",
52
- "@deepseek-ai/dsh-commands": "^0.1.0-rc.6",
53
- "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.0-rc.6",
54
- "@deepseek-ai/dsh-compaction-basic": "^0.1.0-rc.6",
55
- "@deepseek-ai/dsh-credentials-local": "^0.1.0-rc.6",
56
- "@deepseek-ai/dsh-fs-local": "^0.1.0-rc.6",
57
- "@deepseek-ai/dsh-fs-observation-policy": "^0.1.0-rc.6",
58
- "@deepseek-ai/dsh-fs-sandbox": "^0.1.0-rc.6",
59
- "@deepseek-ai/dsh-goal": "^0.1.0-rc.6",
60
- "@deepseek-ai/dsh-goal-round-driver": "^0.1.0-rc.6",
61
- "@deepseek-ai/dsh-api-gateway": "^0.1.0-rc.6",
62
- "@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
63
- "@deepseek-ai/dsh-llm-deepseek": "^0.1.0-rc.6",
64
- "@deepseek-ai/dsh-llm-pi-ai": "^0.1.0-rc.6",
65
- "@deepseek-ai/dsh-llm-retry": "^0.1.0-rc.6",
66
- "@deepseek-ai/dsh-permission-presets": "^0.1.0-rc.6",
67
- "@deepseek-ai/dsh-plan-mode": "^0.1.0-rc.6",
68
- "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.0-rc.6",
69
- "@deepseek-ai/dsh-repeat-tool-reminder": "^0.1.0-rc.6",
70
- "@deepseek-ai/dsh-sandbox-local": "^0.1.0-rc.6",
71
- "@deepseek-ai/dsh-sandbox-policy": "^0.1.0-rc.6",
72
- "@deepseek-ai/dsh-session": "^0.1.0-rc.6",
73
- "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.0-rc.6",
74
- "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.0-rc.6",
75
- "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.6",
76
- "@deepseek-ai/dsh-session-query-sqlite": "^0.1.0-rc.6",
77
- "@deepseek-ai/dsh-session-telemetry-otel": "^0.1.0-rc.6",
78
- "@deepseek-ai/dsh-session-title": "^0.1.0-rc.6",
79
- "@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.1.0-rc.6",
80
- "@deepseek-ai/dsh-settings-file": "^0.1.0-rc.6",
81
- "@deepseek-ai/dsh-skill": "^0.1.0-rc.6",
82
- "@deepseek-ai/dsh-skill-badge": "^0.1.0-rc.6",
83
- "@deepseek-ai/dsh-skill-filesystem": "^0.1.0-rc.6",
84
- "@deepseek-ai/dsh-spill-local": "^0.1.0-rc.6",
85
- "@deepseek-ai/dsh-spill-policy": "^0.1.0-rc.6",
86
- "@deepseek-ai/dsh-subagent": "^0.1.0-rc.6",
87
- "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.0-rc.6",
88
- "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.0-rc.6",
89
- "@deepseek-ai/dsh-subprocess-local": "^0.1.0-rc.6",
90
- "@deepseek-ai/dsh-attachment-local": "^0.1.0-rc.6",
91
- "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.0-rc.6",
92
- "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.6",
93
- "@deepseek-ai/dsh-token-meter": "^0.1.0-rc.6",
94
- "@deepseek-ai/dsh-tool-bash": "^0.1.0-rc.6",
95
- "@deepseek-ai/dsh-tool-fs-search": "^0.1.0-rc.6",
96
- "@deepseek-ai/dsh-tool-fs": "^0.1.0-rc.6",
97
- "@deepseek-ai/dsh-tool-goal": "^0.1.0-rc.6",
98
- "@deepseek-ai/dsh-jobs-local": "^0.1.0-rc.6",
99
- "@deepseek-ai/dsh-tool-ralph": "^0.1.0-rc.6",
100
- "@deepseek-ai/dsh-tool-skill": "^0.1.0-rc.6",
101
- "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.0-rc.6",
102
- "@deepseek-ai/dsh-tool-pwsh": "^0.1.0-rc.6",
103
- "@deepseek-ai/dsh-tool-subagent": "^0.1.0-rc.6",
104
- "@deepseek-ai/dsh-tool-subagent-control": "^0.1.0-rc.6",
105
- "@deepseek-ai/dsh-tool-subagent-report": "^0.1.0-rc.6",
106
- "@deepseek-ai/dsh-tool-jobs": "^0.1.0-rc.6",
107
- "@deepseek-ai/dsh-tool-todo": "^0.1.0-rc.6",
108
- "@deepseek-ai/dsh-tool-web": "^0.1.0-rc.6",
109
- "@deepseek-ai/dsh-tool-workflow": "^0.1.0-rc.6",
110
- "@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
111
- "@deepseek-ai/dsh-typert-loader": "^0.1.0-rc.6",
112
- "@deepseek-ai/dsh-typert-registry": "^0.1.0-rc.6",
113
- "@deepseek-ai/dsh-user-approval": "^0.1.0-rc.6",
114
- "@deepseek-ai/dsh-user-questions": "^0.1.0-rc.6",
115
- "@deepseek-ai/dsh-web": "^0.1.0-rc.6",
116
- "@deepseek-ai/dsh-web-search-deepseek": "^0.1.0-rc.6",
117
- "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.0-rc.6",
118
- "@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.6"
43
+ "@deepseek-ai/dsh-agent": "^0.1.0-rc.8",
44
+ "@deepseek-ai/dsh-agent-default-model": "^0.1.0-rc.8",
45
+ "@deepseek-ai/dsh-agent-loop": "^0.1.0-rc.8",
46
+ "@deepseek-ai/cordis-plugin-timer": "^1.1.3",
47
+ "@deepseek-ai/dsh-attachment-local": "^0.1.0-rc.8",
48
+ "@deepseek-ai/dsh-shell-env": "^0.1.0-rc.8",
49
+ "@deepseek-ai/dsh-bash-sandbox": "^0.1.0-rc.8",
50
+ "@deepseek-ai/dsh-command-feedback": "^0.1.0-rc.8",
51
+ "@deepseek-ai/dsh-command-compact": "^0.1.0-rc.8",
52
+ "@deepseek-ai/dsh-command-goal": "^0.1.0-rc.8",
53
+ "@deepseek-ai/dsh-commands": "^0.1.0-rc.8",
54
+ "@deepseek-ai/dsh-compaction-basic": "^0.1.0-rc.8",
55
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.0-rc.8",
56
+ "@deepseek-ai/dsh-credentials-local": "^0.1.0-rc.8",
57
+ "@deepseek-ai/dsh-fs-local": "^0.1.0-rc.8",
58
+ "@deepseek-ai/dsh-fs-observation-policy": "^0.1.0-rc.8",
59
+ "@deepseek-ai/dsh-api-gateway": "^0.1.0-rc.8",
60
+ "@deepseek-ai/dsh-llm": "^0.1.0-rc.8",
61
+ "@deepseek-ai/dsh-goal": "^0.1.0-rc.8",
62
+ "@deepseek-ai/dsh-llm-deepseek": "^0.1.0-rc.8",
63
+ "@deepseek-ai/dsh-llm-pi-ai": "^0.1.0-rc.8",
64
+ "@deepseek-ai/dsh-llm-retry": "^0.1.0-rc.8",
65
+ "@deepseek-ai/dsh-permission-presets": "^0.1.0-rc.8",
66
+ "@deepseek-ai/dsh-goal-round-driver": "^0.1.0-rc.8",
67
+ "@deepseek-ai/dsh-fs-sandbox": "^0.1.0-rc.8",
68
+ "@deepseek-ai/dsh-plan-mode": "^0.1.0-rc.8",
69
+ "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.0-rc.8",
70
+ "@deepseek-ai/dsh-repeat-tool-reminder": "^0.1.0-rc.8",
71
+ "@deepseek-ai/dsh-sandbox-local": "^0.1.0-rc.8",
72
+ "@deepseek-ai/dsh-sandbox-policy": "^0.1.0-rc.8",
73
+ "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.0-rc.8",
74
+ "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.0-rc.8",
75
+ "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.8",
76
+ "@deepseek-ai/dsh-session-query-sqlite": "^0.1.0-rc.8",
77
+ "@deepseek-ai/dsh-session": "^0.1.0-rc.8",
78
+ "@deepseek-ai/dsh-session-title": "^0.1.0-rc.8",
79
+ "@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.1.0-rc.8",
80
+ "@deepseek-ai/dsh-skill-badge": "^0.1.0-rc.8",
81
+ "@deepseek-ai/dsh-session-telemetry-otel": "^0.1.0-rc.8",
82
+ "@deepseek-ai/dsh-spill-local": "^0.1.0-rc.8",
83
+ "@deepseek-ai/dsh-spill-policy": "^0.1.0-rc.8",
84
+ "@deepseek-ai/dsh-subagent": "^0.1.0-rc.8",
85
+ "@deepseek-ai/dsh-settings-file": "^0.1.0-rc.8",
86
+ "@deepseek-ai/dsh-skill": "^0.1.0-rc.8",
87
+ "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.0-rc.8",
88
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.0-rc.8",
89
+ "@deepseek-ai/dsh-subprocess-local": "^0.1.0-rc.8",
90
+ "@deepseek-ai/dsh-skill-filesystem": "^0.1.0-rc.8",
91
+ "@deepseek-ai/dsh-jobs-local": "^0.1.0-rc.8",
92
+ "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.0-rc.8",
93
+ "@deepseek-ai/dsh-token-meter": "^0.1.0-rc.8",
94
+ "@deepseek-ai/dsh-tool-bash": "^0.1.0-rc.8",
95
+ "@deepseek-ai/dsh-tool-fs": "^0.1.0-rc.8",
96
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.8",
97
+ "@deepseek-ai/dsh-tool-pwsh": "^0.1.0-rc.8",
98
+ "@deepseek-ai/dsh-tool-ralph": "^0.1.0-rc.8",
99
+ "@deepseek-ai/dsh-tool-skill": "^0.1.0-rc.8",
100
+ "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.0-rc.8",
101
+ "@deepseek-ai/dsh-tool-fs-search": "^0.1.0-rc.8",
102
+ "@deepseek-ai/dsh-tool-subagent": "^0.1.0-rc.8",
103
+ "@deepseek-ai/dsh-tool-goal": "^0.1.0-rc.8",
104
+ "@deepseek-ai/dsh-tool-subagent-report": "^0.1.0-rc.8",
105
+ "@deepseek-ai/dsh-tool-jobs": "^0.1.0-rc.8",
106
+ "@deepseek-ai/dsh-tool-todo": "^0.1.0-rc.8",
107
+ "@deepseek-ai/dsh-tool-web": "^0.1.0-rc.8",
108
+ "@deepseek-ai/dsh-tool-subagent-control": "^0.1.0-rc.8",
109
+ "@deepseek-ai/dsh-tool-workflow": "^0.1.0-rc.8",
110
+ "@deepseek-ai/dsh-tools": "^0.1.0-rc.8",
111
+ "@deepseek-ai/dsh-typert-loader": "^0.1.0-rc.8",
112
+ "@deepseek-ai/dsh-typert-registry": "^0.1.0-rc.8",
113
+ "@deepseek-ai/dsh-user-approval": "^0.1.0-rc.8",
114
+ "@deepseek-ai/dsh-web": "^0.1.0-rc.8",
115
+ "@deepseek-ai/dsh-web-search-deepseek": "^0.1.0-rc.8",
116
+ "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.0-rc.8",
117
+ "@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.8",
118
+ "@deepseek-ai/dsh-user-questions": "^0.1.0-rc.8"
119
119
  },
120
120
  "peerDependencies": {
121
- "@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
121
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.8",
122
122
  "@deepseek-ai/cordis": "^4.0.1"
123
123
  },
124
124
  "devDependencies": {
125
- "@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
125
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.8",
126
126
  "@deepseek-ai/cordis": "^4.0.1"
127
127
  }
128
128
  }