Skip to content
dsh.fish
Bundle

dsh-file-links

DSH (DeepSeek Harness) plugin: Codex-style clickable file-reference chips in the conversation. Workspace files referenced by tools or mentioned in a reply render as icon chips under each assistant turn; click to open in the built-in preview.

Source
h1-count
License
MIT
Updated
Updated 2 days ago

Readme

# dsh-file-links

DSH(DeepSeek Harness)对话文件引用插件:把每条 assistant 回复里被工具引用或正文提及的工作区文件,渲染为 **Codex 风格的可点击 chips**(类型图标 + 文件名),点击即用 DSH 内置预览打开。

> English: [README.en.md](./README.en.md)

## 功能

- **自动提取**:从三类来源确定性累积每轮引用的文件路径——① 工具结果的 `locations`(diff/edit 卡片)② 工具调用参数里的路径 ③ 回复正文的行内 code 提及
- **Codex 风格 chips**:`文件引用` 标签 + 一行圆角小胶囊(按扩展名着色图标:TS/JS/MD/表格/图片…),hover 高亮,超出 8 个折叠为 `+N`
- **点击即预览**:复用 DSH 聊天视图自带 `openFile`(`workspaces.openPath`),零自建预览
- **安全**:渲染前经 Host 端 `fs.stat` 校验,只保留真实存在的**普通文件**(目录、噪声、不存在的路径自动过滤);绝对路径直开、相对路径按会话 cwd 解析,杜绝路径二次拼接
- **主题适配**:样式走 DSH 主题变量(`--dsw-alias-*`),浅色/深色主题均可读

## 安装

```bash
dsh plugin --profile web add github:<你的账号>/dsh-file-links
```

或本地源码:

```bash
git clone https://github.com/<你的账号>/dsh-file-links.git
# 将目录链接进 profile 的 node_modules,并在 profile 的 package.json 中:
# 1) dependencies 添加 "dsh-file-links": "file:<路径>"
# 2) dsh.profile.bundles 数组追加 "dsh-file-links"
# 然后重启 DSH
```

## 工作原理

- **Client 半**:注册 `conversation.chat.turnTail` 链,通过 turn 级 `ConversationNodeDefinition`(kind `file-links`)累积路径,渲染 chips
- **Host 半**:注册 `/file-links/verify` HTTP 路由,用 `fs.stat` 校验绝对路径存在性并只保留普通文件
- **无业务写入、无敏感信息**:插件只读取路径元数据,不读取文件内容、不上传任何数据

## 许可

MIT

Install

dsh plugin --profile web add github:h1-count/dsh-file-links

Profile: web

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