@stardustlc/dsh-suite 0.2.29 → 0.2.30
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/CHANGELOG.md +7 -0
- package/package.json +7 -7
- package/ptc-minimal.patch.yml +301 -301
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
[返回简介](README.md) · [使用说明](docs/USAGE.md) · [验证记录](docs/VALIDATION.md)
|
|
4
4
|
|
|
5
|
+
## 0.2.30(2026-10-21)
|
|
6
|
+
|
|
7
|
+
- 同步 PPT 0.13.0:逐页 Markdown 讲稿、图片读取取消、外部成品覆盖保护与另存副本,以及键盘保存、未保存提醒和错误重试。
|
|
8
|
+
- 同步日历 0.11.2:空字段清除、TZID / 夏令时保留、复杂重复系列保护与明确的整系列操作范围;PPT 与日历引导跟随宿主语言。
|
|
9
|
+
- 同步邮件 0.17.2:阻止无 MOVE / UIDPLUS 服务器上可能误删其他邮件的移动操作,包含 0.17.1 的账号与发信策略修复。
|
|
10
|
+
- 同步安全检查 0.5.1、SQL 0.4.6 与语音 0.3.7:包含 Git 命令钩子防护、数据库只读校验与语音地址 / 工作区边界修复;其余 12 个组件保持原版本。
|
|
11
|
+
|
|
5
12
|
## 0.2.29(2026-10-17)
|
|
6
13
|
|
|
7
14
|
- 跟随 9 个组件的「首次使用分步引导」版本:`dsh-email 0.17.0`、`dsh-calendar 0.11.0`、`@stardustlc/dsh-dream 0.10.0`、`dsh-rss 0.7.0`、`dsh-ppt 0.11.0`、`dsh-code-security 0.5.0`、`dsh-hyperframes 0.7.0`、`dsh-remotion 0.6.0`、`dsh-cite 0.5.0`。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stardustlc/dsh-suite",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.30",
|
|
4
4
|
"description": "一次安装 18 个独立 DSH 插件,并统一组合它们的默认配置。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dsh": {
|
|
@@ -52,22 +52,22 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@stardustlc/dsh-docker": "0.4.2",
|
|
54
54
|
"@stardustlc/dsh-dream": "0.10.0",
|
|
55
|
-
"dsh-calendar": "0.11.
|
|
55
|
+
"dsh-calendar": "0.11.2",
|
|
56
56
|
"dsh-cite": "0.5.0",
|
|
57
|
-
"dsh-code-security": "0.5.
|
|
57
|
+
"dsh-code-security": "0.5.1",
|
|
58
58
|
"dsh-codex-port": "0.3.0",
|
|
59
59
|
"dsh-dingtalk": "0.2.2",
|
|
60
|
-
"dsh-email": "0.17.
|
|
60
|
+
"dsh-email": "0.17.2",
|
|
61
61
|
"dsh-ffmpeg": "0.5.0",
|
|
62
62
|
"dsh-flakefinder": "0.3.5",
|
|
63
63
|
"dsh-hyperframes": "0.7.0",
|
|
64
64
|
"dsh-minimal-ptc": "0.5.6",
|
|
65
|
-
"dsh-ppt": "0.
|
|
65
|
+
"dsh-ppt": "0.13.0",
|
|
66
66
|
"dsh-remotion": "0.6.0",
|
|
67
67
|
"dsh-rss": "0.7.0",
|
|
68
68
|
"dsh-slack": "0.3.4",
|
|
69
|
-
"dsh-sql": "0.4.
|
|
70
|
-
"dsh-voice": "0.3.
|
|
69
|
+
"dsh-sql": "0.4.6",
|
|
70
|
+
"dsh-voice": "0.3.7"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"js-yaml": "^4.1.0"
|
package/ptc-minimal.patch.yml
CHANGED
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
# Harness 0.1.7 declarative preset; generated from the bundled agent composition.
|
|
2
|
-
- insert:
|
|
3
|
-
- id: preset-ptc-minimal
|
|
4
|
-
name: "@deepseek-ai/dsh-agent-preset"
|
|
5
|
-
config:
|
|
6
|
-
id: ptc-minimal
|
|
7
|
-
name: 极简 PTC 模式
|
|
8
|
-
description: 简洁提示词、完整插件工具与 PTC 编排;Windows 支持 Git Bash 和持久 PowerShell。
|
|
9
|
-
order: 4
|
|
10
|
-
plugins:
|
|
11
|
-
# The `ptc-minimal` agent preset: the `ptc` (PTC 模式) capabilities with the
|
|
12
|
-
# `minimal` (极简模式) prompt.
|
|
13
|
-
#
|
|
14
|
-
# Everything in `ptc` is here unchanged — full standard capabilities plus the
|
|
15
|
-
# PTC tool presentation (`tool-presentation` with `mode: ptc`), where the
|
|
16
|
-
# model composes a TypeScript program against a generated SDK and `run_code`
|
|
17
|
-
# executes it. What differs is the persona row, taken verbatim from `minimal`:
|
|
18
|
-
# a fixed one-line identity plus the Host-generated PTC SDK, marked complete
|
|
19
|
-
# with `includeRuntimeContext: false`. Other identity and workspace guidance
|
|
20
|
-
# cannot add prompt text, and runtime context snapshots are suppressed.
|
|
21
|
-
# The `agent-instructions` row from `ptc` is
|
|
22
|
-
# dropped for the same reason — its workspace instruction baselines would add
|
|
23
|
-
# user-role text the minimal prompt policy excludes.
|
|
24
|
-
#
|
|
25
|
-
# This file is an AGENT-PLANE composition. It is mounted under one agent's
|
|
26
|
-
# scope context, so every tool it registers belongs to that session alone.
|
|
27
|
-
# A service row here MUST sit inside a group carrying an `isolate` realm.
|
|
28
|
-
|
|
29
|
-
# ── identity ────────────────────────────────────────────────────────────────
|
|
30
|
-
|
|
31
|
-
# The complete prompt keeps the minimal identity and the callable tool SDK.
|
|
32
|
-
- id: persona
|
|
33
|
-
name: dsh-minimal-ptc/ptc-persona
|
|
34
|
-
config:
|
|
35
|
-
prefix: You are a helpful software engineer assistant.
|
|
36
|
-
complete: true
|
|
37
|
-
includeRuntimeContext: false
|
|
38
|
-
|
|
39
|
-
# ── shell ───────────────────────────────────────────────────────────────────
|
|
40
|
-
|
|
41
|
-
# `shell-env` stays in the HOST composition: `apps/cli/src/web.ts` injects it to
|
|
42
|
-
# publish `DSH_WEB_URL`/`DSH_WEB_MODE`. Both shell tools consume the host
|
|
43
|
-
# registry from here; their executors are host-plane too.
|
|
44
|
-
- id: tool-bash
|
|
45
|
-
name: '@deepseek-ai/dsh-tool-bash'
|
|
46
|
-
disabled: !!js process.platform === 'win32'
|
|
47
|
-
|
|
48
|
-
- id: tool-pwsh
|
|
49
|
-
name: '@deepseek-ai/dsh-tool-pwsh'
|
|
50
|
-
disabled: true
|
|
51
|
-
|
|
52
|
-
# Windows persistent PowerShell PTY stack (rc.1 minimal parity). Replaces the
|
|
53
|
-
# one-shot pwsh row on win32; the gitbash group below keeps a stateless bash
|
|
54
|
-
# tool beside it. The model-facing tool name remains `pwsh`.
|
|
55
|
-
- id: persistent-shell
|
|
56
|
-
name: cordis:group
|
|
57
|
-
group: true
|
|
58
|
-
disabled: !!js process.platform !== 'win32'
|
|
59
|
-
isolate:
|
|
60
|
-
terminals: true
|
|
61
|
-
config:
|
|
62
|
-
- id: pty
|
|
63
|
-
name: '@deepseek-ai/dsh-terminal'
|
|
64
|
-
|
|
65
|
-
- id: terminal-pwsh
|
|
66
|
-
name: '@deepseek-ai/dsh-terminal-bash'
|
|
67
|
-
disabled: !!js process.platform !== 'win32'
|
|
68
|
-
config:
|
|
69
|
-
shellDialect: pwsh
|
|
70
|
-
timeoutMs: 300000
|
|
71
|
-
|
|
72
|
-
- id: persistent-pwsh
|
|
73
|
-
name: '@deepseek-ai/dsh-tool-pwsh-persistent'
|
|
74
|
-
disabled: !!js process.platform !== 'win32'
|
|
75
|
-
config:
|
|
76
|
-
timeoutMs: 300000
|
|
77
|
-
description: |-
|
|
78
|
-
Run commands in a PowerShell shell
|
|
79
|
-
* When invoking this tool, the contents of the "command" parameter does NOT need to be XML-escaped.
|
|
80
|
-
* Network access depends on the host environment.
|
|
81
|
-
* State is persistent across command calls and discussions with the user.
|
|
82
|
-
* Use native Windows paths (C:\...) and $env:NAME variables; this is PowerShell, not bash.
|
|
83
|
-
* Please avoid commands that may produce a very large amount of output.
|
|
84
|
-
* Please run long lived commands in the background, e.g. 'Start-Job' or start a server with Start-Process.
|
|
85
|
-
|
|
86
|
-
# Windows Git Bash shell stack. The preset-local executor runs every `bash`
|
|
87
|
-
# call through Git for Windows bash, keeping the model-facing tool name and
|
|
88
|
-
# stateless semantics identical to the POSIX `tool-bash` row above. Only
|
|
89
|
-
# mounted on win32; the POSIX host keeps the official bash runner.
|
|
90
|
-
- id: gitbash-shell
|
|
91
|
-
name: cordis:group
|
|
92
|
-
group: true
|
|
93
|
-
disabled: !!js process.platform !== 'win32'
|
|
94
|
-
isolate:
|
|
95
|
-
shell: true
|
|
96
|
-
config:
|
|
97
|
-
- id: gitbash-executor
|
|
98
|
-
name: dsh-minimal-ptc/gitbash-executor
|
|
99
|
-
config:
|
|
100
|
-
# 留空:executor 自动探测 GIT_BASH → 常见安装目录 → PATH → 'bash'
|
|
101
|
-
# 如需固定路径可显式写 shellPath: 'C:\\Program Files\\Git\\bin\\bash.exe'
|
|
102
|
-
timeoutMs: 120000
|
|
103
|
-
maxTimeoutMs: 600000
|
|
104
|
-
maxOutputBytes: 64000
|
|
105
|
-
maxSpillBytes: 67108864
|
|
106
|
-
graceMs: 3000
|
|
107
|
-
|
|
108
|
-
- id: tool-bash-win
|
|
109
|
-
name: '@deepseek-ai/dsh-tool-bash'
|
|
110
|
-
config:
|
|
111
|
-
enableRunInBackground: false
|
|
112
|
-
|
|
113
|
-
# ── filesystem ──────────────────────────────────────────────────────────────
|
|
114
|
-
|
|
115
|
-
# Both register into the host `tools` registry and provide nothing, so
|
|
116
|
-
# they need no realm. The `fs` service and its policy stay in the host.
|
|
117
|
-
- id: tool-fs
|
|
118
|
-
name: '@deepseek-ai/dsh-tool-fs'
|
|
119
|
-
|
|
120
|
-
- id: tool-fs-search
|
|
121
|
-
name: '@deepseek-ai/dsh-tool-fs-search'
|
|
122
|
-
config:
|
|
123
|
-
sampleOverCapGlobResults: false
|
|
124
|
-
|
|
125
|
-
# ── background jobs ────────────────────────────────────────────────────────
|
|
126
|
-
|
|
127
|
-
# Only the model-facing controls. The task REGISTRY stays on the host plane.
|
|
1
|
+
# Harness 0.1.7 declarative preset; generated from the bundled agent composition.
|
|
2
|
+
- insert:
|
|
3
|
+
- id: preset-ptc-minimal
|
|
4
|
+
name: "@deepseek-ai/dsh-agent-preset"
|
|
5
|
+
config:
|
|
6
|
+
id: ptc-minimal
|
|
7
|
+
name: 极简 PTC 模式
|
|
8
|
+
description: 简洁提示词、完整插件工具与 PTC 编排;Windows 支持 Git Bash 和持久 PowerShell。
|
|
9
|
+
order: 4
|
|
10
|
+
plugins:
|
|
11
|
+
# The `ptc-minimal` agent preset: the `ptc` (PTC 模式) capabilities with the
|
|
12
|
+
# `minimal` (极简模式) prompt.
|
|
13
|
+
#
|
|
14
|
+
# Everything in `ptc` is here unchanged — full standard capabilities plus the
|
|
15
|
+
# PTC tool presentation (`tool-presentation` with `mode: ptc`), where the
|
|
16
|
+
# model composes a TypeScript program against a generated SDK and `run_code`
|
|
17
|
+
# executes it. What differs is the persona row, taken verbatim from `minimal`:
|
|
18
|
+
# a fixed one-line identity plus the Host-generated PTC SDK, marked complete
|
|
19
|
+
# with `includeRuntimeContext: false`. Other identity and workspace guidance
|
|
20
|
+
# cannot add prompt text, and runtime context snapshots are suppressed.
|
|
21
|
+
# The `agent-instructions` row from `ptc` is
|
|
22
|
+
# dropped for the same reason — its workspace instruction baselines would add
|
|
23
|
+
# user-role text the minimal prompt policy excludes.
|
|
24
|
+
#
|
|
25
|
+
# This file is an AGENT-PLANE composition. It is mounted under one agent's
|
|
26
|
+
# scope context, so every tool it registers belongs to that session alone.
|
|
27
|
+
# A service row here MUST sit inside a group carrying an `isolate` realm.
|
|
28
|
+
|
|
29
|
+
# ── identity ────────────────────────────────────────────────────────────────
|
|
30
|
+
|
|
31
|
+
# The complete prompt keeps the minimal identity and the callable tool SDK.
|
|
32
|
+
- id: persona
|
|
33
|
+
name: dsh-minimal-ptc/ptc-persona
|
|
34
|
+
config:
|
|
35
|
+
prefix: You are a helpful software engineer assistant.
|
|
36
|
+
complete: true
|
|
37
|
+
includeRuntimeContext: false
|
|
38
|
+
|
|
39
|
+
# ── shell ───────────────────────────────────────────────────────────────────
|
|
40
|
+
|
|
41
|
+
# `shell-env` stays in the HOST composition: `apps/cli/src/web.ts` injects it to
|
|
42
|
+
# publish `DSH_WEB_URL`/`DSH_WEB_MODE`. Both shell tools consume the host
|
|
43
|
+
# registry from here; their executors are host-plane too.
|
|
44
|
+
- id: tool-bash
|
|
45
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
46
|
+
disabled: !!js process.platform === 'win32'
|
|
47
|
+
|
|
48
|
+
- id: tool-pwsh
|
|
49
|
+
name: '@deepseek-ai/dsh-tool-pwsh'
|
|
50
|
+
disabled: true
|
|
51
|
+
|
|
52
|
+
# Windows persistent PowerShell PTY stack (rc.1 minimal parity). Replaces the
|
|
53
|
+
# one-shot pwsh row on win32; the gitbash group below keeps a stateless bash
|
|
54
|
+
# tool beside it. The model-facing tool name remains `pwsh`.
|
|
55
|
+
- id: persistent-shell
|
|
56
|
+
name: cordis:group
|
|
57
|
+
group: true
|
|
58
|
+
disabled: !!js process.platform !== 'win32'
|
|
59
|
+
isolate:
|
|
60
|
+
terminals: true
|
|
61
|
+
config:
|
|
62
|
+
- id: pty
|
|
63
|
+
name: '@deepseek-ai/dsh-terminal'
|
|
64
|
+
|
|
65
|
+
- id: terminal-pwsh
|
|
66
|
+
name: '@deepseek-ai/dsh-terminal-bash'
|
|
67
|
+
disabled: !!js process.platform !== 'win32'
|
|
68
|
+
config:
|
|
69
|
+
shellDialect: pwsh
|
|
70
|
+
timeoutMs: 300000
|
|
71
|
+
|
|
72
|
+
- id: persistent-pwsh
|
|
73
|
+
name: '@deepseek-ai/dsh-tool-pwsh-persistent'
|
|
74
|
+
disabled: !!js process.platform !== 'win32'
|
|
75
|
+
config:
|
|
76
|
+
timeoutMs: 300000
|
|
77
|
+
description: |-
|
|
78
|
+
Run commands in a PowerShell shell
|
|
79
|
+
* When invoking this tool, the contents of the "command" parameter does NOT need to be XML-escaped.
|
|
80
|
+
* Network access depends on the host environment.
|
|
81
|
+
* State is persistent across command calls and discussions with the user.
|
|
82
|
+
* Use native Windows paths (C:\...) and $env:NAME variables; this is PowerShell, not bash.
|
|
83
|
+
* Please avoid commands that may produce a very large amount of output.
|
|
84
|
+
* Please run long lived commands in the background, e.g. 'Start-Job' or start a server with Start-Process.
|
|
85
|
+
|
|
86
|
+
# Windows Git Bash shell stack. The preset-local executor runs every `bash`
|
|
87
|
+
# call through Git for Windows bash, keeping the model-facing tool name and
|
|
88
|
+
# stateless semantics identical to the POSIX `tool-bash` row above. Only
|
|
89
|
+
# mounted on win32; the POSIX host keeps the official bash runner.
|
|
90
|
+
- id: gitbash-shell
|
|
91
|
+
name: cordis:group
|
|
92
|
+
group: true
|
|
93
|
+
disabled: !!js process.platform !== 'win32'
|
|
94
|
+
isolate:
|
|
95
|
+
shell: true
|
|
96
|
+
config:
|
|
97
|
+
- id: gitbash-executor
|
|
98
|
+
name: dsh-minimal-ptc/gitbash-executor
|
|
99
|
+
config:
|
|
100
|
+
# 留空:executor 自动探测 GIT_BASH → 常见安装目录 → PATH → 'bash'
|
|
101
|
+
# 如需固定路径可显式写 shellPath: 'C:\\Program Files\\Git\\bin\\bash.exe'
|
|
102
|
+
timeoutMs: 120000
|
|
103
|
+
maxTimeoutMs: 600000
|
|
104
|
+
maxOutputBytes: 64000
|
|
105
|
+
maxSpillBytes: 67108864
|
|
106
|
+
graceMs: 3000
|
|
107
|
+
|
|
108
|
+
- id: tool-bash-win
|
|
109
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
110
|
+
config:
|
|
111
|
+
enableRunInBackground: false
|
|
112
|
+
|
|
113
|
+
# ── filesystem ──────────────────────────────────────────────────────────────
|
|
114
|
+
|
|
115
|
+
# Both register into the host `tools` registry and provide nothing, so
|
|
116
|
+
# they need no realm. The `fs` service and its policy stay in the host.
|
|
117
|
+
- id: tool-fs
|
|
118
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
119
|
+
|
|
120
|
+
- id: tool-fs-search
|
|
121
|
+
name: '@deepseek-ai/dsh-tool-fs-search'
|
|
122
|
+
config:
|
|
123
|
+
sampleOverCapGlobResults: false
|
|
124
|
+
|
|
125
|
+
# ── background jobs ────────────────────────────────────────────────────────
|
|
126
|
+
|
|
127
|
+
# Only the model-facing controls. The task REGISTRY stays on the host plane.
|
|
128
128
|
- id: tool-jobs
|
|
129
129
|
name: '@deepseek-ai/dsh-tool-jobs'
|
|
130
130
|
|
|
@@ -132,180 +132,180 @@
|
|
|
132
132
|
# Wait for service activation; do not freeze an early readiness
|
|
133
133
|
# check into a disabled row while the Host is still booting.
|
|
134
134
|
name: dsh-minimal-ptc/schedule-tools
|
|
135
|
-
|
|
136
|
-
# ── skills ──────────────────────────────────────────────────────────────────
|
|
137
|
-
|
|
138
|
-
# The skill REGISTRY lives in the host composition and is layered per scope:
|
|
139
|
-
# these rows register into THIS preset's layer of it, so they need no realm.
|
|
140
|
-
- id: skill-filesystem
|
|
141
|
-
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
142
|
-
|
|
143
|
-
- id: tool-skill
|
|
144
|
-
name: '@deepseek-ai/dsh-tool-skill'
|
|
145
|
-
|
|
146
|
-
# ── goals ───────────────────────────────────────────────────────────────────
|
|
147
|
-
|
|
148
|
-
# Only the model-facing tool plus the human command. The goal SERVICE, its
|
|
149
|
-
# session driver stay on the host plane.
|
|
150
|
-
- id: command-goal
|
|
151
|
-
name: '@deepseek-ai/dsh-command-goal'
|
|
152
|
-
|
|
153
|
-
- id: tool-goal
|
|
154
|
-
name: '@deepseek-ai/dsh-tool-goal'
|
|
155
|
-
|
|
156
|
-
# ── plan mode ───────────────────────────────────────────────────────────────
|
|
157
|
-
|
|
158
|
-
# Plan state is per-agent by nature, so an entry-local realm is not a
|
|
159
|
-
# workaround here — it is the correct lifetime.
|
|
160
|
-
- id: planning
|
|
161
|
-
name: cordis:group
|
|
162
|
-
group: true
|
|
163
|
-
isolate:
|
|
164
|
-
planMode: true
|
|
165
|
-
config:
|
|
166
|
-
- id: plan-mode
|
|
167
|
-
name: '@deepseek-ai/dsh-plan-mode'
|
|
168
|
-
config:
|
|
169
|
-
section: |
|
|
170
|
-
You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
|
171
|
-
|
|
172
|
-
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
|
173
|
-
|
|
174
|
-
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
|
175
|
-
|
|
176
|
-
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
|
177
|
-
|
|
178
|
-
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
|
179
|
-
|
|
180
|
-
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
|
181
|
-
|
|
182
|
-
# ── compaction ──────────────────────────────────────────────────────────────
|
|
183
|
-
|
|
184
|
-
# `compaction-basic` reads `toolResultPrune` through `ctx.get`, so the pruner
|
|
185
|
-
# must share this realm rather than sit outside it. `tokenMeter` stays HOST-side.
|
|
186
|
-
- id: compaction
|
|
187
|
-
name: cordis:group
|
|
188
|
-
group: true
|
|
189
|
-
isolate:
|
|
190
|
-
compaction: true
|
|
191
|
-
toolResultPruner: true
|
|
192
|
-
config:
|
|
193
|
-
- id: compaction-basic
|
|
194
|
-
name: '@deepseek-ai/dsh-compaction-basic'
|
|
195
|
-
|
|
196
|
-
- id: command-compact
|
|
197
|
-
name: '@deepseek-ai/dsh-command-compact'
|
|
198
|
-
|
|
199
|
-
- id: tool-result-pruner
|
|
200
|
-
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
|
201
|
-
config:
|
|
202
|
-
thresholdChars: 8192
|
|
203
|
-
headChars: 4096
|
|
204
|
-
tailChars: 1024
|
|
205
|
-
|
|
206
|
-
# ── delegation and workflows ────────────────────────────────────────────────
|
|
207
|
-
|
|
208
|
-
# The `subagents` registry and its spawn/fork backends live in the HOST
|
|
209
|
-
# composition. This preset contributes the delegation TOOLS. `workflows` shares
|
|
210
|
-
# one entry-local realm here, and a consumer left outside would resolve a host
|
|
211
|
-
# registry this preset does not populate.
|
|
212
|
-
- id: delegation
|
|
213
|
-
name: cordis:group
|
|
214
|
-
group: true
|
|
215
|
-
isolate:
|
|
216
|
-
workflowEngine: true
|
|
217
|
-
config:
|
|
218
|
-
- id: tool-subagent-control
|
|
219
|
-
name: '@deepseek-ai/dsh-tool-subagent-control'
|
|
220
|
-
|
|
221
|
-
- id: tool-subagent-list-agents
|
|
222
|
-
name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
|
|
223
|
-
|
|
224
|
-
- id: tool-subagent
|
|
225
|
-
name: '@deepseek-ai/dsh-tool-subagent'
|
|
226
|
-
config:
|
|
227
|
-
provider: spawn
|
|
228
|
-
toolName: subagent
|
|
229
|
-
modelSelectionSettings: true
|
|
135
|
+
|
|
136
|
+
# ── skills ──────────────────────────────────────────────────────────────────
|
|
137
|
+
|
|
138
|
+
# The skill REGISTRY lives in the host composition and is layered per scope:
|
|
139
|
+
# these rows register into THIS preset's layer of it, so they need no realm.
|
|
140
|
+
- id: skill-filesystem
|
|
141
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
142
|
+
|
|
143
|
+
- id: tool-skill
|
|
144
|
+
name: '@deepseek-ai/dsh-tool-skill'
|
|
145
|
+
|
|
146
|
+
# ── goals ───────────────────────────────────────────────────────────────────
|
|
147
|
+
|
|
148
|
+
# Only the model-facing tool plus the human command. The goal SERVICE, its
|
|
149
|
+
# session driver stay on the host plane.
|
|
150
|
+
- id: command-goal
|
|
151
|
+
name: '@deepseek-ai/dsh-command-goal'
|
|
152
|
+
|
|
153
|
+
- id: tool-goal
|
|
154
|
+
name: '@deepseek-ai/dsh-tool-goal'
|
|
155
|
+
|
|
156
|
+
# ── plan mode ───────────────────────────────────────────────────────────────
|
|
157
|
+
|
|
158
|
+
# Plan state is per-agent by nature, so an entry-local realm is not a
|
|
159
|
+
# workaround here — it is the correct lifetime.
|
|
160
|
+
- id: planning
|
|
161
|
+
name: cordis:group
|
|
162
|
+
group: true
|
|
163
|
+
isolate:
|
|
164
|
+
planMode: true
|
|
165
|
+
config:
|
|
166
|
+
- id: plan-mode
|
|
167
|
+
name: '@deepseek-ai/dsh-plan-mode'
|
|
168
|
+
config:
|
|
169
|
+
section: |
|
|
170
|
+
You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
|
171
|
+
|
|
172
|
+
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
|
173
|
+
|
|
174
|
+
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
|
175
|
+
|
|
176
|
+
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
|
177
|
+
|
|
178
|
+
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
|
179
|
+
|
|
180
|
+
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
|
181
|
+
|
|
182
|
+
# ── compaction ──────────────────────────────────────────────────────────────
|
|
183
|
+
|
|
184
|
+
# `compaction-basic` reads `toolResultPrune` through `ctx.get`, so the pruner
|
|
185
|
+
# must share this realm rather than sit outside it. `tokenMeter` stays HOST-side.
|
|
186
|
+
- id: compaction
|
|
187
|
+
name: cordis:group
|
|
188
|
+
group: true
|
|
189
|
+
isolate:
|
|
190
|
+
compaction: true
|
|
191
|
+
toolResultPruner: true
|
|
192
|
+
config:
|
|
193
|
+
- id: compaction-basic
|
|
194
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
195
|
+
|
|
196
|
+
- id: command-compact
|
|
197
|
+
name: '@deepseek-ai/dsh-command-compact'
|
|
198
|
+
|
|
199
|
+
- id: tool-result-pruner
|
|
200
|
+
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
|
201
|
+
config:
|
|
202
|
+
thresholdChars: 8192
|
|
203
|
+
headChars: 4096
|
|
204
|
+
tailChars: 1024
|
|
205
|
+
|
|
206
|
+
# ── delegation and workflows ────────────────────────────────────────────────
|
|
207
|
+
|
|
208
|
+
# The `subagents` registry and its spawn/fork backends live in the HOST
|
|
209
|
+
# composition. This preset contributes the delegation TOOLS. `workflows` shares
|
|
210
|
+
# one entry-local realm here, and a consumer left outside would resolve a host
|
|
211
|
+
# registry this preset does not populate.
|
|
212
|
+
- id: delegation
|
|
213
|
+
name: cordis:group
|
|
214
|
+
group: true
|
|
215
|
+
isolate:
|
|
216
|
+
workflowEngine: true
|
|
217
|
+
config:
|
|
218
|
+
- id: tool-subagent-control
|
|
219
|
+
name: '@deepseek-ai/dsh-tool-subagent-control'
|
|
220
|
+
|
|
221
|
+
- id: tool-subagent-list-agents
|
|
222
|
+
name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
|
|
223
|
+
|
|
224
|
+
- id: tool-subagent
|
|
225
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
226
|
+
config:
|
|
227
|
+
provider: spawn
|
|
228
|
+
toolName: subagent
|
|
229
|
+
modelSelectionSettings: true
|
|
230
230
|
backgroundMode: continuable
|
|
231
|
-
|
|
232
|
-
- id: tool-subagent-fork
|
|
233
|
-
name: '@deepseek-ai/dsh-tool-subagent'
|
|
234
|
-
config:
|
|
235
|
-
provider: fork
|
|
231
|
+
|
|
232
|
+
- id: tool-subagent-fork
|
|
233
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
234
|
+
config:
|
|
235
|
+
provider: fork
|
|
236
236
|
toolName: subagent_fork
|
|
237
237
|
backgroundMode: continuable
|
|
238
|
-
|
|
239
|
-
# Product providers are host-plane singletons. Remove `disabled` from
|
|
240
|
-
# either ordinary tool row to expose that product to agents on this preset.
|
|
241
|
-
- id: tool-subagent-codex
|
|
242
|
-
name: '@deepseek-ai/dsh-tool-subagent'
|
|
243
|
-
disabled: true
|
|
244
|
-
config:
|
|
245
|
-
provider: codex
|
|
246
|
-
toolName: subagent_codex
|
|
247
|
-
backgroundMode: one-shot
|
|
248
|
-
maxDepth: provider-managed
|
|
249
|
-
|
|
250
|
-
- id: tool-subagent-claude-code
|
|
251
|
-
name: '@deepseek-ai/dsh-tool-subagent'
|
|
252
|
-
disabled: true
|
|
253
|
-
config:
|
|
254
|
-
provider: claude-code
|
|
255
|
-
toolName: subagent_claude_code
|
|
256
|
-
backgroundMode: one-shot
|
|
257
|
-
maxDepth: provider-managed
|
|
258
|
-
|
|
259
|
-
- id: workflow-ptc
|
|
260
|
-
name: '@deepseek-ai/dsh-workflow-ptc'
|
|
261
|
-
config:
|
|
262
|
-
provider: spawn
|
|
263
|
-
|
|
264
|
-
- id: tool-workflow
|
|
265
|
-
name: '@deepseek-ai/dsh-tool-workflow'
|
|
266
|
-
# Keep the engine above for `ralph`, but do not publish a second
|
|
267
|
-
# model-authored orchestration surface beside `run_code` in PTC mode.
|
|
268
|
-
disabled: true
|
|
269
|
-
|
|
270
|
-
- id: tool-ralph
|
|
271
|
-
name: '@deepseek-ai/dsh-tool-ralph'
|
|
272
|
-
config:
|
|
273
|
-
subagentProvider: spawn
|
|
274
|
-
maxRounds: 64
|
|
275
|
-
|
|
276
|
-
# ── remaining model-facing rows ─────────────────────────────────────────────
|
|
277
|
-
|
|
278
|
-
- id: tool-ask-user
|
|
279
|
-
name: '@deepseek-ai/dsh-tool-ask-user'
|
|
280
|
-
|
|
281
|
-
- id: tool-todo
|
|
282
|
-
name: '@deepseek-ai/dsh-tool-todo'
|
|
283
|
-
config:
|
|
284
|
-
allowParallelInProgress: true
|
|
285
|
-
|
|
286
|
-
# The `web` service and its search provider stay in the host composition; only
|
|
287
|
-
# the model-facing tool is per-session.
|
|
288
|
-
- id: tool-web
|
|
289
|
-
name: '@deepseek-ai/dsh-tool-web'
|
|
290
|
-
config:
|
|
291
|
-
fetch: true
|
|
292
|
-
searchTimeoutMs: 60000
|
|
293
|
-
|
|
294
|
-
# ── presentation ────────────────────────────────────────────────────────────
|
|
295
|
-
|
|
296
|
-
# PTC for this agent alone. The row waits for the host's `ptcRuntime`
|
|
297
|
-
# rather than assuming it: a deployment that composes no TypeScript runtime
|
|
298
|
-
# fails this preset at mount, naming this id, instead of at the first request.
|
|
299
|
-
- id: tool-presentation
|
|
300
|
-
name: '@deepseek-ai/dsh-agent-tool-presentation'
|
|
301
|
-
config:
|
|
302
|
-
mode: ptc
|
|
303
|
-
|
|
304
|
-
# Official `ptc` parity rows (0.1.6): the deliverables presenter and the
|
|
305
|
-
# plugin-manager tools (off by default, mirroring the official preset).
|
|
306
|
-
- id: present
|
|
307
|
-
name: '@deepseek-ai/dsh-tool-present'
|
|
308
|
-
|
|
309
|
-
- id: tool-plugin-manager
|
|
310
|
-
name: '@deepseek-ai/dsh-plugin-manager/tools'
|
|
311
|
-
disabled: true
|
|
238
|
+
|
|
239
|
+
# Product providers are host-plane singletons. Remove `disabled` from
|
|
240
|
+
# either ordinary tool row to expose that product to agents on this preset.
|
|
241
|
+
- id: tool-subagent-codex
|
|
242
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
243
|
+
disabled: true
|
|
244
|
+
config:
|
|
245
|
+
provider: codex
|
|
246
|
+
toolName: subagent_codex
|
|
247
|
+
backgroundMode: one-shot
|
|
248
|
+
maxDepth: provider-managed
|
|
249
|
+
|
|
250
|
+
- id: tool-subagent-claude-code
|
|
251
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
252
|
+
disabled: true
|
|
253
|
+
config:
|
|
254
|
+
provider: claude-code
|
|
255
|
+
toolName: subagent_claude_code
|
|
256
|
+
backgroundMode: one-shot
|
|
257
|
+
maxDepth: provider-managed
|
|
258
|
+
|
|
259
|
+
- id: workflow-ptc
|
|
260
|
+
name: '@deepseek-ai/dsh-workflow-ptc'
|
|
261
|
+
config:
|
|
262
|
+
provider: spawn
|
|
263
|
+
|
|
264
|
+
- id: tool-workflow
|
|
265
|
+
name: '@deepseek-ai/dsh-tool-workflow'
|
|
266
|
+
# Keep the engine above for `ralph`, but do not publish a second
|
|
267
|
+
# model-authored orchestration surface beside `run_code` in PTC mode.
|
|
268
|
+
disabled: true
|
|
269
|
+
|
|
270
|
+
- id: tool-ralph
|
|
271
|
+
name: '@deepseek-ai/dsh-tool-ralph'
|
|
272
|
+
config:
|
|
273
|
+
subagentProvider: spawn
|
|
274
|
+
maxRounds: 64
|
|
275
|
+
|
|
276
|
+
# ── remaining model-facing rows ─────────────────────────────────────────────
|
|
277
|
+
|
|
278
|
+
- id: tool-ask-user
|
|
279
|
+
name: '@deepseek-ai/dsh-tool-ask-user'
|
|
280
|
+
|
|
281
|
+
- id: tool-todo
|
|
282
|
+
name: '@deepseek-ai/dsh-tool-todo'
|
|
283
|
+
config:
|
|
284
|
+
allowParallelInProgress: true
|
|
285
|
+
|
|
286
|
+
# The `web` service and its search provider stay in the host composition; only
|
|
287
|
+
# the model-facing tool is per-session.
|
|
288
|
+
- id: tool-web
|
|
289
|
+
name: '@deepseek-ai/dsh-tool-web'
|
|
290
|
+
config:
|
|
291
|
+
fetch: true
|
|
292
|
+
searchTimeoutMs: 60000
|
|
293
|
+
|
|
294
|
+
# ── presentation ────────────────────────────────────────────────────────────
|
|
295
|
+
|
|
296
|
+
# PTC for this agent alone. The row waits for the host's `ptcRuntime`
|
|
297
|
+
# rather than assuming it: a deployment that composes no TypeScript runtime
|
|
298
|
+
# fails this preset at mount, naming this id, instead of at the first request.
|
|
299
|
+
- id: tool-presentation
|
|
300
|
+
name: '@deepseek-ai/dsh-agent-tool-presentation'
|
|
301
|
+
config:
|
|
302
|
+
mode: ptc
|
|
303
|
+
|
|
304
|
+
# Official `ptc` parity rows (0.1.6): the deliverables presenter and the
|
|
305
|
+
# plugin-manager tools (off by default, mirroring the official preset).
|
|
306
|
+
- id: present
|
|
307
|
+
name: '@deepseek-ai/dsh-tool-present'
|
|
308
|
+
|
|
309
|
+
- id: tool-plugin-manager
|
|
310
|
+
name: '@deepseek-ai/dsh-plugin-manager/tools'
|
|
311
|
+
disabled: true
|