DSH / APPLICATION COMPOSITION
入口变了,运行时如何组合?
选择一种入口,分别追踪启动应用与提交任务的路径。
先启动 Host,再从浏览器提交任务
dsh --profile web --no-open
启动装配任务输入与对应返回通道
- 参数提供者
- webStartup
- 默认传输
- Host 127.0.0.1:3080;请求与持续事件流
- 应用生命周期
- 持续服务;进程信号交给共享退出控制
- 配置来源
- dsh-base → dsh-web-app → 用户覆盖
展开源码定位
- apps/cli/src/profile-boot.ts:244
- packages/bundle/web-app/cordis.patch.yml:179
- packages/client/modules/src/index.ts
参数成为任务,结果写回终端
dsh --profile headless --json "解释项目结构"
启动装配任务输入与对应返回通道
- 参数提供者
- headlessStartup
- 结果通道
- stdout 文本或逐行 JSON;诊断写 stderr
- 完成与退出
- 等待相关活动结束,flush 会话,再请求退出
- 配置来源
- dsh-base → dsh-headless → 用户覆盖
展开源码定位
- packages/bundle/headless/cordis.patch.yml
- packages/bundle/headless/src/startup.ts:37
- packages/bundle/headless/src/index.ts:311
Electron 管窗口,子进程运行 Web 后端
Electron → dsh-desktop-host → runProfile()
启动装配任务输入与对应返回通道
- 启动控制
- Node IPC;共享 profile runner
- 默认监听
- 127.0.0.1,port 0 由操作系统分配端口
- 进程关系
- Electron 主进程 / renderer / Node Host 子进程
- 配置来源
- Web 模板的 bundle + Desktop 管理的 profile
展开源码定位
- apps/desktop/src/host-process.ts:186
- apps/desktop-host/src/index.ts:18
- apps/desktop/src/web-document.ts:77
客户端拥有子进程,通过协议投递消息
SDK client → dsh --profile sdk
启动装配任务输入与对应返回通道
- 参数提供者
- sdkAppStartup;协议握手检查模型路由
- 结果通道
- session.event / session.status 与 RPC 响应
- 完成与退出
- 等待活动区间完成;shutdown 释放根 Context
- 配置来源
- 完整 sdk:base + sdk-app;minimal:独立树
展开源码定位
- packages/sdk/client/src/launch.ts:128
- python/sdk/src/deepseek_harness/client.py:476
- packages/sdk/server/src/index.ts:76