Record sdk-minimal as the narrow repository-owned exception to base-first profile composition: callers still launch only dsh and cannot provide an arbitrary Cordis tree, while the shipped bundle may own a complete explicit roster. Cross-link the launcher, profile-bundle, Python-runtime, minimal-agent, snapshot, and telemetry decisions; the supersession audit keeps each older note active because its remaining rationale is independent. Update the CLI, architecture, Python tutorial/reference, example, runtime-wheel reference, and bundle documentation. The docs distinguish the full sdk profile from sdk-minimal, explain explicit-home/plugin/patch customization, state the minimal permission and persistence choices, and retain the separately packaged web profile and frontend assets for direct dsh use. Correct dsh-base descriptions to cover base-backed profiles, make SDK startup configuration visible in the generated config catalog, add sdk-minimal to the module graph, and regenerate the base-composition graph. English and Chinese pairs are re-recorded at the exact reviewed contents.
3.6 KiB
deepseek-harness-runtime-bin
English | 中文
DeepSeek Harness Python SDK 的平台运行时 wheel。它把普通 dsh CLI 及其封闭的 Node 依赖树打包成原生可执行程序,因此使用 SDK 不需要系统 Node.js。本包只发布 wheel。
安装命令与产物
Wheel 会安装 dsh 控制台命令和 deepseek_harness_runtime Python 模块。dsh 将参数转发给内置可执行程序,并要求非空 DSH_HOME;它不会回退到 ~/.dsh。
生产可执行程序位于模块的 runtime/ 目录,命名为 deepseek-harness-sdk-runtime-<platform>-<arch>。Linux 与 macOS wheel 包含目标平台原生的 -rg 伴随程序;macOS 还包含 node-pty 使用的 -spawn-helper。已发布目标是 Linux x64、Linux arm64 与 macOS arm64。Wheel tag 必须与载荷严格匹配。
仓库构建还会物化仅限开发的 runtime/node/ 载体。它在系统 Node 22.19 或更高版本上运行 node runtime/node/node_modules/@deepseek-ai/dsh/lib/bin.js。系统不会自动选择它,而且 wheel 与 sdist 均不包含它。
两种载体执行相同的 dsh 语法与随附 profile,包括独立的 sdk-minimal 配置树,以及包含前端产物的完整 web profile。私有 dsh-python-runtime-closure manifest 定义打包依赖闭包;不存在 Python 专用 Node 应用或检入的默认 cordis.yml。
Python 模块 API
bundled_package_dir() -> Path返回已安装模块数据根目录,并校验发布元数据。bundled_runtime_path() -> Path返回当前平台可执行程序,并校验必需伴随文件。resolve_bundled_launch_args(mode=None) -> tuple[str, ...]默认返回可执行程序 argv。显式mode="node"或DSH_RUNTIME_MODE=node会选择仅限仓库使用的 Node 载体。main()实现已安装的dsh控制台命令,并在替换 Python 进程前拒绝缺失或空白的DSH_HOME。
不支持的平台以及缺失的可执行程序或伴随文件会抛出 FileNotFoundError,并指出构建与安装路径。未知运行时模式会抛出 ValueError。
打包后的 profile 解析
dsh 在显式 home 下初始化随附 profile、组合其 bundle patch,并从可执行程序的虚拟文件系统加载内置插件。操作系统符号链接无法进入该文件系统,因此打包运行会在 $DSH_HOME/profiles/node_modules 下维护小型真实 ESM 代理包。每个代理镜像显式运行时 exports、记录原包身份,并重新导出虚拟模块 URL。因此,内置配置项与外部插件 peer 会共享同一个 Cordis/模块实例。原生共享库与原生 addon 一同打包;ripgrep 与 macOS PTY helper 仍是可执行伴随程序。
外部 profile 管理使用 dsh plugin --profile <name> ...。该命令要求 PATH 中存在 pnpm;普通 SDK/profile 运行不需要它。
构建与分发
在仓库根目录运行 pnpm exec tsx scripts/build-exe-for-python-sdk.ts,会校验闭包、构建包、部署无符号链接的文件树、打包所选目标,并把可执行程序及伴随文件同步到本模块。scripts/build-python-release.py 按仓库根版本暂存发布形态的 wheel,并将 deepseek-harness-sdk 固定到完全相同的运行时版本。
Installed-wheel smoke 会在 checkout 外创建干净虚拟环境,证明 distribution 与可执行程序来源,然后覆盖默认及自定义 SDK profile、外部插件、MCP、原生工具、直接 JSON-RPC、检入快照,以及可信运行中的真实提供方。另见 Python 贡献者工作流与 installed-wheel 测试决策。