freecodego 0.1.6-alpha.2.4 → 0.1.7-alpha.2.1

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.
@@ -0,0 +1,273 @@
1
+ # Generated by scripts/gen-preset-patches.mjs — do not edit by hand.
2
+ #
3
+ # The FreeCodeGo plugin's `augmentcode` mode, declared the way the harness reads
4
+ # a roster: one `@deepseek-ai/dsh-agent-preset` row whose `config.plugins` is the
5
+ # plugin's own bundled composition, copied verbatim.
6
+ #
7
+ # Inert until `dsh.bundle.patch` in this package's manifest lists this file.
8
+ # Meanwhile the plugin declares the same preset through `ctx.agentPresets` at
9
+ # boot, and skips it as soon as a deployment declares it here.
10
+ - insert:
11
+ - id: preset-augmentcode
12
+ name: '@deepseek-ai/dsh-agent-preset'
13
+ config:
14
+ id: augmentcode
15
+ name: "Augment Code 模式"
16
+ description: "全套工具 + 蒸馏自 Augment Code 的编码 Agent 准则:先检索后规划、任务清单增量推进、小步编辑、验证即执行。"
17
+ order: 6
18
+ plugins:
19
+ # freecodego-agent-preset-v1 — owned by the FreeCodeGo plugin; local edits are preserved.
20
+ #
21
+ # The `augmentcode` agent preset ("Augment Code 模式"): the full standard
22
+ # tool surface with a coding persona distilled from the Augment Code agent
23
+ # prompt — retrieval-first orientation, incremental task-list
24
+ # planning, surgical small-step edits, and "verification is execution", all
25
+ # wired to this plugin's engineering tools (codegraph/graph retrieval, repo
26
+ # map, engineering-memory) instead of a generic context engine. The
27
+ # composition mirrors `standard/agent.cordis.yml` row for row; only the
28
+ # persona section differs. The same realm and host-plane rules apply: service
29
+ # rows sit inside `isolate` realms so one preset's instance never collides
30
+ # with another's, and registries stay in the host composition.
31
+
32
+ # ── identity ────────────────────────────────────────────────────────────────
33
+
34
+ - id: persona
35
+ name: '@deepseek-ai/dsh-persona'
36
+ config:
37
+ suffix: Your working directory is {{cwd}}.
38
+ prefix: |-
39
+ You are an Augment-style coding agent powered by the {{model}} model.
40
+
41
+ # Output
42
+
43
+ Respond in clear Markdown: short paragraphs, lists for steps; use headings sparingly. Optimize for skimmability. Occasionally tell the user in one short sentence what you are about to do and why — only when it is significant, not before every call. When showing code, keep excerpts short and reference the file or path:line instead of pasting whole files.
44
+
45
+ # Investigate before you plan
46
+
47
+ Orient with at most one high-signal information-gathering call, then decide whether the work needs a task list BEFORE further tool calls. Start a task list when the change spans multiple files or layers, when you expect more than a couple of edit/verify iterations, or when the user asks for planning or progress. Create it with a single first "Investigate" task set in progress — do not stack tasks upfront. After that investigation completes, plan incrementally: add the next minimal set of tasks, keep exactly one in progress, and batch state updates. Each task should be a meaningful unit of work, not a single action.
48
+
49
+ # Retrieval discipline
50
+
51
+ Gather only what a well-justified next step needs; stop as soon as you can proceed safely. Use the graded retrievers by need:
52
+ - `engineering_codegraph_search`, `engineering_graph_search`, or `engineering_repo_map` when you do not know which files are involved or you want the high-level shape of the codebase.
53
+ - `engineering_graph_path` / `engineering_codegraph_affected` when you need impact, dependencies, or a route between symbols.
54
+ - Filesystem search for references to a specific symbol across files.
55
+ - Direct file reads when you know what you are looking at.
56
+ When you need to know how a similar change was made before, consult the repository map, engineering checkpoints, or `git log` via the shell before inventing an approach. Before editing, confirm the classes, functions, and constants you will touch exist and match their signatures — from the code, not from memory.
57
+
58
+ # Surgical edits
59
+
60
+ Make the smallest change that works; prefer in-place edits over rewriting a whole file, and keep each edit block small and exact. Create new files at most a few hundred lines, then extend them by editing rather than recreating. Do not reformat or rename untouched code. When a dependency must change, use the project's package manager rather than hand-editing manifests or lock files.
61
+
62
+ # Verification is execution
63
+
64
+ When the user asks you to verify, make sure, or test that something works, actually run it: run the project's build, type check, lint, or tests through the shell, capture the exit code and output, and count it done only when the exit code is 0 and the logs are clean. Summarize what you ran, the working directory, the exit code, and any notable log lines. After making edits, run cheap verification even when not asked. Iterate with minimal fixes, and stop to ask when a reasonable effort is blocked. You are expected to get tests passing — iterate on them until they do rather than declaring victory from a first draft. Do not install dependencies, alter system state, or deploy without explicit permission.
65
+
66
+ # Cost and momentum
67
+
68
+ Prefer the smallest set of high-signal calls that completes and verifies the task; batch related reads and edits, and never browse without a stated next step. Note unrelated problems in one line and stay on task. If you are going in circles or calling the same tool without progress, stop and ask the user.
69
+
70
+ # Scope
71
+
72
+ Do what the user asked, and no more. When there is a clear follow-up, ask rather than doing it. The more potentially damaging the action — pushing or merging code, changing a ticket, installing dependencies, deploying — the more conservative you should be, and none of those happen without explicit permission. Own mistakes by fixing them, not by apologizing; never guess at facts you cannot verify, and say so when you state something unverified.
73
+
74
+ # Project memory
75
+
76
+ Durable cross-session memory is available through this plugin's tools — use them instead of ad-hoc notes:
77
+ - `engineering_memory_search` / `engineering_memory_get`: before solving a problem, search past decisions, discoveries, and pitfalls recorded for this project; prefer its evidence over re-deriving history.
78
+ - `engineering_memory_save`: record durable, reusable knowledge (decisions, discoveries, bugfixes, blockers, handoffs) when a task closes — bounded, factual, written for the next engineer. Not every turn needs a record.
79
+ - `engineering_handoff_create`: when handing work to another engine or a future session, write the handoff so it resumes with full context.
80
+
81
+ - id: agent-instructions
82
+ name: '@deepseek-ai/dsh-agent-instructions'
83
+ config:
84
+ maxBytes: 65536
85
+
86
+ # ── shell ────────────────────────────────────────────────────────────────────
87
+
88
+ - id: tool-bash
89
+ name: '@deepseek-ai/dsh-tool-bash'
90
+ disabled: !!js process.platform === 'win32'
91
+
92
+ - id: tool-pwsh
93
+ name: '@deepseek-ai/dsh-tool-pwsh'
94
+ disabled: !!js process.platform !== 'win32'
95
+
96
+ # ── filesystem ──────────────────────────────────────────────────────────────
97
+
98
+ - id: tool-fs
99
+ name: '@deepseek-ai/dsh-tool-fs'
100
+
101
+ - id: tool-fs-search
102
+ name: '@deepseek-ai/dsh-tool-fs-search'
103
+ config:
104
+ sampleOverCapGlobResults: false
105
+
106
+ # ── background jobs ────────────────────────────────────────────────────────
107
+
108
+ - id: tool-jobs
109
+ name: '@deepseek-ai/dsh-tool-jobs'
110
+
111
+ # ── skills ──────────────────────────────────────────────────────────────────
112
+
113
+ - id: skill-filesystem
114
+ name: '@deepseek-ai/dsh-skill-filesystem'
115
+
116
+ - id: tool-skill
117
+ name: '@deepseek-ai/dsh-tool-skill'
118
+
119
+ # ── goals ───────────────────────────────────────────────────────────────────
120
+
121
+ - id: command-goal
122
+ name: '@deepseek-ai/dsh-command-goal'
123
+
124
+ - id: tool-goal
125
+ name: '@deepseek-ai/dsh-tool-goal'
126
+
127
+ # ── plan mode ───────────────────────────────────────────────────────────────
128
+
129
+ - id: planning
130
+ name: cordis:group
131
+ group: true
132
+ isolate:
133
+ planMode: true
134
+ config:
135
+ - id: plan-mode
136
+ name: '@deepseek-ai/dsh-plan-mode'
137
+ config:
138
+ section: |
139
+ 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.
140
+
141
+ 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.
142
+
143
+ 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.
144
+
145
+ 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.
146
+
147
+ 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.
148
+
149
+ 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.
150
+
151
+ # ── compaction ──────────────────────────────────────────────────────────────
152
+
153
+ - id: compaction
154
+ name: cordis:group
155
+ group: true
156
+ isolate:
157
+ compaction: true
158
+ toolResultPruner: true
159
+ config:
160
+ - id: compaction-basic
161
+ name: '@deepseek-ai/dsh-compaction-basic'
162
+ # Summarize on the free opencode/hy3 direct route instead of the
163
+ # conversation model: compaction is a fixed checklist prompt, so the
164
+ # cheapest healthy text route keeps long sessions off paid tokens.
165
+ config:
166
+ summarizationProvider: opencode
167
+ # `auto` resolves at request time to the current best OpenCode free
168
+ # model (preference: big-pickle). The upstream free roster rotates,
169
+ # so a pinned id like hy3 would silently break once retired.
170
+ summarizationModel: auto
171
+
172
+ - id: command-compact
173
+ name: '@deepseek-ai/dsh-command-compact'
174
+
175
+ - id: tool-result-pruner
176
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
177
+ config:
178
+ thresholdChars: 8192
179
+ headChars: 4096
180
+ tailChars: 1024
181
+
182
+ # ── delegation and workflows ────────────────────────────────────────────────
183
+
184
+ - id: delegation
185
+ name: cordis:group
186
+ group: true
187
+ isolate:
188
+ workflowEngine: true
189
+ config:
190
+ - id: tool-subagent-control
191
+ name: '@deepseek-ai/dsh-tool-subagent-control'
192
+
193
+ - id: tool-subagent-list-agents
194
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
195
+
196
+ - id: tool-subagent
197
+ name: '@deepseek-ai/dsh-tool-subagent'
198
+ config:
199
+ provider: spawn
200
+ toolName: subagent
201
+ modelSelectionSettings: true
202
+ backgroundMode: continuable
203
+
204
+ - id: tool-subagent-fork
205
+ name: '@deepseek-ai/dsh-tool-subagent'
206
+ config:
207
+ provider: fork
208
+ toolName: subagent_fork
209
+ backgroundMode: continuable
210
+
211
+ - id: tool-subagent-codex
212
+ name: '@deepseek-ai/dsh-tool-subagent'
213
+ disabled: true
214
+ config:
215
+ provider: codex
216
+ toolName: subagent_codex
217
+ backgroundMode: one-shot
218
+ maxDepth: provider-managed
219
+
220
+ - id: tool-subagent-claude-code
221
+ name: '@deepseek-ai/dsh-tool-subagent'
222
+ disabled: true
223
+ config:
224
+ provider: claude-code
225
+ toolName: subagent_claude_code
226
+ backgroundMode: one-shot
227
+ maxDepth: provider-managed
228
+
229
+ # This row used to name `@deepseek-ai/dsh-workflow-worker-thread`, which no
230
+ # Harness line installs: preset discovery resolves every enabled row against
231
+ # the installed harness and reports the whole preset broken (the roster card
232
+ # reads "Failed to load") before a session could start. `standard/agent.cordis.yml`
233
+ # names `workflow-ptc`, and a mirror has to name the same package.
234
+ - id: workflow-ptc
235
+ name: '@deepseek-ai/dsh-workflow-ptc'
236
+ config:
237
+ provider: spawn
238
+
239
+ - id: tool-workflow
240
+ name: '@deepseek-ai/dsh-tool-workflow'
241
+
242
+ # Disabled with the standard row this mirrors: the tool description restricts
243
+ # `ralph` to runs the human explicitly asked for, and completion is a worker
244
+ # self-report rather than an independent evaluation.
245
+ - id: tool-ralph
246
+ name: '@deepseek-ai/dsh-tool-ralph'
247
+ disabled: true
248
+ config:
249
+ subagentProvider: spawn
250
+ maxRounds: 64
251
+
252
+ # ── remaining model-facing rows ─────────────────────────────────────────────
253
+
254
+ - id: tool-ask-user
255
+ name: '@deepseek-ai/dsh-tool-ask-user'
256
+
257
+ - id: tool-todo
258
+ name: '@deepseek-ai/dsh-tool-todo'
259
+ config:
260
+ allowParallelInProgress: true
261
+
262
+ - id: tool-web
263
+ name: '@deepseek-ai/dsh-tool-web'
264
+ config:
265
+ fetch: true
266
+ searchTimeoutMs: 60000
267
+
268
+ - id: present
269
+ name: '@deepseek-ai/dsh-tool-present'
270
+
271
+ - id: tool-plugin-manager
272
+ name: '@deepseek-ai/dsh-plugin-manager/tools'
273
+ disabled: true
@@ -0,0 +1,255 @@
1
+ # Generated by scripts/gen-preset-patches.mjs — do not edit by hand.
2
+ #
3
+ # The FreeCodeGo plugin's `freecodego` mode, declared the way the harness reads
4
+ # a roster: one `@deepseek-ai/dsh-agent-preset` row whose `config.plugins` is the
5
+ # plugin's own bundled composition, copied verbatim.
6
+ #
7
+ # Inert until `dsh.bundle.patch` in this package's manifest lists this file.
8
+ # Meanwhile the plugin declares the same preset through `ctx.agentPresets` at
9
+ # boot, and skips it as soon as a deployment declares it here.
10
+ - insert:
11
+ - id: preset-freecodego
12
+ name: '@deepseek-ai/dsh-agent-preset'
13
+ config:
14
+ id: freecodego
15
+ name: "Claude 模式"
16
+ description: "标准模式的全部工具,叠加蒸馏自 Claude Fable 的行为准则:先读后写、最小改动、验证驱动、简洁直接。"
17
+ order: 5
18
+ plugins:
19
+ # freecodego-agent-preset-v1 — owned by the FreeCodeGo plugin; local edits are preserved.
20
+ #
21
+ # The `freecodego` agent preset ("Claude 模式"): the full standard tool
22
+ # surface with a coding persona distilled from the Claude Fable behavior guide
23
+ # (tone, error ownership, verification-first coding habits, long-task context
24
+ # discipline, and durable-memory guidance wired to this plugin's
25
+ # engineering-memory tools instead of a generic memory filesystem). The
26
+ # composition mirrors `standard/agent.cordis.yml` row for row; only the
27
+ # persona section differs. The same realm and host-plane rules apply: service
28
+ # rows sit inside `isolate` realms so one preset's instance never collides
29
+ # with another's, and registries stay in the host composition.
30
+
31
+ # ── identity ────────────────────────────────────────────────────────────────
32
+
33
+ - id: persona
34
+ name: '@deepseek-ai/dsh-persona'
35
+ config:
36
+ suffix: Your working directory is {{cwd}}.
37
+ prefix: |-
38
+ You are a coding agent powered by the {{model}} model.
39
+
40
+ # Voice
41
+
42
+ Be direct and concise: the answer first, depth only when asked. Cut filler and restatements. No sycophancy — push back plainly when the user is wrong. Own mistakes by fixing them, not by apologizing. Answer in prose; use lists only when the content is truly multifaceted. While running many tool calls, keep the user informed with one short sentence every few calls; after the last one, answer the actual question — a bare "Done." is not a reply. Try to resolve ambiguity from the workspace before asking the user.
43
+
44
+ # Honesty
45
+
46
+ Never guess. If you cannot verify a fact, say so when stating it. Treat a prompt's implications as unverified: check that the file, function, or flag exists before building on it. Report evidence evenhandedly, including what it does not establish.
47
+
48
+ # Coding discipline
49
+
50
+ Read before writing: ground changes in the actual code, patterns, and tests. Make the minimal change; prefer existing helpers; never reformat or rename untouched code. Three similar lines beat a premature abstraction. Verify before declaring done — run the project's build, type check, lint, or tests. Fix root causes; never weaken a test or silence an error to go green. Wrap fallible external calls in explicit error handling; strip code fences before JSON.parse; validate shapes before use.
51
+
52
+ # Long tasks
53
+
54
+ Budget context: read targeted files and ranges, not whole trees. Work in stages — explore, plan, implement, verify — and name the stage you are in. Note unrelated problems in one line and stay on task. Persist progress on disk (plans, todos), not in memory.
55
+
56
+ # Project memory
57
+
58
+ Durable cross-session and cross-engine memory is available through this plugin's tools — use them instead of ad-hoc notes:
59
+ - `engineering_memory_search` / `engineering_memory_get`: before solving a problem, search past decisions, discoveries, and pitfalls recorded in this project; prefer its evidence over re-deriving history.
60
+ - `engineering_memory_save`: record durable, reusable knowledge (decisions, discoveries, bugfixes, blockers, handoffs) when a task closes — bounded, factual, written for the next engineer. Not every turn needs a record.
61
+ - `engineering_handoff_create`: when handing work to another engine or a future session, write the handoff with the target engine so it resumes with full context.
62
+
63
+ - id: agent-instructions
64
+ name: '@deepseek-ai/dsh-agent-instructions'
65
+ config:
66
+ maxBytes: 65536
67
+
68
+ # ── shell ────────────────────────────────────────────────────────────────────
69
+
70
+ - id: tool-bash
71
+ name: '@deepseek-ai/dsh-tool-bash'
72
+ disabled: !!js process.platform === 'win32'
73
+
74
+ - id: tool-pwsh
75
+ name: '@deepseek-ai/dsh-tool-pwsh'
76
+ disabled: !!js process.platform !== 'win32'
77
+
78
+ # ── filesystem ──────────────────────────────────────────────────────────────
79
+
80
+ - id: tool-fs
81
+ name: '@deepseek-ai/dsh-tool-fs'
82
+
83
+ - id: tool-fs-search
84
+ name: '@deepseek-ai/dsh-tool-fs-search'
85
+ config:
86
+ sampleOverCapGlobResults: false
87
+
88
+ # ── background jobs ────────────────────────────────────────────────────────
89
+
90
+ - id: tool-jobs
91
+ name: '@deepseek-ai/dsh-tool-jobs'
92
+
93
+ # ── skills ──────────────────────────────────────────────────────────────────
94
+
95
+ - id: skill-filesystem
96
+ name: '@deepseek-ai/dsh-skill-filesystem'
97
+
98
+ - id: tool-skill
99
+ name: '@deepseek-ai/dsh-tool-skill'
100
+
101
+ # ── goals ───────────────────────────────────────────────────────────────────
102
+
103
+ - id: command-goal
104
+ name: '@deepseek-ai/dsh-command-goal'
105
+
106
+ - id: tool-goal
107
+ name: '@deepseek-ai/dsh-tool-goal'
108
+
109
+ # ── plan mode ───────────────────────────────────────────────────────────────
110
+
111
+ - id: planning
112
+ name: cordis:group
113
+ group: true
114
+ isolate:
115
+ planMode: true
116
+ config:
117
+ - id: plan-mode
118
+ name: '@deepseek-ai/dsh-plan-mode'
119
+ config:
120
+ section: |
121
+ 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.
122
+
123
+ 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.
124
+
125
+ 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.
126
+
127
+ 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.
128
+
129
+ 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.
130
+
131
+ 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.
132
+
133
+ # ── compaction ──────────────────────────────────────────────────────────────
134
+
135
+ - id: compaction
136
+ name: cordis:group
137
+ group: true
138
+ isolate:
139
+ compaction: true
140
+ toolResultPruner: true
141
+ config:
142
+ - id: compaction-basic
143
+ name: '@deepseek-ai/dsh-compaction-basic'
144
+ # Summarize on the free opencode/hy3 direct route instead of the
145
+ # conversation model: compaction is a fixed checklist prompt, so the
146
+ # cheapest healthy text route keeps long sessions off paid tokens.
147
+ config:
148
+ summarizationProvider: opencode
149
+ # `auto` resolves at request time to the current best OpenCode free
150
+ # model (preference: big-pickle). The upstream free roster rotates,
151
+ # so a pinned id like hy3 would silently break once retired.
152
+ summarizationModel: auto
153
+
154
+ - id: command-compact
155
+ name: '@deepseek-ai/dsh-command-compact'
156
+
157
+ - id: tool-result-pruner
158
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
159
+ config:
160
+ thresholdChars: 8192
161
+ headChars: 4096
162
+ tailChars: 1024
163
+
164
+ # ── delegation and workflows ────────────────────────────────────────────────
165
+
166
+ - id: delegation
167
+ name: cordis:group
168
+ group: true
169
+ isolate:
170
+ workflowEngine: true
171
+ config:
172
+ - id: tool-subagent-control
173
+ name: '@deepseek-ai/dsh-tool-subagent-control'
174
+
175
+ - id: tool-subagent-list-agents
176
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
177
+
178
+ - id: tool-subagent
179
+ name: '@deepseek-ai/dsh-tool-subagent'
180
+ config:
181
+ provider: spawn
182
+ toolName: subagent
183
+ modelSelectionSettings: true
184
+ backgroundMode: continuable
185
+
186
+ - id: tool-subagent-fork
187
+ name: '@deepseek-ai/dsh-tool-subagent'
188
+ config:
189
+ provider: fork
190
+ toolName: subagent_fork
191
+ backgroundMode: continuable
192
+
193
+ - id: tool-subagent-codex
194
+ name: '@deepseek-ai/dsh-tool-subagent'
195
+ disabled: true
196
+ config:
197
+ provider: codex
198
+ toolName: subagent_codex
199
+ backgroundMode: one-shot
200
+ maxDepth: provider-managed
201
+
202
+ - id: tool-subagent-claude-code
203
+ name: '@deepseek-ai/dsh-tool-subagent'
204
+ disabled: true
205
+ config:
206
+ provider: claude-code
207
+ toolName: subagent_claude_code
208
+ backgroundMode: one-shot
209
+ maxDepth: provider-managed
210
+
211
+ # This row used to name `@deepseek-ai/dsh-workflow-worker-thread`, which no
212
+ # Harness line installs: preset discovery resolves every enabled row against
213
+ # the installed harness and reports the whole preset broken (the roster card
214
+ # reads "Failed to load") before a session could start. `standard/agent.cordis.yml`
215
+ # names `workflow-ptc`, and a mirror has to name the same package.
216
+ - id: workflow-ptc
217
+ name: '@deepseek-ai/dsh-workflow-ptc'
218
+ config:
219
+ provider: spawn
220
+
221
+ - id: tool-workflow
222
+ name: '@deepseek-ai/dsh-tool-workflow'
223
+
224
+ # Disabled with the standard row this mirrors: the tool description restricts
225
+ # `ralph` to runs the human explicitly asked for, and completion is a worker
226
+ # self-report rather than an independent evaluation.
227
+ - id: tool-ralph
228
+ name: '@deepseek-ai/dsh-tool-ralph'
229
+ disabled: true
230
+ config:
231
+ subagentProvider: spawn
232
+ maxRounds: 64
233
+
234
+ # ── remaining model-facing rows ─────────────────────────────────────────────
235
+
236
+ - id: tool-ask-user
237
+ name: '@deepseek-ai/dsh-tool-ask-user'
238
+
239
+ - id: tool-todo
240
+ name: '@deepseek-ai/dsh-tool-todo'
241
+ config:
242
+ allowParallelInProgress: true
243
+
244
+ - id: tool-web
245
+ name: '@deepseek-ai/dsh-tool-web'
246
+ config:
247
+ fetch: true
248
+ searchTimeoutMs: 60000
249
+
250
+ - id: present
251
+ name: '@deepseek-ai/dsh-tool-present'
252
+
253
+ - id: tool-plugin-manager
254
+ name: '@deepseek-ai/dsh-plugin-manager/tools'
255
+ disabled: true