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
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-proxy-env from the hub