@deepseek-ai/dsh-base 0.0.1-rc.2 → 0.0.1-rc.5

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: 8b0db20274036a2601da19617a35e6bf4aeb30ca
6
- README.zh.md: ac5ab10a523fa211c1c1daf4c55d4dc8702eb782
5
+ README.md: bd38f39f58ee1f765ff34d40cf57cc6daed2b32b
6
+ README.zh.md: bcf4463587f42a245126f87388f3c0a4e57f0976
package/README.md CHANGED
@@ -4,7 +4,7 @@ English | [中文](README.zh.md)
4
4
 
5
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.
6
6
 
7
- Windows hosts booting a shipped profile additionally receive [`windows.cordis.patch.yml`](windows.cordis.patch.yml): it disables the POSIX-only bash stack (`bash-sandbox`/`tool-bash`) and inserts the sandbox-confined PowerShell stack (`@deepseek-ai/dsh-pwsh-sandbox`, `@deepseek-ai/dsh-tool-pwsh`). 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. The launcher applies the layer between the bundle layers and the user layers on win32 hosts; 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 never receive it.
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
 
9
9
  The row set and its rationale are documented inline in the patch file; the [generated composition graph](../../../apps/cli/composition.md) renders it.
10
10
 
package/README.zh.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
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,绝不通过代码。
6
6
 
7
- 启动交付 profile 的 Windows 主机还会额外收到 [`windows.cordis.patch.yml`](windows.cordis.patch.yml):它禁用仅 POSIX 的 bash 栈(`bash-sandbox`/`tool-bash`),并插入沙盒受限的 PowerShell 栈(`@deepseek-ai/dsh-pwsh-sandbox`、`@deepseek-ai/dsh-tool-pwsh`)。权限面与 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` 并在加载时失败。启动器在 win32 主机上把该层应用于 bundle 层与用户层之间;偏好不限权本地 pwsh 执行器或完整访问的 Windows 主机通过其 profile 或 home 的 `cordis.patch.yml` 覆盖这些行(bash 恢复配方必须完整:禁用 `pwsh-sandbox`/`tool-pwsh` 并重新启用 `bash-sandbox`/`tool-bash`——两个执行器家族注册同一个 `bash` 服务,配方不完整会在加载时 fail loud)。POSIX 主机永远不会收到它。
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
 
9
9
  行集合及其设计依据以行内注释写在 patch 文件里;[生成的组合图](../../../apps/cli/composition.md)负责渲染它。
10
10
 
@@ -14,10 +14,10 @@
14
14
 
15
15
  #### KV Cache 影响
16
16
 
17
- 无直接影响;每条插入行的影响归其所属的包负责。
17
+ 无直接影响;每条插入行的影响由其所属的包负责。
18
18
 
19
- ## 已知限制与延期工作
19
+ ## 已知限制与暂缓事项
20
20
 
21
21
  - **patch 会替换整行 `config`**:profile 覆盖必须重述该行需要保留的每个字段;不存在深度合并层。
22
22
  - **Claude SDK 的平台 CLI(命令行界面)仍在 Profile 安装闭包中**:base 组合包依赖 Claude 提供方,其生产路径解析宿主提供的 `claude`;移除 SDK 中未使用的可选载荷,推迟到产品安装闭包后续项处理。
23
- - **Windows 的临时目录授权是按会话的私有子目录**——`workspace-write` 把写入限制在工作区与会话自己的 temp 子目录(`<temp>\dsh-<hash>`,受限子进程的 TMP/TEMP 被改写);`read-only` 不授予任何写入。见 `@deepseek-ai/dsh-sandbox-windows-acl`。
23
+ - **Windows 的临时目录授权是按会话的私有子目录**——`workspace-write` 把写入限制在工作区与会话自己的 temp 子目录(`<temp>\dsh-<hash>`,受限子进程的 TMP/TEMP 被改写);`read-only` 不授予任何临时目录写入权限。见 `@deepseek-ai/dsh-sandbox-windows-acl`。
package/cordis.patch.yml CHANGED
@@ -44,7 +44,7 @@
44
44
  maxTitleBytes: 80
45
45
 
46
46
  - id: session-title-llm
47
- name: '@deepseek-ai/dsh-session-title-first-message-llm'
47
+ name: '@deepseek-ai/dsh-session-title-first-prompt-llm'
48
48
  config:
49
49
  targetWords: 5
50
50
  targetCjkCharacters: 10
@@ -52,8 +52,8 @@
52
52
  maxOutputTokens: 64
53
53
  timeoutMs: 60000
54
54
 
55
- - id: user-interaction
56
- name: '@deepseek-ai/dsh-user-interaction'
55
+ - id: user-questions
56
+ name: '@deepseek-ai/dsh-user-questions'
57
57
 
58
58
  - id: agent
59
59
  name: '@deepseek-ai/dsh-agent'
@@ -66,8 +66,8 @@
66
66
  provider: deepseek-official
67
67
  model: deepseek-v4-flash
68
68
 
69
- - id: tasks
70
- name: '@deepseek-ai/dsh-tasks-local'
69
+ - id: jobs
70
+ name: '@deepseek-ai/dsh-jobs-local'
71
71
 
72
72
  - id: llm-retry
73
73
  name: '@deepseek-ai/dsh-llm-retry'
@@ -76,7 +76,7 @@
76
76
  # `llm-deepseek:` or `llm-pi-ai:` section there overrides the adapter entries
77
77
  # below without a restart, and is what the web Models page writes.
78
78
  - id: settings
79
- name: '@deepseek-ai/dsh-settings-local'
79
+ name: '@deepseek-ai/dsh-settings-file'
80
80
 
81
81
  # Credential sources: inherited environment over the managed
82
82
  # `$DSH_HOME/.credentials.yaml`, with project and user `.env` fallbacks.
@@ -120,17 +120,15 @@
120
120
  - id: session-projection
121
121
  name: '@deepseek-ai/dsh-session-projection'
122
122
 
123
- # Session telemetry, on for every dsh mode: mirrors every session-log
124
- # event (assistant/chunk projected to first-of-step) plus ops markers onto
125
- # OTLP/HTTP log records, streaming on the batch processor's cadence
126
- # (10s/batch here) — not at exit; a crash loses at most the last unexported
127
- # interval. No telemetry/record redaction rule is mounted yet, so exports
128
- # are the raw captured copy; the deployment stance, env seams, and
129
- # follow-ups are pinned in the web-telemetry-default-mount Agent Note.
130
- # DSH_TELEMETRY_OTLP_URL overrides the production endpoint, and a non-empty
123
+ # Session telemetry is mounted but disabled by default. DSH_TELEMETRY_MODE
124
+ # explicitly opts into FULL or FEEDBACK_ONLY reporting; uploading mirrors
125
+ # session-log records onto OTLP/HTTP logs with no session-telemetry/record redaction
126
+ # rule, so exports are the raw captured copy. The deployment stance, env
127
+ # seams, and follow-ups are pinned in the default-off Agent Note.
128
+ # DSH_TELEMETRY_OTLP_URL overrides the production endpoint. A non-empty
131
129
  # DSH_TELEMETRY_DISABLED — any value, including '0'/'false' — opts the
132
130
  # process out (the launchers patch the row disabled; config cannot disable
133
- # a row). Exports carry the harness home's anonymous user id ($DSH_HOME/.userid,
131
+ # a row). Exports carry the harness home's anonymous user id ($DSH_HOME/.anonymous-user-id,
134
132
  # random UUID; delete the file to reset the identity) as the Resource's
135
133
  # user.id. The exporter/processor values normally bound the shutdown drain
136
134
  # to ~1s against an unreachable collector: exporter.timeoutMillis is both
@@ -141,9 +139,10 @@
141
139
  # shutdownTimeoutMillis is the load-bearing outer bound when a transport
142
140
  # promise never settles. Every CLI exit path drains it by disposing the root
143
141
  # on SIGINT/SIGTERM.
144
- - id: telemetry-otel
142
+ - id: session-telemetry-otel
145
143
  name: '@deepseek-ai/dsh-session-telemetry-otel'
146
144
  config:
145
+ mode: !!js process.env.DSH_TELEMETRY_MODE || 'DISABLED'
147
146
  shutdownTimeoutMillis: 3000
148
147
  exporter:
149
148
  url: !!js process.env.DSH_TELEMETRY_OTLP_URL ?? 'https://harness-telemetry.deepseeksvc.com/v1/logs'
@@ -172,16 +171,21 @@
172
171
 
173
172
  - id: bash-sandbox
174
173
  name: '@deepseek-ai/dsh-bash-sandbox'
174
+ disabled: !!js process.platform === 'win32'
175
175
  config:
176
176
  timeoutMs: 60000
177
177
 
178
+ - id: pwsh-sandbox
179
+ name: '@deepseek-ai/dsh-pwsh-sandbox'
180
+ disabled: !!js process.platform !== 'win32'
181
+
178
182
  - id: approval
179
183
  name: '@deepseek-ai/dsh-user-approval'
180
184
  config:
181
185
  policy: !!js "(process.env.DSH_PERMISSION_MODE ?? 'workspace-write') === 'danger-full-access' ? 'never' : 'ask'"
182
186
 
183
187
  - id: permission
184
- name: '@deepseek-ai/dsh-permission'
188
+ name: '@deepseek-ai/dsh-permission-presets'
185
189
  config:
186
190
  presets:
187
191
  read-only:
@@ -194,17 +198,22 @@
194
198
  sandbox: danger-full-access
195
199
  approval: never
196
200
 
197
- - id: bash-env
198
- name: '@deepseek-ai/dsh-bash-env'
201
+ - id: shell-env
202
+ name: '@deepseek-ai/dsh-shell-env'
199
203
 
200
204
  - id: tool-bash
201
205
  name: '@deepseek-ai/dsh-tool-bash'
206
+ disabled: !!js process.platform === 'win32'
207
+
208
+ - id: tool-pwsh
209
+ name: '@deepseek-ai/dsh-tool-pwsh'
210
+ disabled: !!js process.platform !== 'win32'
202
211
 
203
- - id: tool-tasks
204
- name: '@deepseek-ai/dsh-tool-tasks'
212
+ - id: tool-jobs
213
+ name: '@deepseek-ai/dsh-tool-jobs'
205
214
 
206
- - id: fs-policy
207
- name: '@deepseek-ai/dsh-fs-policy'
215
+ - id: fs-observation-policy
216
+ name: '@deepseek-ai/dsh-fs-observation-policy'
208
217
 
209
218
  - id: tool-fs
210
219
  name: '@deepseek-ai/dsh-tool-fs'
@@ -214,16 +223,16 @@
214
223
  config:
215
224
  sampleOverCapGlobResults: false
216
225
 
217
- - id: workspace-context
218
- name: '@deepseek-ai/dsh-workspace-context'
226
+ - id: agent-instructions
227
+ name: '@deepseek-ai/dsh-agent-instructions'
219
228
  config:
220
229
  maxBytes: 65536
221
230
 
222
231
  - id: skill
223
232
  name: '@deepseek-ai/dsh-skill'
224
233
 
225
- - id: skill-local
226
- name: '@deepseek-ai/dsh-skill-local'
234
+ - id: skill-filesystem
235
+ name: '@deepseek-ai/dsh-skill-filesystem'
227
236
 
228
237
  - id: skill-badge
229
238
  name: '@deepseek-ai/dsh-skill-badge'
@@ -241,8 +250,8 @@
241
250
  - id: goal
242
251
  name: '@deepseek-ai/dsh-goal'
243
252
 
244
- - id: goal-session
245
- name: '@deepseek-ai/dsh-goal-session'
253
+ - id: goal-round-driver
254
+ name: '@deepseek-ai/dsh-goal-round-driver'
246
255
 
247
256
  - id: command-goal
248
257
  name: '@deepseek-ai/dsh-command-goal'
@@ -266,8 +275,8 @@
266
275
  - id: token-meter
267
276
  name: '@deepseek-ai/dsh-token-meter'
268
277
 
269
- - id: compact-basic
270
- name: '@deepseek-ai/dsh-compact-basic'
278
+ - id: compaction-basic
279
+ name: '@deepseek-ai/dsh-compaction-basic'
271
280
 
272
281
  # Human `/compact`: one useful reduction below the automatic threshold. Backend
273
282
  # independent, so it follows whichever compaction service this leaf mounts.
@@ -277,13 +286,13 @@
277
286
  - id: subagent
278
287
  name: '@deepseek-ai/dsh-subagent'
279
288
 
280
- - id: subagent-spawn
281
- name: '@deepseek-ai/dsh-subagent-spawn'
289
+ - id: subagent-spawn-in-process
290
+ name: '@deepseek-ai/dsh-subagent-spawn-in-process'
282
291
  config:
283
292
  providerName: spawn
284
293
 
285
- - id: subagent-fork
286
- name: '@deepseek-ai/dsh-subagent-fork'
294
+ - id: subagent-fork-in-process
295
+ name: '@deepseek-ai/dsh-subagent-fork-in-process'
287
296
  config:
288
297
  providerName: fork
289
298
 
@@ -326,8 +335,8 @@
326
335
  - id: tool-subagent-report
327
336
  name: '@deepseek-ai/dsh-tool-subagent-report'
328
337
 
329
- - id: workflow-workerthread
330
- name: '@deepseek-ai/dsh-workflow-workerthread'
338
+ - id: workflow-worker-thread
339
+ name: '@deepseek-ai/dsh-workflow-worker-thread'
331
340
  config:
332
341
  provider: spawn
333
342
 
@@ -335,7 +344,7 @@
335
344
  name: '@deepseek-ai/dsh-tool-workflow'
336
345
 
337
346
  - id: timeout-policy
338
- name: '@deepseek-ai/dsh-timeout-policy'
347
+ name: '@deepseek-ai/dsh-tool-call-timeout-policy'
339
348
 
340
349
  - id: spill-local
341
350
  name: '@deepseek-ai/dsh-spill-local'
@@ -351,8 +360,8 @@
351
360
 
352
361
  # Compacts oversized tool results before the broader conversation compactor
353
362
  # runs, preserving the model-visible result within the configured budget.
354
- - id: tool-result-prune
355
- name: '@deepseek-ai/dsh-compact-tool-result-prune'
363
+ - id: tool-result-pruner
364
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
356
365
  config:
357
366
  thresholdChars: 8192
358
367
  headChars: 4096
@@ -381,8 +390,8 @@
381
390
  maxOutputChars: 16000
382
391
 
383
392
  # Consecutive-repeat reminders on the tool chain.
384
- - id: repeat-tool-guard
385
- name: '@deepseek-ai/dsh-repeat-tool-guard'
393
+ - id: repeat-tool-reminder
394
+ name: '@deepseek-ai/dsh-repeat-tool-reminder'
386
395
  config:
387
396
  thresholds: [3, 5, 8]
388
397
  argumentsPreviewChars: 500
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.0.1-rc.2",
4
+ "version": "0.0.1-rc.5",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },
@@ -23,7 +23,6 @@
23
23
  "default": "./lib/invariant.js"
24
24
  },
25
25
  "./cordis.patch.yml": "./cordis.patch.yml",
26
- "./windows.cordis.patch.yml": "./windows.cordis.patch.yml",
27
26
  "./src/*": "./src/*",
28
27
  "./package.json": "./package.json"
29
28
  },
@@ -31,7 +30,6 @@
31
30
  "lib/index.js",
32
31
  "lib/invariant.js",
33
32
  "cordis.patch.yml",
34
- "windows.cordis.patch.yml",
35
33
  "lib/types/**/*.d.ts"
36
34
  ],
37
35
  "license": "BSD-3-Clause",
@@ -41,92 +39,92 @@
41
39
  }
42
40
  },
43
41
  "dependencies": {
44
- "@deepseek-ai/cordis-plugin-hmr": "^1.0.16-rc.1",
45
- "@deepseek-ai/cordis-plugin-timer": "^1.1.3-rc.1",
46
- "@deepseek-ai/dsh-agent": "^0.0.1-rc.2",
47
- "@deepseek-ai/dsh-agent-default-model": "^0.0.1-rc.2",
48
- "@deepseek-ai/dsh-agent-loop": "^0.0.1-rc.2",
49
- "@deepseek-ai/dsh-attachment-local": "^0.0.1-rc.2",
50
- "@deepseek-ai/dsh-bash-sandbox": "^0.0.1-rc.2",
51
- "@deepseek-ai/dsh-command-feedback": "^0.0.1-rc.2",
52
- "@deepseek-ai/dsh-bash-env": "^0.0.1-rc.2",
53
- "@deepseek-ai/dsh-command-goal": "^0.0.1-rc.2",
54
- "@deepseek-ai/dsh-commands": "^0.0.1-rc.2",
55
- "@deepseek-ai/dsh-compact-basic": "^0.0.1-rc.2",
56
- "@deepseek-ai/dsh-credentials-local": "^0.0.1-rc.2",
57
- "@deepseek-ai/dsh-fs-local": "^0.0.1-rc.2",
58
- "@deepseek-ai/dsh-fs-policy": "^0.0.1-rc.2",
59
- "@deepseek-ai/dsh-fs-sandbox": "^0.0.1-rc.2",
60
- "@deepseek-ai/dsh-goal": "^0.0.1-rc.2",
61
- "@deepseek-ai/dsh-goal-session": "^0.0.1-rc.2",
62
- "@deepseek-ai/dsh-api-gateway": "^0.0.1-rc.2",
63
- "@deepseek-ai/dsh-llm": "^0.0.1-rc.2",
64
- "@deepseek-ai/dsh-llm-deepseek": "^0.0.1-rc.2",
65
- "@deepseek-ai/dsh-llm-pi-ai": "^0.0.1-rc.2",
66
- "@deepseek-ai/dsh-llm-retry": "^0.0.1-rc.2",
67
- "@deepseek-ai/dsh-plan-mode": "^0.0.1-rc.2",
68
- "@deepseek-ai/dsh-pwsh-sandbox": "^0.0.1-rc.2",
69
- "@deepseek-ai/dsh-permission": "^0.0.1-rc.2",
70
- "@deepseek-ai/dsh-repeat-tool-guard": "^0.0.1-rc.2",
71
- "@deepseek-ai/dsh-sandbox-local": "^0.0.1-rc.2",
72
- "@deepseek-ai/dsh-sandbox-policy": "^0.0.1-rc.2",
73
- "@deepseek-ai/dsh-compact-tool-result-prune": "^0.0.1-rc.2",
74
- "@deepseek-ai/dsh-session-persistence-jsonl": "^0.0.1-rc.2",
75
- "@deepseek-ai/dsh-session-projection": "^0.0.1-rc.2",
76
- "@deepseek-ai/dsh-session-query-sqlite": "^0.0.1-rc.2",
77
- "@deepseek-ai/dsh-session-title": "^0.0.1-rc.2",
78
- "@deepseek-ai/dsh-session-telemetry-otel": "^0.0.1-rc.2",
79
- "@deepseek-ai/dsh-settings-local": "^0.0.1-rc.2",
80
- "@deepseek-ai/dsh-skill": "^0.0.1-rc.2",
81
- "@deepseek-ai/dsh-skill-badge": "^0.0.1-rc.2",
82
- "@deepseek-ai/dsh-skill-local": "^0.0.1-rc.2",
83
- "@deepseek-ai/dsh-session-title-first-message-llm": "^0.0.1-rc.2",
84
- "@deepseek-ai/dsh-spill-policy": "^0.0.1-rc.2",
85
- "@deepseek-ai/dsh-spill-local": "^0.0.1-rc.2",
86
- "@deepseek-ai/dsh-subagent": "^0.0.1-rc.2",
87
- "@deepseek-ai/dsh-subagent-claude-code": "^0.0.1-rc.2",
88
- "@deepseek-ai/dsh-subagent-codex": "^0.0.1-rc.2",
89
- "@deepseek-ai/dsh-subagent-fork": "^0.0.1-rc.2",
90
- "@deepseek-ai/dsh-subagent-spawn": "^0.0.1-rc.2",
91
- "@deepseek-ai/dsh-subprocess-local": "^0.0.1-rc.2",
92
- "@deepseek-ai/dsh-session": "^0.0.1-rc.2",
93
- "@deepseek-ai/dsh-session-checkpoint-policy": "^0.0.1-rc.2",
94
- "@deepseek-ai/dsh-timeout-policy": "^0.0.1-rc.2",
95
- "@deepseek-ai/dsh-token-meter": "^0.0.1-rc.2",
96
- "@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.2",
97
- "@deepseek-ai/dsh-tool-bash": "^0.0.1-rc.2",
98
- "@deepseek-ai/dsh-tool-fs-search": "^0.0.1-rc.2",
99
- "@deepseek-ai/dsh-tool-fs": "^0.0.1-rc.2",
100
- "@deepseek-ai/dsh-tool-goal": "^0.0.1-rc.2",
101
- "@deepseek-ai/dsh-tool-pwsh": "^0.0.1-rc.2",
102
- "@deepseek-ai/dsh-tool-ralph": "^0.0.1-rc.2",
103
- "@deepseek-ai/dsh-tool-skill": "^0.0.1-rc.2",
104
- "@deepseek-ai/dsh-tool-str-replace-editor": "^0.0.1-rc.2",
105
- "@deepseek-ai/dsh-tool-subagent": "^0.0.1-rc.2",
106
- "@deepseek-ai/dsh-tool-subagent-report": "^0.0.1-rc.2",
107
- "@deepseek-ai/dsh-tool-tasks": "^0.0.1-rc.2",
108
- "@deepseek-ai/dsh-tool-todo": "^0.0.1-rc.2",
109
- "@deepseek-ai/dsh-tool-web": "^0.0.1-rc.2",
110
- "@deepseek-ai/dsh-tool-subagent-control": "^0.0.1-rc.2",
111
- "@deepseek-ai/dsh-tool-workflow": "^0.0.1-rc.2",
112
- "@deepseek-ai/dsh-tools": "^0.0.1-rc.2",
113
- "@deepseek-ai/dsh-typert-loader": "^0.0.1-rc.2",
114
- "@deepseek-ai/dsh-tasks-local": "^0.0.1-rc.2",
115
- "@deepseek-ai/dsh-typert-registry": "^0.0.1-rc.2",
116
- "@deepseek-ai/dsh-user-approval": "^0.0.1-rc.2",
117
- "@deepseek-ai/dsh-user-interaction": "^0.0.1-rc.2",
118
- "@deepseek-ai/dsh-web": "^0.0.1-rc.2",
119
- "@deepseek-ai/dsh-web-search-deepseek": "^0.0.1-rc.2",
120
- "@deepseek-ai/dsh-workflow-workerthread": "^0.0.1-rc.2",
121
- "@deepseek-ai/dsh-workspace-context": "^0.0.1-rc.2",
122
- "@deepseek-ai/dsh-command-compact": "^0.0.1-rc.2"
42
+ "@deepseek-ai/cordis-plugin-timer": "^1.1.3-rc.4",
43
+ "@deepseek-ai/cordis-plugin-hmr": "^1.0.16-rc.4",
44
+ "@deepseek-ai/dsh-agent": "^0.0.1-rc.5",
45
+ "@deepseek-ai/dsh-agent-default-model": "^0.0.1-rc.5",
46
+ "@deepseek-ai/dsh-agent-loop": "^0.0.1-rc.5",
47
+ "@deepseek-ai/dsh-attachment-local": "^0.0.1-rc.5",
48
+ "@deepseek-ai/dsh-shell-env": "^0.0.1-rc.5",
49
+ "@deepseek-ai/dsh-bash-sandbox": "^0.0.1-rc.5",
50
+ "@deepseek-ai/dsh-command-feedback": "^0.0.1-rc.5",
51
+ "@deepseek-ai/dsh-command-goal": "^0.0.1-rc.5",
52
+ "@deepseek-ai/dsh-commands": "^0.0.1-rc.5",
53
+ "@deepseek-ai/dsh-compaction-basic": "^0.0.1-rc.5",
54
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.0.1-rc.5",
55
+ "@deepseek-ai/dsh-credentials-local": "^0.0.1-rc.5",
56
+ "@deepseek-ai/dsh-fs-sandbox": "^0.0.1-rc.5",
57
+ "@deepseek-ai/dsh-fs-local": "^0.0.1-rc.5",
58
+ "@deepseek-ai/dsh-goal": "^0.0.1-rc.5",
59
+ "@deepseek-ai/dsh-fs-observation-policy": "^0.0.1-rc.5",
60
+ "@deepseek-ai/dsh-goal-round-driver": "^0.0.1-rc.5",
61
+ "@deepseek-ai/dsh-llm": "^0.0.1-rc.5",
62
+ "@deepseek-ai/dsh-api-gateway": "^0.0.1-rc.5",
63
+ "@deepseek-ai/dsh-llm-retry": "^0.0.1-rc.5",
64
+ "@deepseek-ai/dsh-permission-presets": "^0.0.1-rc.5",
65
+ "@deepseek-ai/dsh-plan-mode": "^0.0.1-rc.5",
66
+ "@deepseek-ai/dsh-pwsh-sandbox": "^0.0.1-rc.5",
67
+ "@deepseek-ai/dsh-sandbox-local": "^0.0.1-rc.5",
68
+ "@deepseek-ai/dsh-sandbox-policy": "^0.0.1-rc.5",
69
+ "@deepseek-ai/dsh-repeat-tool-reminder": "^0.0.1-rc.5",
70
+ "@deepseek-ai/dsh-session": "^0.0.1-rc.5",
71
+ "@deepseek-ai/dsh-command-compact": "^0.0.1-rc.5",
72
+ "@deepseek-ai/dsh-llm-deepseek": "^0.0.1-rc.5",
73
+ "@deepseek-ai/dsh-session-persistence-jsonl": "^0.0.1-rc.5",
74
+ "@deepseek-ai/dsh-llm-pi-ai": "^0.0.1-rc.5",
75
+ "@deepseek-ai/dsh-session-projection": "^0.0.1-rc.5",
76
+ "@deepseek-ai/dsh-session-query-sqlite": "^0.0.1-rc.5",
77
+ "@deepseek-ai/dsh-session-telemetry-otel": "^0.0.1-rc.5",
78
+ "@deepseek-ai/dsh-session-title": "^0.0.1-rc.5",
79
+ "@deepseek-ai/dsh-session-title-first-prompt-llm": "^0.0.1-rc.5",
80
+ "@deepseek-ai/dsh-settings-file": "^0.0.1-rc.5",
81
+ "@deepseek-ai/dsh-skill": "^0.0.1-rc.5",
82
+ "@deepseek-ai/dsh-skill-badge": "^0.0.1-rc.5",
83
+ "@deepseek-ai/dsh-skill-filesystem": "^0.0.1-rc.5",
84
+ "@deepseek-ai/dsh-spill-local": "^0.0.1-rc.5",
85
+ "@deepseek-ai/dsh-spill-policy": "^0.0.1-rc.5",
86
+ "@deepseek-ai/dsh-subagent-claude-code": "^0.0.1-rc.5",
87
+ "@deepseek-ai/dsh-subagent-codex": "^0.0.1-rc.5",
88
+ "@deepseek-ai/dsh-session-checkpoint-policy": "^0.0.1-rc.5",
89
+ "@deepseek-ai/dsh-subagent-fork-in-process": "^0.0.1-rc.5",
90
+ "@deepseek-ai/dsh-subagent": "^0.0.1-rc.5",
91
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "^0.0.1-rc.5",
92
+ "@deepseek-ai/dsh-system-prompt": "^0.0.1-rc.5",
93
+ "@deepseek-ai/dsh-jobs-local": "^0.0.1-rc.5",
94
+ "@deepseek-ai/dsh-tool-call-timeout-policy": "^0.0.1-rc.5",
95
+ "@deepseek-ai/dsh-token-meter": "^0.0.1-rc.5",
96
+ "@deepseek-ai/dsh-tool-bash": "^0.0.1-rc.5",
97
+ "@deepseek-ai/dsh-tool-fs": "^0.0.1-rc.5",
98
+ "@deepseek-ai/dsh-tool-fs-search": "^0.0.1-rc.5",
99
+ "@deepseek-ai/dsh-tool-goal": "^0.0.1-rc.5",
100
+ "@deepseek-ai/dsh-tool-pwsh": "^0.0.1-rc.5",
101
+ "@deepseek-ai/dsh-tool-ralph": "^0.0.1-rc.5",
102
+ "@deepseek-ai/dsh-tool-skill": "^0.0.1-rc.5",
103
+ "@deepseek-ai/dsh-tool-str-replace-editor": "^0.0.1-rc.5",
104
+ "@deepseek-ai/dsh-tool-subagent": "^0.0.1-rc.5",
105
+ "@deepseek-ai/dsh-tool-subagent-control": "^0.0.1-rc.5",
106
+ "@deepseek-ai/dsh-tool-jobs": "^0.0.1-rc.5",
107
+ "@deepseek-ai/dsh-tool-todo": "^0.0.1-rc.5",
108
+ "@deepseek-ai/dsh-tool-web": "^0.0.1-rc.5",
109
+ "@deepseek-ai/dsh-tool-workflow": "^0.0.1-rc.5",
110
+ "@deepseek-ai/dsh-tool-subagent-report": "^0.0.1-rc.5",
111
+ "@deepseek-ai/dsh-tools": "^0.0.1-rc.5",
112
+ "@deepseek-ai/dsh-typert-loader": "^0.0.1-rc.5",
113
+ "@deepseek-ai/dsh-typert-registry": "^0.0.1-rc.5",
114
+ "@deepseek-ai/dsh-web": "^0.0.1-rc.5",
115
+ "@deepseek-ai/dsh-web-search-deepseek": "^0.0.1-rc.5",
116
+ "@deepseek-ai/dsh-workflow-worker-thread": "^0.0.1-rc.5",
117
+ "@deepseek-ai/dsh-user-questions": "^0.0.1-rc.5",
118
+ "@deepseek-ai/dsh-agent-instructions": "^0.0.1-rc.5",
119
+ "@deepseek-ai/dsh-user-approval": "^0.0.1-rc.5",
120
+ "@deepseek-ai/dsh-subprocess-local": "^0.0.1-rc.5"
123
121
  },
124
122
  "peerDependencies": {
125
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.2",
126
- "@deepseek-ai/cordis": "^4.0.1-rc.1"
123
+ "@deepseek-ai/cordis": "^4.0.1-rc.4",
124
+ "@deepseek-ai/dsh-invariants": "^0.0.1-rc.5"
127
125
  },
128
126
  "devDependencies": {
129
- "@deepseek-ai/dsh-invariants": "^0.0.1-rc.2",
130
- "@deepseek-ai/cordis": "^4.0.1-rc.1"
127
+ "@deepseek-ai/dsh-invariants": "^0.0.1-rc.5",
128
+ "@deepseek-ai/cordis": "^4.0.1-rc.4"
131
129
  }
132
130
  }
@@ -1,31 +0,0 @@
1
- # The dsh-base Windows platform layer: applied by the dsh launcher on win32
2
- # hosts, between the bundle layers and the user layers. Windows confines
3
- # through the ACL restricted-token runner (the win32 chain of
4
- # dsh-sandbox-local → @deepseek-ai/dsh-sandbox-windows-acl), so the shipped
5
- # stack is the SANDBOXED PowerShell executor plus the full permission
6
- # surface: sandbox/sandbox-policy enforce the file-effect policy, the
7
- # permission switcher and the approval service run exactly as on POSIX, and
8
- # the fs row stays the base's sandboxed provider (fs-sandbox) — mounting
9
- # dsh-fs-local alongside it would double-register ctx.fs and fail the load.
10
- # Only the POSIX bash
11
- # stack (bash-sandbox/tool-bash) is disabled — bash has no Windows runner.
12
- # A Windows host that prefers the unconfined local pwsh executor or full
13
- # access overrides these rows through its profile or home cordis.patch.yml.
14
- # The bash-restore recipe must be complete: disable pwsh-sandbox and
15
- # tool-pwsh AND re-enable bash-sandbox and tool-bash — both executor
16
- # families register the same 'bash' service, so re-enabling the bash rows
17
- # while pwsh-sandbox stays inserted fails loud at load on a duplicate
18
- # registration.
19
-
20
- - id: bash-sandbox
21
- disabled: true
22
-
23
- - id: tool-bash
24
- disabled: true
25
-
26
- - insert:
27
- - id: pwsh-sandbox
28
- name: '@deepseek-ai/dsh-pwsh-sandbox'
29
-
30
- - id: tool-pwsh
31
- name: '@deepseek-ai/dsh-tool-pwsh'