Skip to content
dsh.fish
Bundle

dsh-proxy-env

DSH 代理环境开关:设置页 UI + proxy_env 工具 + /proxy 命令;全局 dispatcher 与子进程环境变量双层生效

Source
localSummer
License
MIT
Updated
Updated 2 days ago

Readme

# dsh-proxy-env

DeepSeek Harness(DSH)代理环境开关插件:Host 侧设置全局 dispatcher / 子进程代理环境,Web 设置页提供「代理环境」配置卡片。

兼容:`dsh >= 0.1.2-rc.1`(Web profile)

## 安装

```sh
dsh plugin --profile web add github:localSummer/dsh-proxy-env#main
```

本地开发(仓库检出):

```sh
dsh plugin --profile web add /path/to/dsh-proxy-env
```

安装后重启 `dsh --profile web`(或当前使用的 Web 进程)。

用 `--dump-config` 确认出现 `# == dsh-proxy-env` layer,且含 `id: proxy-env` 行。

## 卸载

```sh
dsh plugin --profile web remove dsh-proxy-env
```

然后重启 DSH。

## 功能

- **模式**
  - `all`:模型 API、子进程、Git、npm 等流量走代理(写 `HTTP(S)_PROXY` / `ALL_PROXY` / `NO_PROXY`)。
  - `include`:仅代理指定主机清单内的 in-process fetch(子进程 env 不变)。
- **代理地址**:`http://` 或 `https://`
- **豁免清单**(all):与机器既有 `no_proxy` 合并,强制包含 `localhost,127.0.0.1`
- **安全**:代理不可达时启动降级直连并告警;`on` 在不可达时拒绝写入 `enabled=true`

配置命名空间:`settings.yaml` 的 `proxy-env` 段(设置页 / `/proxy` / `proxy_env` 共用)。

## 配置项

| 字段 | 类型 | 说明 |
|------|------|------|
| `enabled` | boolean | 是否启用 |
| `url` | string | 代理地址,默认 `http://127.0.0.1:7890` |
| `mode` | `all` \| `include` | 代理模式 |
| `proxyHosts` | string[] | include 模式下的主机清单 |
| `noProxy` | string | all 模式豁免清单 |

也可在设置页「代理环境」中编辑。

## 命令与工具

### `/proxy`

```text
/proxy on [代理地址]
/proxy off
/proxy status
```

### `proxy_env`

- `action`: `on` | `off` | `status`
- `url` / `mode` / `proxyHosts` / `noProxy`(可选)

## 包结构

```text
dsh-proxy-env/
├── package.json          # dsh.bundle + dsh.client
├── cordis.patch.yml      # 插入 id: proxy-env
├── index.mjs             # Host:settings / tools / commands / dispatcher
├── client.js             # Web:settings.section 卡片(ModuleLoader 工厂)
├── LICENSE
└── README.md
```

## 开发说明

- Host:`export const inject = ['tools', 'commands', 'settings']`;卸载时经 `ctx.effect` 还原 dispatcher 与环境变量。
- Client:`window.__ModuleLoader__.load({ id: "dsh-proxy-env", ... })`,注入 `slots` + `settingsScope`。
- 运行时依赖:`schemastery`、`undici`(已写入 `dependencies`)。

## 作者

**localSummer** · v0.1.0 · MIT

Install

dsh plugin --profile web add github:localSummer/dsh-proxy-env#16650a65bed6827b3bb5d6f01d62bb07f06902a1

Profile: web

Source