test(python): prove installed dsh profile customization

Migrate the packaged-runtime smoke inventory from complete Cordis trees to the sdk profile plus ordered patches. Preserve the focused minimal and advanced behaviors, update the generated durable snapshots for explicit permission events and the smaller RunResult, and keep worker, MCP, ripgrep, PTY/editor, direct JSON-RPC, and real-provider coverage.

Add an installed-only external bundle scenario that invokes the wheel's dsh plugin command with a local file package, verifies profile manifest reconciliation, imports @deepseek-ai/cordis as a peer, asserts the packaged proxy returns the exact host Context instance, and proves its system-prompt contribution reaches the model. Migrate the repository source e2e and runnable minimal example to the same profile grammar.
This commit is contained in:
Tianyi Cui
2026-08-24 17:28:26 +08:00
parent 56e038b2e3
commit 01da043737
13 changed files with 1101 additions and 609 deletions
@@ -0,0 +1,68 @@
# Minimal Python SDK overlay for `dsh --profile sdk`: keep only persistent
# Bash and the string-replacement editor, with no runtime-context prompt or
# compaction. The profile still owns JSON-RPC serving and persistence.
- id: system-prompt
config:
includeHarnessIdentity: false
includeRuntimeContext: false
persona: !!js process.env.DSH_SYSTEM_PROMPT ?? 'You are a helpful software engineer assistant.'
- id: agent-instructions
disabled: true
- id: skill-filesystem
disabled: true
- id: tool-skill
disabled: true
- id: tool-bash
disabled: true
- id: tool-jobs
disabled: true
- id: tool-fs
disabled: true
- id: tool-fs-search
disabled: true
- id: tool-subagent-control
disabled: true
- id: tool-subagent-list-agents
disabled: true
- id: tool-subagent
disabled: true
- id: tool-subagent-fork
disabled: true
- id: tool-subagent-report
disabled: true
- id: tool-workflow
disabled: true
- id: tool-todo
disabled: true
- id: tool-goal
disabled: true
- id: tool-ralph
disabled: true
- id: tool-web
disabled: true
- id: plan-mode
disabled: true
- id: compaction-basic
disabled: true
- id: command-compact
disabled: true
- id: tool-result-pruner
disabled: true
- id: tool-str-replace-editor
config:
maxOutputChars: 16000
- insert:
- id: pty
name: '@deepseek-ai/dsh-terminal'
- id: terminal-bash
name: '@deepseek-ai/dsh-terminal-bash'
config:
timeoutMs: 300000
- id: persistent-bash
name: '@deepseek-ai/dsh-tool-bash-persistent'
config:
timeoutMs: 300000