dsh-prompt-polish:DSH 输入框三档润色,先预览再回填

前言

在 DSH(DeepSeek Harness)里,输入框草稿往往是一句随手写的需求:直接发送容易含糊,自己重写到结构清晰又费时,还容易改走原意。常见做法是复制到别处让模型改一版再贴回来,但 @引用、代码块、路径和命令参数很容易丢,而且会多占一轮会话上下文。

dsh-prompt-polish 是面向 DSH Web GUI 输入卡的「二次优化」插件:在草稿仍留在输入框的前提下,按轻 / 中 / 重三档改写,结果先进入预览面板,确认后才回填;未确认前草稿一字不改。优化过程不写入 Session、不产生对话轮次。维护者为 zhaosiw,许可证 MIT,归类上常出现在模型推理 / Web UI 相关目录。

这是什么

一句话:把输入框里的一段话交给当前默认模型做三档润色,预览满意再写回输入框,并尽量保留 @引用、代码与原有意图。

  • 名称:dsh-prompt-polish
  • 版本(package.json):0.1.0
  • 平台:DSH Web GUI(dshhub 标注 surfaces 为 host、web)
  • 目录页:https://www.skillhub.cn/plugins/zhaosiw/dsh-prompt-polish
  • 源码:https://github.com/zhaosiw/dsh-prompt-polish

核心功能

入口与交互

  • 输入卡片上方 Aa 优化 按钮
  • 快捷键 Ctrl/Cmd + Alt + P
  • 浏览器会记住上次选用的档位(默认「中度」);提交或裁决进行中时,相关按钮自动置灰

三档改写

档位 标识 做什么 效果
轻度 smooth 修语法、错别字、标点、赘词、指代与衔接 结构与信息量不变,长度约在原文 ±15% 内
中度 structure 把隐含结构写清楚:分点、范围、输出格式、禁止项等 信息点与原文一一对应,每句能在原文找到出处
重度 instruction 重组成可执行指令:目标 / 范围 / 要求 / 禁止项 / 验收标准 模糊表述收敛;缺的参数进入「待确认」

先预览后回填

改写结果只进入预览面板;确认之前输入框草稿不动。预览框内可继续编辑后再决定是否采用。

选区模式

在草稿中选中一段时,只优化选区;确认后只替换该选区(一次可撤销的编辑)。

保真与边界行为

客户端会校验并尽量逐字保留:@引用、/命令、代码块与行内代码、URL、路径、环境变量、命令参数、标识符、数字。若有丢失,会在面板顶部列出。

其他约定:

  • 优化使用设置里的 agent-default-model;无可用模型时提示先在设置里选择模型
  • 调用优先关闭 reasoning,被拒时自动退回默认档
  • 输出协议为 {"text","notes","assumptions"};超时 60 秒
  • 重度档文本更长时会按原文长度放大 token 预算;若被截断会尽量从 "text" 字段抢救正文,避免把裸 JSON 写回输入框

不写会话

按 DSH 对「模型可见输入应能从会话日志重建」的约定,本插件故意不落 Session。需要留痕时请手动复制预览内容。

安装与启用

前提:DSH Web GUI 已能正常使用,profile 目录可写,pnpm 在 PATH。

下面三步把插件加入当前正在使用的 profile(将 <profile> 换成 desktop 或 web):

# 1) 加进正在运行的那个 profile
pnpm --dir "$env:USERPROFILE\.dsh\profiles\<profile>" add "github:zhaosiw/dsh-prompt-polish"

# 2) 让 profile 组合它:编辑 <profile>/package.json 的 dsh.profile.bundles,追加 "dsh-prompt-polish"

# 3) 触发一次 profile 重组(宿主 dsh-hmr 监听 patch/manifest,约 2~3 秒)
Add-Content "$env:USERPROFILE\.dsh\profiles\<profile>\cordis.patch.yml" "`n# touch $(Get-Date -Format o)"

宿主支持热重组:一般无需重启宿主,也无需刷新页面(新 bundle 经 /plugins/events SSE 推到已打开页面)。

仓库提供幂等安装脚本(自动探测在跑的 profile、改前备份、失败回滚):

pwsh -File .\scripts\install.ps1
pwsh -File .\scripts\uninstall.ps1     # 回滚
node .\scripts\verify.mjs dsh-prompt-polish 61372   # 只读验证:模块图有该行 + bundle 200

说明:verify.mjs 中的端口号 61372 来自 README 示例,实际验证时需与本机 GUI 端口一致。

兼容性(package.json / README):DSH >=0.2.0-rc.2,Node >=20;README 写明在 DSH 0.2.1-rc.2(Web GUI / desktop profile)上实测,客户端 slot 与 Remote 形态可能随版本变化。

典型用法

  1. 在输入框写好草稿(可含 @引用、代码块、路径等)。
  2. 点击 Aa 优化 或按 Ctrl/Cmd + Alt + P,在面板中选择轻度 / 中度 / 重度。
  3. 等待流式结果进入预览;必要时在预览框内再改几个字。
  4. 确认后全文或选区回填;不满意则关闭面板,草稿保持原样。
  5. 仅需润色一段时:先选中该段,再触发优化,确认后只替换选区。

仓库 test/cdp-verify.mjs 在 headless Chromium 下会跑完整链路(点按钮、切重度、确认插入、快捷键、Esc 关闭等),可作为行为参考;该脚本需本机会话 cookie,使用 ~/.dsh/.credentials.yaml 签名密钥在本机签发,不读取模型密钥。

工作原理(简述)

插件拆成宿主半区与浏览器半区:lib/index.js 提供 promptPolish 服务并把草稿交给 LLM 流式改写;lib/client.js 为手写成品 bundle,挂载输入 dock、预览面板与快捷键;浏览器通过 ctx.remote.promptPolish.polish({ text, level, locale }) 调用。草稿读写走宿主 inputActions(captureInsertion、insertText、setDraft 等)。更细的 slot、RPC 与提示词规则见仓库 docs/(spec.md、composer-api.md、host-llm.md、deploy.md)。

适用场景与注意

适合谁

  • 经常在 DSH 输入框里写长需求、希望结构更清晰但不想多占会话轮次的使用者。
  • 需要在改写法的同时尽量保留技术细节(引用、代码、路径、参数)的场景。

使用前建议

  • 插件在当前 DSH 进程权限下运行,安装前请阅读源码与 MIT 许可证,确认符合你的环境策略。
  • 社区目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系;安装命令以 README 为准,勿凭插件名自行拼接未文档化的命令。
  • Lexical 渲染下,输入框内换行在 innerText 中可能呈现为多行空行,段落结构仍以编辑器为准(README 已知边界)。
  • 无可用默认模型时无法优化;重度档输出更长,仍可能受模型长度限制。

结尾

dsh-prompt-polish 把「润色输入草稿」收进 DSH 输入卡:三档可控、预览可编辑、确认才回填,并尽量保真技术片段。需要安装细节与实现证据时,可直接查阅 GitHub README 与 docs/。

  • 目录页:https://www.skillhub.cn/plugins/zhaosiw/dsh-prompt-polish
  • GitHub:https://github.com/zhaosiw/dsh-prompt-polish
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜