refactor(acp): launch automation through the dsh acp profile

Replace the standalone @deepseek-ai/dsh-acp-demo application with dsh --profile acp plus ordered example patches. The shipped acp-app bundle owns only the protocol bridge; every example overlay now targets shared dsh-base rows instead of copying a complete application tree.

Move launcher responsibilities into the ACP snapshot harness: it materializes profile patches, links required packages, reserves stdout for JSON-RPC, observes spawn and drain failures, and escalates process teardown deterministically. The relocated control-surface fixture and the ACP/subagent integration tests now exercise the real CLI/profile path.

This commit contains authored runtime, configuration, and test changes only. Generated transcript and projection churn is deliberately left for the next commit so reviewers can inspect the migration logic without hundreds of expected-output edits.
This commit is contained in:
Tianyi Cui
2026-08-23 10:59:00 +08:00
parent 713b41a946
commit d8dbb8235c
118 changed files with 2685 additions and 3168 deletions
+7 -3
View File
@@ -8,9 +8,13 @@ if (process.argv.length > 2) {
const child = spawn(process.execPath, [
'--import',
'tsx',
'packages/examples/acp-demo/src/bin.ts',
'--config',
'tsx/esm',
'apps/cli/src/bin.ts',
'--profile',
'acp',
'--patch',
'examples/acp-agent/cordis.yml',
'--patch',
'examples/acp-agent/code-mode.cordis.yml',
], { stdio: 'inherit' })
child.on('exit', (code, signal) => { process.exit(signal !== null ? 1 : code ?? 1) })
+6 -2
View File
@@ -6,8 +6,12 @@ import { spawn } from 'node:child_process'
const SURFACES = new Map([
// The browser surface with the cordis toolset layered on: `dsh web --config`
// applies this overlay over the shipped web composition; it owns port 3081.
['web', ['--import', 'tsx', 'apps/cli/src/bin.ts', 'web', '--patch', 'examples/web-cordis/cordis.yml']],
['acp', ['--import', 'tsx', 'packages/examples/acp-demo/src/bin.ts', '--config', 'examples/acp-agent/cordis-tools.cordis.yml']],
['web', ['--import', 'tsx/esm', 'apps/cli/src/bin.ts', 'web', '--patch', 'examples/web-cordis/cordis.yml']],
['acp', [
'--import', 'tsx/esm', 'apps/cli/src/bin.ts', '--profile', 'acp',
'--patch', 'examples/acp-agent/cordis.yml',
'--patch', 'examples/acp-agent/cordis-tools.cordis.yml',
]],
])
const surface = process.argv[2] ?? 'web'