# dsh-overleaf [English](README.md) | [中文](README.zh.md) DeepSeek Harness(DSH)Web 的 **Overleaf 嵌入工作台**插件。它在会话页顶部的 `对话 / 轨迹 / 上下文` 旁新增第四个选项:通过同源反向代理加载你的 Overleaf 站点(公有云或自托管,如 `https://tex.nju.edu.cn`),页面**完整可操作**——编辑、编译、PDF 预览全部保留——页面下方仍是原生 DSH 对话输入框;选区引用、光标处写入、LaTeX 辅助面板在两者之间打通。 ``` +--------------------------------------------------------------+ | 会话页选项条: 对话 | 轨迹 | 上下文 | [Overleaf] | +--------------------------------------------------------------+ | 工具栏: 刷新 / 新窗口 / 登录 / Cookie / 辅助面板 | | +----------------------------------------------------------+ | | | https://.../overleaf-proxy/...(同源 iframe) | | | | Overleaf 编辑器、编译器、PDF 预览全部可用 | | | +----------------------------------------------------------+ | | 选区浮动「引用」气泡 —— 选区桥 | | 状态条 / 辅助面板(AI 写入、选区 AI、文档大纲……) | +--------------------------------------------------------------+ | DSH composer(原生,未做任何改动) | +--------------------------------------------------------------+ ``` - 许可证:MIT - 目标运行时:DeepSeek Harness `0.1.1-rc.2` web profile(`http://127.0.0.1:3080`) - 协议:附带符合 [dsh-std](https://github.com/Yan-Zero/dsh-std) 互操作规范的静态 Community v0.15 `dsh-plugin.json` 清单;经典双半区 bundle 加载仍是主激活路径。 ## 界面预览 **运行在 DSH 会话页中的 Overleaf 编辑器**——完整编辑器与项目文件树,下方保留 DSH 对话输入框: ![运行在 DSH 会话页中的 Overleaf 编辑器](docs/screenshots/01-overview.png) **分屏视图:LaTeX 源码与 PDF 预览并排**,配合 Recompile——编译、预览、迭代都不离开对话页: ![分屏视图:源码与 PDF 预览](docs/screenshots/02-split-view.png) **辅助面板——三大工具并排**:AI 写入与自动捕获插入、选区 AI(审阅后替换原选区)、编译修复(读取日志错误/警告并一键智能体修复): ![辅助面板标签:ai-insert / selection-ai / compile-fix](docs/screenshots/panel-tabs.png) - **`[ ai-insert ]`**——用自然语言描述需求,DSH 智能体完成写作后,面板会**自动捕获智能体的产出并填入"自定义内容"框**——检查后一键插入编辑器光标处。 - **`[ selection-ai ]`**——在编辑器中选中文字,让智能体解释或改写,审阅替换内容后替换原选区;原文/选区漂移保护默认开启,也可取消勾选后按保存的原锚点位置强制替换(切换文件仍会拒绝)。 - **`[ compile-fix ]`**——Recompile 后读取编译日志中的错误与警告,让智能体针对当前打开的文档提出自动修复。 - **本地 `.bib` 同步**——`ai-insert` 与 `selection-ai` 面板都提供“更新 Overleaf .bib”:默认递归检测当前 DSH 工作区中的 `.bib`,也可填写工作区内的绝对/相对路径;点击后按同名文件更新 Overleaf,并等待自动保存确认。 - **当前 `.tex` 双向同步**——辅助面板“状态”页默认把当前 Overleaf 源码同步到工作区:递归检测本地 `.tex`,没有候选时在工作区根目录新建同名文件;也可选择本地路径。切换为“本地 → Overleaf”后,可读取本地文件或使用手动粘贴的完整 LaTeX 内容,但必须先确认整篇覆盖警告,并通过文档 ID、内容版本、修改前快照和保存事件校验。 ## 为什么需要它 Overleaf 的每个响应都带 `X-Frame-Options` / CSP `frame-ancestors`,直接 `