WeKnora
Tencent
Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:kivensteven8-eng/dsh-file-download
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
面向 DeepSeek Harness(DSH)的文件下载插件:把会话工作区里的文件变成浏览器 直接下载的 HTTP 通道 —— 为 iPad Safari / iPhone 等局域网与域名访问设备设计, 让"生成文件保存到本地"不再依赖服务器桌面环境。
背景:DSH 的
host.openPath属于特权方法,永远只允许回环(loopback)调用; 无桌面 Linux 服务器上即使放开也没有应用能"打开"文件。正确姿势就是 HTTP 下载。
两种用法:独立零依赖服务(不装插件也能用)与 cordis 插件(随 profile 启动)。参考实现见 dsh-pentest 的仓库 形态。
# 从 GitHub 直接安装(仓库根目录即可被 pnpm 解析)
dsh plugin --profile web add github:<your-name>/dsh-file-download
# 或本地路径安装
dsh plugin --profile web add ./path/to/repo
安装后重启 profile 生效:
http(s)://<你的入口>/…/dsh-file-download//file?path=<工作区相对路径>config.mountPath 调整卸载:dsh plugin --profile web remove dsh-file-download
⚠️ 插件随 profile 重启加载 —— 会中断当前会话,建议空余时操作。
node service.mjs # 默认 0.0.0.0:8766,根目录取 DSH_DL_ROOT 或 cwd
环境变量:
| 变量 | 默认 | 说明 |
|---|---|---|
DSH_DL_PORT |
8766 |
监听端口 |
DSH_DL_HOST |
0.0.0.0 |
绑定地址 |
DSH_DL_ROOT |
cwd | 允许下载的工作区根 |
DSH_DL_MOUNT |
空 | 反代保留前缀时填写,如 /dl |
DSH_DL_TOKEN |
空 | 设置后所有请求必须带 ?token= |
DSH_DL_EXTRA_HOSTS |
空 | 额外放行的 Host 授权,逗号分隔 |
# 在 forward_auth 之前挂载,由服务的 ?token= 自行保护
handle /dl* {
reverse_proxy 127.0.0.1:8766
}
配套的 watch-caddy.mjs 是一个自愈看门狗:若外部进程会周期性 从磁盘重载 Caddy、把运行时添加的路由冲掉,它可以每 15 秒巡检并自动补回。
设计哲学与 DSH 自身的围栏一致(针对无鉴权面的轻量防护,不是认证系统):
../)、绝对路径、符号
链接外逃全拒;任意层级的隐藏条目(. 开头)一律 403;Sec-Fetch-Site: cross-site / 异源 Origin)拒绝;Content-Disposition: attachment +
nosniff + no-store,杜绝被当页面渲染。中文文件名按 RFC 5987 filename* 编码,iPad 上还原正常。
公网暴露请务必置于带认证的反向代理之后。
推送 v* 标签即触发 GitHub Actions:npm pack 打包并在 Release 附上
dsh-file-download.tar.gz。
MIT © 2026
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: file-download。