feat(agents): 新增 mydsh 启动器 —— DeepSeek Harness CLI 包装
- launcher _BACKENDS 加 dsh:profile 透传、zstd 会话列表(session/title 或首条用户消息)、 --resume 透传、DSH_HOME 环境变量与 expanduser - entrypoints/cli/completion/打包/卸载全触点 + TestDsh 用例(裸跑/版本/透传/列表/缺 bin)
This commit is contained in:
@@ -9,6 +9,7 @@ from myagents.entrypoints import (
|
||||
claude_cli,
|
||||
codex_cli,
|
||||
cursor_cli,
|
||||
dsh_cli,
|
||||
hermes_cli,
|
||||
kimi_cli,
|
||||
)
|
||||
@@ -204,6 +205,49 @@ class TestMycursorEntrypoint:
|
||||
assert mock_run.call_args[0][0][-2:] == ["--resume", "abc123"]
|
||||
|
||||
|
||||
class TestMydshEntrypoint:
|
||||
"""``mydsh`` standalone entrypoint."""
|
||||
|
||||
def test_runs_dsh(self) -> None:
|
||||
runner = CliRunner()
|
||||
with (
|
||||
patch("myagents.launcher.shutil.which", return_value="/usr/bin/dsh"),
|
||||
patch("myagents.launcher.subprocess.run") as mock_run,
|
||||
):
|
||||
mock_run.return_value = MagicMock(returncode=0)
|
||||
result = runner.invoke(dsh_cli, [])
|
||||
assert result.exit_code == 0
|
||||
# dsh is a profile launcher; no default args are injected.
|
||||
assert mock_run.call_args[0][0] == ["/usr/bin/dsh"]
|
||||
|
||||
def test_version_shows_mydsh(self) -> None:
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(dsh_cli, ["--version"])
|
||||
assert result.exit_code == 0
|
||||
assert "mydsh" in result.output
|
||||
|
||||
def test_passthrough(self, tmp_path: Path) -> None:
|
||||
"""``--resume <id>`` passes through to the native dsh CLI."""
|
||||
runner = CliRunner()
|
||||
with (
|
||||
patch("myagents.launcher.shutil.which", return_value="/usr/bin/dsh"),
|
||||
patch("myagents.launcher.subprocess.run") as mock_run,
|
||||
):
|
||||
mock_run.return_value = MagicMock(returncode=0)
|
||||
result = runner.invoke(
|
||||
dsh_cli, ["--cwd", str(tmp_path), "--resume", "abc123"]
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert mock_run.call_args[0][0][-2:] == ["--resume", "abc123"]
|
||||
|
||||
def test_missing_binary_exits_127(self) -> None:
|
||||
runner = CliRunner()
|
||||
with patch("myagents.launcher.shutil.which", return_value=None):
|
||||
result = runner.invoke(dsh_cli, [])
|
||||
assert result.exit_code == 127
|
||||
assert "dsh CLI not found" in result.output
|
||||
|
||||
|
||||
class TestTmuxOption:
|
||||
"""``--tmux`` / ``-t`` wraps the backend in an attachable tmux session."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user