Skip to content
dsh.fish
Bundle

dsh-livis-connector

Connect Livis to DeepSeek Harness with in-app authorization and relay management

Source
fyy99
stars
3 stars
License
MIT
Updated
Updated 4 hours ago

Readme

# dsh-livis-connector

将 Livis 接入 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的原生 Cordis 插件。授权、Agent ID 绑定引导与连接状态都在 DSH 设置页完成,运行时不依赖 OpenClaw。

![dsh-livis-connector 管理页](docs/images/dsh-livis-connector.png)

## 功能

- 在 DSH 设置页完成 Livis 账号授权和连接管理。
- 生成并展示 Agent ID,引导在 Livis App 中完成设置。
- 将 Livis 消息交给持久 DSH Agent,并把结果可靠回传。
- 支持取消、结果确认、断线重连和 `job_id` 幂等。
- 支持白名单文档上传,并限制在配置的目录内。
- refresh token 仅保存在 DSH Host,不会下发到浏览器页面。

## 环境要求

- Node.js `^22.19.0 || >=24.0.0`
- DeepSeek Harness `0.1.0-rc.6`
- 已在 DSH 中配置可用的模型和 API Key
- 可正常访问 Livis 账号授权与中继服务

DSH 仍处于 developer preview。本插件跟随其插件 API 演进,升级 DSH 前请先检查兼容性。

## 安装

使用 DSH 官方插件命令安装 GitHub 仓库:

```bash
dsh plugin --profile web add github:fyy99/dsh-livis-connector
dsh --profile web --dump-config
```

随后启动 Web profile:

```bash
dsh web
```

需要可复现部署时,请把 GitHub 依赖固定到经过验证的 commit SHA,而不是长期跟随默认分支。

也可以先执行 `npm pack` 生成 tarball,再把 tarball 路径交给同一个 `dsh plugin --profile web add` 命令。

## 连接 Livis

1. 打开 DSH,进入「设置 → 插件 → Livis」。
2. 点击「开始授权」,在打开的理想账号页面确认授权。
3. 等待页面显示已连接到 DSH,并复制生成的 Agent ID。
4. 在 Livis App 打开「我的 → 连接与服务 → 我的 Agent」,粘贴 Agent ID。
5. 从 Livis App 发送一条测试消息。第三步点亮后即可使用。

如果授权中断或过期,回到同一页面重新发起即可。插件不会在页面加载时自动开始授权。

## 配置

插件可在 DSH 插件配置中覆盖以下字段:

| 字段 | 默认值 | 用途 |
| --- | --- | --- |
| `enabled` | `true` | 启用或停用连接器 |
| `stateDir` | `$DSH_HOME/livis` | 保存授权、身份和幂等任务状态 |
| `workspaceRoot` | DSH 启动目录 | Livis Agent 的工作区 |
| `uploadRoot` | `workspaceRoot` | 允许回传文件的根目录 |
| `provider` / `model` | DSH 当前默认模型 | 同时设置时覆盖默认模型 |
| `agentPreset` | DSH 当前默认 preset | Livis Agent 使用的预设 |

三个目录字段必须使用绝对路径。生产端点强制 HTTPS/WSS;仅 localhost 测试允许明文协议。

## 安全与数据

- 不要把 DSH Web 监听到 `0.0.0.0`。管理 RPC 只允许 loopback,但 DSH Web 本身不提供用户登录认证。
- Livis relay 会处理账号令牌、设备与 Agent ID、消息、回复,以及用户明确上传的文件。
- 插件为断线恢复在 `stateDir/jobs.json` 暂存请求与结果,终态任务默认保留 24 小时;DSH 也会保存 Agent session。
- 远端文本始终作为普通用户消息进入模型,不会作为 DSH 斜杠命令执行。
- Livis Agent 的审批策略固定为 `never`;需要本地批准的操作会失败,不会在不可见的页面中等待。
- 建议使用专用低权限 API Key,并让 DSH 在无敏感数据的工作区运行。不要使用 `danger-full-access`。

发现安全问题时,请使用仓库的 [Security Advisories](https://github.com/fyy99/dsh-livis-connector/security/advisories/new) 私下报告,不要在公开 Issue 中提交令牌、Agent ID、消息内容或本机路径。

## 开发与验证

```bash
corepack pnpm install --frozen-lockfile
corepack pnpm run check
corepack pnpm test
npm pack --dry-run
```

测试覆盖 OAuth Device Flow、token 轮换、权限存储、DSH preset/model/turn 关联、文件边界、任务恢复与幂等、管理页脱敏,以及模拟 relay 下的握手、回执、重复消息和运行中取消。

这个包使用预构建 JavaScript,不依赖 Git 安装阶段的 `prepare` 构建脚本。`cordis.patch.yml` 通过 `dsh.bundle.patch` 声明,符合 DSH installable bundle 约定。

## 项目说明

本项目是独立的社区连接器,不隶属于或代表 DeepSeek、理想汽车或 Livis。Livis、DeepSeek Harness 及相关名称归各自权利人所有。使用本项目即表示你会使用本人有权访问的账号与服务,并遵守相应条款。

在线兼容字段沿用 Livis 当前连接方式所需的客户端标识;这不表示本地安装或运行 OpenClaw。

## License

[MIT](LICENSE)

Install

dsh plugin --profile web add github:fyy99/dsh-livis-connector

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source