Merge master into worktree/preset-user-root-in-package

Overlaps master on the preset e2e, the web scaffold, and the generated
config-catalog triplet; all merged textually, so the catalog is regenerated and
its pairing hashes re-recorded rather than trusted.
This commit is contained in:
Yichen Jiang
2026-08-12 11:08:55 +08:00
841 changed files with 5868 additions and 3129 deletions

View File

@@ -1,8 +1,9 @@
# The `minimal` agent preset: a fixed-prompt, two-tool coding surface.
# The `minimal` agent preset: a fixed-prompt, two-tool coding-agent composition.
#
# The persona is the complete system prompt, so global identity, Web surface,
# The persona is the complete system prompt, so global identity, Web orientation,
# tool guidance, and later assembly listeners cannot add prompt text. The model
# composes only the persistent `bash` and `str_replace_editor` tools.
# composes only the persistent `bash` and `str_replace_editor` tools. Context
# compaction is deliberately absent.
- id: persona
name: '@deepseek-ai/dsh-persona'
@@ -41,33 +42,20 @@
* Please avoid commands that may produce a very large amount of output.
* Please run long lived commands in the background, e.g. 'sleep 10 &' or start a server in the background.
# The editor requires absolute paths unconditionally.
- id: str-replace-editor
name: '@deepseek-ai/dsh-tool-str-replace-editor'
config:
maxOutputChars: 16000
# Model capacity comes from routed model metadata; this block states the
# compaction policy explicitly.
#
# `tokenMeter` is deliberately NOT in this realm: the meter stays on the HOST
# plane, and the row here resolves that one instance. It takes no configuration,
# keys every fold by Session, and owns the context-meter projection units the
# browser reads for every session — behind a realm those units would come and go
# with whichever presets happen to be mounted. What a preset chooses is whether
# its agent compacts at all, which is `compact-basic` below.
- id: compaction
# The bare local filesystem shadows the host's sandboxed provider only for this
# preset. The editor shares that realm and requires absolute paths.
- id: filesystem
name: cordis:group
group: true
isolate:
compact: true
fs: true
config:
- id: compact-basic
name: '@deepseek-ai/dsh-compact-basic'
- id: fs-local
name: '@deepseek-ai/dsh-fs-local'
config:
thresholdRatio: 0.8
retainTokens: 20480
summarizationProvider: ''
summarizationModel: ''
maxTokens: 8192
compactionRetries: 1
cwd: !!js process.env.DSH_CWD ?? process.cwd()
- id: str-replace-editor
name: '@deepseek-ai/dsh-tool-str-replace-editor'
config:
maxOutputChars: 16000