fix(python): resolve Linux runtime without helper

This commit is contained in:
Tianyi Cui
2026-07-29 23:20:08 +08:00
parent 5de69975f0
commit 525b3aa6c9
5 changed files with 47 additions and 19 deletions

View File

@@ -5,8 +5,8 @@ Two runtime carriers coexist under ``runtime/``, both injected by the repo's
- **exe (production)**: single-file Node executables named
``dsh-jsonrpc-agent-pkg-<platform>-<arch>`` (platform in {linux, macos}, arch in
{x64, arm64}) plus a sibling ``-spawn-helper`` used by ``node-pty``; the
target machine needs no Node installation.
{x64, arm64}); macOS also uses a sibling ``-spawn-helper``. The target machine
needs no Node installation.
- **node (dev-only)**: the full deploy closure under ``runtime/node/``
(``package.json`` + ``node_modules/``), executed as ``node
runtime/node/node_modules/@deepseek-ai/dsh-jsonrpc-demo/lib/bin.js`` on a
@@ -71,11 +71,11 @@ def bundled_default_config_path() -> Path:
def bundled_runtime_path() -> Path:
"""Absolute path of the bundled single-file runtime executable for the current platform.
Raises FileNotFoundError when the platform is unsupported or the executable
has not been placed into this package; the message names the acquisition
routes (acquisition strategy is deliberately separate from this lookup
interface, so an on-demand download can replace it without touching
callers).
Raises FileNotFoundError when the platform is unsupported, the executable
has not been placed into this package, or the required macOS spawn helper is
missing; the message names the acquisition routes (acquisition strategy is
deliberately separate from this lookup interface, so an on-demand download
can replace it without touching callers).
"""
tag = _current_platform_tag()
path = bundled_package_dir() / "runtime" / f"dsh-jsonrpc-agent-pkg-{tag}"
@@ -84,12 +84,13 @@ def bundled_runtime_path() -> Path:
f"deepseek-harness-runtime-bin is missing the runtime executable at {path}. "
+ _EXE_ACQUISITION_HINT
)
helper = Path(f"{path}{SPAWN_HELPER_SUFFIX}")
if not helper.is_file():
raise FileNotFoundError(
f"deepseek-harness-runtime-bin is missing the node-pty spawn helper at {helper}. "
+ _EXE_ACQUISITION_HINT
)
if tag.startswith("macos-"):
helper = Path(f"{path}{SPAWN_HELPER_SUFFIX}")
if not helper.is_file():
raise FileNotFoundError(
f"deepseek-harness-runtime-bin is missing the node-pty spawn helper at {helper}. "
+ _EXE_ACQUISITION_HINT
)
return path