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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.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: 00a177d4dd65de8706aa0e27a79d06a9a50eb55a
6
+ README.zh.md: ad70fc16035d3dd70b04e78c31aea90acf61119b
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 host-level subagent providers — over the empty profile root, as the first layer of every profile's `dsh.profile.bundles` list. This bundle neither depends on nor mounts the optional Codex and Claude Code providers; an opting-in Profile installs and mounts the selected provider once on the host plane, while Agent Presets decide whether their agents receive the corresponding model-facing delegation tools. 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、遥测与宿主级 subagent provider——作为每个 profile 的 `dsh.profile.bundles` 列表中的第一层。这个 bundle 既不依赖也不挂载可选的 Codex 与 Claude Code provider;选择产品集成的 Profile 会安装目标 provider 并在 host plane(宿主平面)挂载一次,Agent Preset 则决定自己的 agent 是否获得对应的面向模型委派工具。后续的组合包层(例如 [`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.7",
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.7",
44
+ "@deepseek-ai/dsh-agent-default-model": "^0.1.0-rc.7",
45
+ "@deepseek-ai/dsh-agent-loop": "^0.1.0-rc.7",
46
+ "@deepseek-ai/cordis-plugin-timer": "^1.1.3",
47
+ "@deepseek-ai/dsh-attachment-local": "^0.1.0-rc.7",
48
+ "@deepseek-ai/dsh-bash-sandbox": "^0.1.0-rc.7",
49
+ "@deepseek-ai/dsh-command-compact": "^0.1.0-rc.7",
50
+ "@deepseek-ai/dsh-command-feedback": "^0.1.0-rc.7",
51
+ "@deepseek-ai/dsh-command-goal": "^0.1.0-rc.7",
52
+ "@deepseek-ai/dsh-commands": "^0.1.0-rc.7",
53
+ "@deepseek-ai/dsh-compaction-basic": "^0.1.0-rc.7",
54
+ "@deepseek-ai/dsh-credentials-local": "^0.1.0-rc.7",
55
+ "@deepseek-ai/dsh-fs-local": "^0.1.0-rc.7",
56
+ "@deepseek-ai/dsh-shell-env": "^0.1.0-rc.7",
57
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.0-rc.7",
58
+ "@deepseek-ai/dsh-fs-observation-policy": "^0.1.0-rc.7",
59
+ "@deepseek-ai/dsh-fs-sandbox": "^0.1.0-rc.7",
60
+ "@deepseek-ai/dsh-goal": "^0.1.0-rc.7",
61
+ "@deepseek-ai/dsh-goal-round-driver": "^0.1.0-rc.7",
62
+ "@deepseek-ai/dsh-api-gateway": "^0.1.0-rc.7",
63
+ "@deepseek-ai/dsh-llm": "^0.1.0-rc.7",
64
+ "@deepseek-ai/dsh-llm-deepseek": "^0.1.0-rc.7",
65
+ "@deepseek-ai/dsh-permission-presets": "^0.1.0-rc.7",
66
+ "@deepseek-ai/dsh-plan-mode": "^0.1.0-rc.7",
67
+ "@deepseek-ai/dsh-pwsh-sandbox": "^0.1.0-rc.7",
68
+ "@deepseek-ai/dsh-repeat-tool-reminder": "^0.1.0-rc.7",
69
+ "@deepseek-ai/dsh-session": "^0.1.0-rc.7",
70
+ "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.0-rc.7",
71
+ "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.0-rc.7",
72
+ "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.7",
73
+ "@deepseek-ai/dsh-sandbox-local": "^0.1.0-rc.7",
74
+ "@deepseek-ai/dsh-session-query-sqlite": "^0.1.0-rc.7",
75
+ "@deepseek-ai/dsh-sandbox-policy": "^0.1.0-rc.7",
76
+ "@deepseek-ai/dsh-session-telemetry-otel": "^0.1.0-rc.7",
77
+ "@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.1.0-rc.7",
78
+ "@deepseek-ai/dsh-settings-file": "^0.1.0-rc.7",
79
+ "@deepseek-ai/dsh-skill": "^0.1.0-rc.7",
80
+ "@deepseek-ai/dsh-llm-pi-ai": "^0.1.0-rc.7",
81
+ "@deepseek-ai/dsh-llm-retry": "^0.1.0-rc.7",
82
+ "@deepseek-ai/dsh-skill-filesystem": "^0.1.0-rc.7",
83
+ "@deepseek-ai/dsh-spill-policy": "^0.1.0-rc.7",
84
+ "@deepseek-ai/dsh-spill-local": "^0.1.0-rc.7",
85
+ "@deepseek-ai/dsh-subagent-fork-in-process": "^0.1.0-rc.7",
86
+ "@deepseek-ai/dsh-subagent": "^0.1.0-rc.7",
87
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.1.0-rc.7",
88
+ "@deepseek-ai/dsh-subprocess-local": "^0.1.0-rc.7",
89
+ "@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.7",
90
+ "@deepseek-ai/dsh-jobs-local": "^0.1.0-rc.7",
91
+ "@deepseek-ai/dsh-session-title": "^0.1.0-rc.7",
92
+ "@deepseek-ai/dsh-skill-badge": "^0.1.0-rc.7",
93
+ "@deepseek-ai/dsh-tool-bash": "^0.1.0-rc.7",
94
+ "@deepseek-ai/dsh-tool-fs": "^0.1.0-rc.7",
95
+ "@deepseek-ai/dsh-tool-fs-search": "^0.1.0-rc.7",
96
+ "@deepseek-ai/dsh-tool-goal": "^0.1.0-rc.7",
97
+ "@deepseek-ai/dsh-tool-pwsh": "^0.1.0-rc.7",
98
+ "@deepseek-ai/dsh-tool-ralph": "^0.1.0-rc.7",
99
+ "@deepseek-ai/dsh-tool-skill": "^0.1.0-rc.7",
100
+ "@deepseek-ai/dsh-tool-str-replace-editor": "^0.1.0-rc.7",
101
+ "@deepseek-ai/dsh-tool-subagent": "^0.1.0-rc.7",
102
+ "@deepseek-ai/dsh-tool-subagent-control": "^0.1.0-rc.7",
103
+ "@deepseek-ai/dsh-tool-web": "^0.1.0-rc.7",
104
+ "@deepseek-ai/dsh-tool-workflow": "^0.1.0-rc.7",
105
+ "@deepseek-ai/dsh-tools": "^0.1.0-rc.7",
106
+ "@deepseek-ai/dsh-tool-subagent-report": "^0.1.0-rc.7",
107
+ "@deepseek-ai/dsh-tool-jobs": "^0.1.0-rc.7",
108
+ "@deepseek-ai/dsh-typert-loader": "^0.1.0-rc.7",
109
+ "@deepseek-ai/dsh-token-meter": "^0.1.0-rc.7",
110
+ "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.1.0-rc.7",
111
+ "@deepseek-ai/dsh-typert-registry": "^0.1.0-rc.7",
112
+ "@deepseek-ai/dsh-user-approval": "^0.1.0-rc.7",
113
+ "@deepseek-ai/dsh-user-questions": "^0.1.0-rc.7",
114
+ "@deepseek-ai/dsh-web": "^0.1.0-rc.7",
115
+ "@deepseek-ai/dsh-web-search-deepseek": "^0.1.0-rc.7",
116
+ "@deepseek-ai/dsh-workflow-worker-thread": "^0.1.0-rc.7",
117
+ "@deepseek-ai/dsh-agent-instructions": "^0.1.0-rc.7",
118
+ "@deepseek-ai/dsh-tool-todo": "^0.1.0-rc.7"
119
119
  },
120
120
  "peerDependencies": {
121
- "@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
121
+ "@deepseek-ai/dsh-invariants": "^0.1.0-rc.7",
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.7",
126
126
  "@deepseek-ai/cordis": "^4.0.1"
127
127
  }
128
128
  }