deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
为 DeepSeek Harness(WebUI 与桌面版通用)添加「翻译模式」:与标准模式/创造模式并列的 Agent 预设——发送原文,模型只返回译文。
[源语言▾] [⇄] [目标语言▾] [风格设置]<DSH_HOME>/translate-settings.json,所有翻译模式会话即时采用)将 agent-preset/ 目录复制为用户级预设:
Copy-Item -Recurse .\agent-preset "$env:USERPROFILE\.dsh\.agent-presets\translate"
新建会话 → 预设选择器 → 「翻译模式」。
将 local-plugin/ 复制为用户级本地插件(profiles/node_modules 是所有 profile 共享的扁平模块目录,WebUI 与桌面版都从这里解析):
Copy-Item -Recurse .\local-plugin "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-plugin-translate"
在用户级补丁 $env:USERPROFILE\.dsh\cordis.patch.yml 追加(home 级补丁对所有 profile 生效,无需区分 WebUI / 桌面版;文件不存在则新建):
- insert:
- id: dsh-translate
name: dsh-plugin-translate
重启 Harness(WebUI 或桌面版均可)。之后 设置 → 插件 中出现 dsh-plugin-translate,翻译模式会话的输入框工具行即出现语言控件与「风格设置」。
备选:动态插件方式(无需重启)。在「创造模式」会话中,用
cordis_define定义动态插件:
code.host←plugin/host.js内容code.client←plugin/client.js内容- 插件对象
inject: ['slots', 'locale']
agent-preset/ 翻译模式 Agent 预设(可直接复制到 ~/.dsh/.agent-presets/)
preset.yml 预设元数据(名称/描述/排序)
agent.cordis.yml 组合:persona(只返回译文)+ lib/settings.js(设置变量注入)
lib/settings.js 每次组装提示词时读取 translate-settings.json 注入 persona 变量
plugin/
host.js 动态插件宿主端(saveSettings RPC、设置变更通告、translate_diag)
client.js 动态插件浏览器端(工具行控件、语言菜单、风格面板、18 语字典)
local-plugin/ 静态本地包(设置 → 插件 安装方式,WebUI 与桌面版通用;与 plugin/ 同源实现)
package.json dsh.client 声明(platform: web)、exports ./client
lib/index.js 宿主端:/dsh-translate/settings 路由、pre-step 通告、translate_diag
lib/client.js 浏览器端:__ModuleLoader__ 打包格式(require('react')、slots.inject)
i18n-self-test.mjs 本地化自测:18 语言 × 22 键全量断言(node i18n-self-test.mjs)
lib/settings.js 注册 {{translatesource}}/{{translatetarget}}/{{translatestyle}} 变量,每次组装时读取 <DSH_HOME>/translate-settings.jsonsaveSettings RPC;本地插件:POST /dsh-translate/settings)写入共享设置文件(显式 workspace-write 沙箱策略)agent/pre-step 拦截:设置变更后,首条用户消息前插入「翻译设置」上下文(内存配置,无文件竞态,去重通告)node i18n-self-test.mjs
MIT(LICENSE 文件,作者 576576)
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。