dsh-model-switch 0.4.20 → 0.4.22

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/cordis.patch.yml CHANGED
@@ -1,30 +1,515 @@
1
- # Replace independently packaged host modules only through public profile patches.
2
- # Existing rows are disabled with their original name; replacements use unique ids.
3
- # Do not replace agent-presets: a nested AgentPresets instance loads a second
4
- # @deepseek-ai/dsh-scope identity, and session.create then fails as unscoped.
5
- # Web selection is a deployment opt-in: preserve the existing complete Web config.
6
- # An id-targeted config patch replaces (not merges) it, including fetchProvider.
7
-
8
- - id: subagent
9
- name: '@deepseek-ai/dsh-subagent'
10
- disabled: true
11
-
12
- # The official Auto reviewer hardwires the session route; Model Switch replaces
13
- # it with its own row so the reviewer model stays configurable (one registerAuto
14
- # per context). A profile that never enabled the optional bundle has no such
15
- # row: the non-insert target is then unknown and skipped with a warning.
16
- - id: auto-review
17
- name: '@deepseek-ai/dsh-experimental-auto-review'
18
- disabled: true
19
-
20
- - insert:
21
- # Register Model Switch Host Settings/Main runtime before routed Subagents.
22
- - id: model-switch
23
- name: 'dsh-model-switch'
24
-
25
- - id: model-switch-subagent-runtime
26
- name: 'dsh-model-switch/subagent-runtime'
27
-
28
- # The official auto-review gate under the reviewer-route llm scope.
29
- - id: model-switch-auto-review
30
- name: 'dsh-model-switch/auto-review'
1
+ # Replace independently packaged host modules only through public profile patches.
2
+ # Existing rows are disabled with their original name; replacements use unique ids.
3
+ # Do not replace agent-presets: a nested AgentPresets instance loads a second
4
+ # @deepseek-ai/dsh-scope identity, and session.create then fails as unscoped.
5
+ # Web selection is a deployment opt-in: preserve the existing complete Web config.
6
+ # An id-targeted config patch replaces (not merges) it, including fetchProvider.
7
+
8
+ - id: subagent
9
+ name: '@deepseek-ai/dsh-subagent'
10
+ disabled: true
11
+
12
+ # The official Auto reviewer hardwires the session route; Model Switch replaces
13
+ # it with its own row so the reviewer model stays configurable (one registerAuto
14
+ # per context). A profile that never enabled the optional bundle has no such
15
+ # row: the non-insert target is then unknown and skipped with a warning.
16
+ - id: auto-review
17
+ name: '@deepseek-ai/dsh-experimental-auto-review'
18
+ disabled: true
19
+
20
+ # The official compaction engine hardwires the conversation target as its
21
+ # summarization route; Model Switch replaces it with its own row so the
22
+ # summarization model stays configurable (one compaction service per context).
23
+ - id: compaction-basic
24
+ name: '@deepseek-ai/dsh-compaction-basic'
25
+ disabled: true
26
+
27
+ # The Web surface moves the agent plane (tools, compaction, delegation) into
28
+ # per-session agent presets: session /compact and official automatic compaction
29
+ # run against the compaction service inside each preset's isolated `compaction`
30
+ # group, not the top-level row disabled above. The Loader's patch index cannot
31
+ # address rows inside a preset's `config.plugins` list, so Model Switch replaces
32
+ # each preset row wholesale — the same id-targeted mechanism the Web preset
33
+ # editor saves with — and swaps that group's official compaction-basic for
34
+ # model-switch-compaction. The copies come from
35
+ # @deepseek-ai/dsh-web-app/presets/*.patch.yml (minimal has no compaction
36
+ # group); a DSH release that edits those presets needs the copies re-synced as
37
+ # part of the per-release verification, and a deployment that edits presets in
38
+ # the Web editor writes its own wholesale row that owns the merge from there.
39
+ # standard: agent-preset row replaced wholesale so its compaction group runs
40
+ # model-switch-compaction (configurable summarization route) instead of the
41
+ # official compaction-basic. Source: @deepseek-ai/dsh-web-app/presets/standard.patch.yml.
42
+ - id: preset-standard
43
+ name: '@deepseek-ai/dsh-agent-preset'
44
+ config:
45
+ id: standard
46
+ order: 1
47
+ plugins:
48
+ - id: persona
49
+ name: '@deepseek-ai/dsh-persona'
50
+ config:
51
+ suffix: Your working directory is {{cwd}}.
52
+ prefix: You are a coding agent powered by the {{model}} model.
53
+ - id: agent-instructions
54
+ name: '@deepseek-ai/dsh-agent-instructions'
55
+ config:
56
+ maxBytes: 65536
57
+ - id: tool-bash
58
+ name: '@deepseek-ai/dsh-tool-bash'
59
+ disabled: !!js process.platform === 'win32'
60
+ - id: tool-pwsh
61
+ name: '@deepseek-ai/dsh-tool-pwsh'
62
+ disabled: !!js process.platform !== 'win32'
63
+ - id: tool-fs
64
+ name: '@deepseek-ai/dsh-tool-fs'
65
+ - id: tool-fs-search
66
+ name: '@deepseek-ai/dsh-tool-fs-search'
67
+ config:
68
+ sampleOverCapGlobResults: false
69
+ - id: tool-jobs
70
+ name: '@deepseek-ai/dsh-tool-jobs'
71
+ - id: skill-filesystem
72
+ name: '@deepseek-ai/dsh-skill-filesystem'
73
+ - id: tool-skill
74
+ name: '@deepseek-ai/dsh-tool-skill'
75
+ - id: command-goal
76
+ name: '@deepseek-ai/dsh-command-goal'
77
+ - id: tool-goal
78
+ name: '@deepseek-ai/dsh-tool-goal'
79
+ - id: planning
80
+ name: cordis:group
81
+ group: true
82
+ isolate:
83
+ planMode: true
84
+ config:
85
+ - id: plan-mode
86
+ name: '@deepseek-ai/dsh-plan-mode'
87
+ config:
88
+ section: |
89
+ 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.
90
+
91
+ 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.
92
+
93
+ 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.
94
+
95
+ 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.
96
+
97
+ 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.
98
+
99
+ 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.
100
+ - id: compaction
101
+ name: cordis:group
102
+ group: true
103
+ isolate:
104
+ compaction: true
105
+ toolResultPruner: true
106
+ config:
107
+ - id: compaction-basic
108
+ name: '@deepseek-ai/dsh-compaction-basic'
109
+ disabled: true
110
+ - id: model-switch-compaction
111
+ name: 'dsh-model-switch/compaction'
112
+ - id: command-compact
113
+ name: '@deepseek-ai/dsh-command-compact'
114
+ - id: tool-result-pruner
115
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
116
+ config:
117
+ thresholdChars: 8192
118
+ headChars: 4096
119
+ tailChars: 1024
120
+ - id: delegation
121
+ name: cordis:group
122
+ group: true
123
+ isolate:
124
+ workflowEngine: true
125
+ config:
126
+ - id: tool-subagent-control
127
+ name: '@deepseek-ai/dsh-tool-subagent-control'
128
+ - id: tool-subagent-list-agents
129
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
130
+ - id: tool-subagent
131
+ name: '@deepseek-ai/dsh-tool-subagent'
132
+ config:
133
+ provider: spawn
134
+ toolName: subagent
135
+ modelSelectionSettings: true
136
+ backgroundMode: continuable
137
+ - id: tool-subagent-fork
138
+ name: '@deepseek-ai/dsh-tool-subagent'
139
+ config:
140
+ provider: fork
141
+ toolName: subagent_fork
142
+ backgroundMode: continuable
143
+ - id: tool-subagent-codex
144
+ name: '@deepseek-ai/dsh-tool-subagent'
145
+ disabled: true
146
+ config:
147
+ provider: codex
148
+ toolName: subagent_codex
149
+ backgroundMode: one-shot
150
+ maxDepth: provider-managed
151
+ - id: tool-subagent-claude-code
152
+ name: '@deepseek-ai/dsh-tool-subagent'
153
+ disabled: true
154
+ config:
155
+ provider: claude-code
156
+ toolName: subagent_claude_code
157
+ backgroundMode: one-shot
158
+ maxDepth: provider-managed
159
+ - id: workflow-ptc
160
+ name: '@deepseek-ai/dsh-workflow-ptc'
161
+ config:
162
+ provider: spawn
163
+ - id: tool-workflow
164
+ name: '@deepseek-ai/dsh-tool-workflow'
165
+ - id: tool-ralph
166
+ name: '@deepseek-ai/dsh-tool-ralph'
167
+ disabled: true
168
+ config:
169
+ subagentProvider: spawn
170
+ maxRounds: 64
171
+ - id: tool-ask-user
172
+ name: '@deepseek-ai/dsh-tool-ask-user'
173
+ - id: tool-todo
174
+ name: '@deepseek-ai/dsh-tool-todo'
175
+ config:
176
+ allowParallelInProgress: true
177
+ - id: tool-web
178
+ name: '@deepseek-ai/dsh-tool-web'
179
+ config:
180
+ fetch: true
181
+ searchTimeoutMs: 60000
182
+ - id: present
183
+ name: '@deepseek-ai/dsh-tool-present'
184
+ - id: tool-plugin-manager
185
+ name: '@deepseek-ai/dsh-plugin-manager/tools'
186
+ disabled: true
187
+
188
+ # ptc: agent-preset row replaced wholesale so its compaction group runs
189
+ # model-switch-compaction (configurable summarization route) instead of the
190
+ # official compaction-basic. Source: @deepseek-ai/dsh-web-app/presets/ptc.patch.yml.
191
+ - id: preset-ptc
192
+ name: '@deepseek-ai/dsh-agent-preset'
193
+ config:
194
+ id: ptc
195
+ order: 2
196
+ plugins:
197
+ - id: persona
198
+ name: '@deepseek-ai/dsh-persona'
199
+ config:
200
+ suffix: Your working directory is {{cwd}}.
201
+ prefix: You are a coding agent powered by the {{model}} model.
202
+ - id: agent-instructions
203
+ name: '@deepseek-ai/dsh-agent-instructions'
204
+ config:
205
+ maxBytes: 65536
206
+ - id: tool-bash
207
+ name: '@deepseek-ai/dsh-tool-bash'
208
+ disabled: !!js process.platform === 'win32'
209
+ - id: tool-pwsh
210
+ name: '@deepseek-ai/dsh-tool-pwsh'
211
+ disabled: !!js process.platform !== 'win32'
212
+ - id: tool-fs
213
+ name: '@deepseek-ai/dsh-tool-fs'
214
+ - id: tool-fs-search
215
+ name: '@deepseek-ai/dsh-tool-fs-search'
216
+ config:
217
+ sampleOverCapGlobResults: false
218
+ - id: tool-jobs
219
+ name: '@deepseek-ai/dsh-tool-jobs'
220
+ - id: skill-filesystem
221
+ name: '@deepseek-ai/dsh-skill-filesystem'
222
+ - id: tool-skill
223
+ name: '@deepseek-ai/dsh-tool-skill'
224
+ - id: command-goal
225
+ name: '@deepseek-ai/dsh-command-goal'
226
+ - id: tool-goal
227
+ name: '@deepseek-ai/dsh-tool-goal'
228
+ - id: planning
229
+ name: cordis:group
230
+ group: true
231
+ isolate:
232
+ planMode: true
233
+ config:
234
+ - id: plan-mode
235
+ name: '@deepseek-ai/dsh-plan-mode'
236
+ config:
237
+ section: |
238
+ 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.
239
+
240
+ 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.
241
+
242
+ 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.
243
+
244
+ 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.
245
+
246
+ 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.
247
+
248
+ 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.
249
+ - id: compaction
250
+ name: cordis:group
251
+ group: true
252
+ isolate:
253
+ compaction: true
254
+ toolResultPruner: true
255
+ config:
256
+ - id: compaction-basic
257
+ name: '@deepseek-ai/dsh-compaction-basic'
258
+ disabled: true
259
+ - id: model-switch-compaction
260
+ name: 'dsh-model-switch/compaction'
261
+ - id: command-compact
262
+ name: '@deepseek-ai/dsh-command-compact'
263
+ - id: tool-result-pruner
264
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
265
+ config:
266
+ thresholdChars: 8192
267
+ headChars: 4096
268
+ tailChars: 1024
269
+ - id: delegation
270
+ name: cordis:group
271
+ group: true
272
+ isolate:
273
+ workflowEngine: true
274
+ config:
275
+ - id: tool-subagent-control
276
+ name: '@deepseek-ai/dsh-tool-subagent-control'
277
+ - id: tool-subagent-list-agents
278
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
279
+ - id: tool-subagent
280
+ name: '@deepseek-ai/dsh-tool-subagent'
281
+ config:
282
+ provider: spawn
283
+ toolName: subagent
284
+ modelSelectionSettings: true
285
+ backgroundMode: continuable
286
+ - id: tool-subagent-fork
287
+ name: '@deepseek-ai/dsh-tool-subagent'
288
+ config:
289
+ provider: fork
290
+ toolName: subagent_fork
291
+ backgroundMode: continuable
292
+ - id: tool-subagent-codex
293
+ name: '@deepseek-ai/dsh-tool-subagent'
294
+ disabled: true
295
+ config:
296
+ provider: codex
297
+ toolName: subagent_codex
298
+ backgroundMode: one-shot
299
+ maxDepth: provider-managed
300
+ - id: tool-subagent-claude-code
301
+ name: '@deepseek-ai/dsh-tool-subagent'
302
+ disabled: true
303
+ config:
304
+ provider: claude-code
305
+ toolName: subagent_claude_code
306
+ backgroundMode: one-shot
307
+ maxDepth: provider-managed
308
+ - id: workflow-ptc
309
+ name: '@deepseek-ai/dsh-workflow-ptc'
310
+ disabled: true
311
+ config:
312
+ provider: spawn
313
+ - id: tool-workflow
314
+ name: '@deepseek-ai/dsh-tool-workflow'
315
+ disabled: true
316
+ - id: tool-ralph
317
+ name: '@deepseek-ai/dsh-tool-ralph'
318
+ disabled: true
319
+ config:
320
+ subagentProvider: spawn
321
+ maxRounds: 64
322
+ - id: tool-ask-user
323
+ name: '@deepseek-ai/dsh-tool-ask-user'
324
+ - id: tool-todo
325
+ name: '@deepseek-ai/dsh-tool-todo'
326
+ config:
327
+ allowParallelInProgress: true
328
+ - id: tool-web
329
+ name: '@deepseek-ai/dsh-tool-web'
330
+ config:
331
+ fetch: true
332
+ searchTimeoutMs: 60000
333
+ - id: tool-presentation
334
+ name: '@deepseek-ai/dsh-agent-tool-presentation'
335
+ config:
336
+ mode: ptc
337
+ - id: present
338
+ name: '@deepseek-ai/dsh-tool-present'
339
+ - id: tool-plugin-manager
340
+ name: '@deepseek-ai/dsh-plugin-manager/tools'
341
+ disabled: true
342
+
343
+ # cordis: agent-preset row replaced wholesale so its compaction group runs
344
+ # model-switch-compaction (configurable summarization route) instead of the
345
+ # official compaction-basic. Source: @deepseek-ai/dsh-web-app/presets/cordis.patch.yml.
346
+ - id: preset-cordis
347
+ name: '@deepseek-ai/dsh-agent-preset'
348
+ config:
349
+ id: cordis
350
+ order: 4
351
+ plugins:
352
+ # Same persona as `standard`: tool descriptions and the skill catalog carry
353
+ # the operating detail, and the skills own the preset-authoring rules.
354
+ - id: persona
355
+ name: '@deepseek-ai/dsh-persona'
356
+ config:
357
+ suffix: Your working directory is {{cwd}}.
358
+ prefix: >-
359
+ You are a coding agent powered by the {{model}} model.
360
+ - id: agent-instructions
361
+ name: '@deepseek-ai/dsh-agent-instructions'
362
+ config:
363
+ maxBytes: 65536
364
+ - id: tool-bash
365
+ name: '@deepseek-ai/dsh-tool-bash'
366
+ disabled: !!js process.platform === 'win32'
367
+ - id: tool-pwsh
368
+ name: '@deepseek-ai/dsh-tool-pwsh'
369
+ disabled: !!js process.platform !== 'win32'
370
+ - id: tool-fs
371
+ name: '@deepseek-ai/dsh-tool-fs'
372
+ - id: tool-fs-search
373
+ name: '@deepseek-ai/dsh-tool-fs-search'
374
+ config:
375
+ sampleOverCapGlobResults: false
376
+ - id: tool-jobs
377
+ name: '@deepseek-ai/dsh-tool-jobs'
378
+ - id: command-goal
379
+ name: '@deepseek-ai/dsh-command-goal'
380
+ - id: tool-goal
381
+ name: '@deepseek-ai/dsh-tool-goal'
382
+ - id: planning
383
+ name: cordis:group
384
+ group: true
385
+ isolate:
386
+ planMode: true
387
+ config:
388
+ - id: plan-mode
389
+ name: '@deepseek-ai/dsh-plan-mode'
390
+ config:
391
+ section: |
392
+ 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.
393
+
394
+ 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.
395
+
396
+ 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.
397
+
398
+ 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.
399
+
400
+ 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.
401
+
402
+ 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.
403
+ - id: compaction
404
+ name: cordis:group
405
+ group: true
406
+ isolate:
407
+ compaction: true
408
+ toolResultPruner: true
409
+ config:
410
+ - id: compaction-basic
411
+ name: '@deepseek-ai/dsh-compaction-basic'
412
+ disabled: true
413
+ - id: model-switch-compaction
414
+ name: 'dsh-model-switch/compaction'
415
+ - id: command-compact
416
+ name: '@deepseek-ai/dsh-command-compact'
417
+ - id: tool-result-pruner
418
+ name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
419
+ config:
420
+ thresholdChars: 8192
421
+ headChars: 4096
422
+ tailChars: 1024
423
+ - id: delegation
424
+ name: cordis:group
425
+ group: true
426
+ isolate:
427
+ workflowEngine: true
428
+ config:
429
+ - id: tool-subagent-control
430
+ name: '@deepseek-ai/dsh-tool-subagent-control'
431
+ - id: tool-subagent-list-agents
432
+ name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
433
+ - id: tool-subagent
434
+ name: '@deepseek-ai/dsh-tool-subagent'
435
+ config:
436
+ provider: spawn
437
+ toolName: subagent
438
+ modelSelectionSettings: true
439
+ backgroundMode: continuable
440
+ - id: tool-subagent-fork
441
+ name: '@deepseek-ai/dsh-tool-subagent'
442
+ config:
443
+ provider: fork
444
+ toolName: subagent_fork
445
+ backgroundMode: continuable
446
+ - id: tool-subagent-codex
447
+ name: '@deepseek-ai/dsh-tool-subagent'
448
+ disabled: true
449
+ config:
450
+ provider: codex
451
+ toolName: subagent_codex
452
+ backgroundMode: one-shot
453
+ maxDepth: provider-managed
454
+ - id: tool-subagent-claude-code
455
+ name: '@deepseek-ai/dsh-tool-subagent'
456
+ disabled: true
457
+ config:
458
+ provider: claude-code
459
+ toolName: subagent_claude_code
460
+ backgroundMode: one-shot
461
+ maxDepth: provider-managed
462
+ - id: workflow-ptc
463
+ name: '@deepseek-ai/dsh-workflow-ptc'
464
+ config:
465
+ provider: spawn
466
+ - id: tool-workflow
467
+ name: '@deepseek-ai/dsh-tool-workflow'
468
+ - id: tool-ralph
469
+ name: '@deepseek-ai/dsh-tool-ralph'
470
+ disabled: true
471
+ config:
472
+ subagentProvider: spawn
473
+ maxRounds: 64
474
+ - id: tool-ask-user
475
+ name: '@deepseek-ai/dsh-tool-ask-user'
476
+ - id: tool-todo
477
+ name: '@deepseek-ai/dsh-tool-todo'
478
+ config:
479
+ allowParallelInProgress: true
480
+ - id: tool-web
481
+ name: '@deepseek-ai/dsh-tool-web'
482
+ config:
483
+ fetch: true
484
+ searchTimeoutMs: 60000
485
+ - id: tool-cordis
486
+ name: '@deepseek-ai/dsh-tool-cordis'
487
+ - id: skill-filesystem
488
+ name: '@deepseek-ai/dsh-skill-filesystem'
489
+ config:
490
+ customSkillDirs:
491
+ - !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('@deepseek-ai/dsh-agent-preset/package.json')), 'skills')
492
+ - id: tool-skill
493
+ name: '@deepseek-ai/dsh-tool-skill'
494
+ - id: present
495
+ name: '@deepseek-ai/dsh-tool-present'
496
+ - id: tool-plugin-manager
497
+ name: '@deepseek-ai/dsh-plugin-manager/tools'
498
+ disabled: !!js "!ctx.get('profileContext')"
499
+
500
+
501
+ - insert:
502
+ # Register Model Switch Host Settings/Main runtime before routed Subagents.
503
+ - id: model-switch
504
+ name: 'dsh-model-switch'
505
+
506
+ - id: model-switch-subagent-runtime
507
+ name: 'dsh-model-switch/subagent-runtime'
508
+
509
+ # The official auto-review gate under the reviewer-route llm scope.
510
+ - id: model-switch-auto-review
511
+ name: 'dsh-model-switch/auto-review'
512
+
513
+ # The official compaction engine under the configurable summarization route.
514
+ - id: model-switch-compaction
515
+ name: 'dsh-model-switch/compaction'