Repository navigation
Releases: SiriusWJ/dsh-rp-tools
Release list
v1.15.3:放行名单按插件分类到底,去掉「其它」;保存入口收成一个
v1.15.3
设置页「第三方工具管理」这张表按来源插件分类到底,去掉「其它」,并把整页的保存入口收成一个。
1. 放行名单按插件一行一行分(用户:「其它」里面的内容我看是很多插件的,把其它去掉,按插件分类)
本机这张表现在是:
| 行 | 工具 |
|---|---|
| dsh-image-gen(生图 / 画布)🖼 | generate_image edit_image canvas_state view_canvas |
| dsh-genui(界面卡片) | render_ui validate_dsh_ui |
| 宿主内置 · 联网搜索 | web_search web_fetch |
| dsh-mcp(MCP 工具热注入) | mcp_tool_search mcp_servers |
| dsh-lite-memory(记忆 / 日历 / 定时) | 13 个工具合成一行(本来就是同一个插件) |
| dsh-updater-npm(官方文档索引) | dsh_docs_read dsh_docs_search |
| dsh-find-plugin(插件市场检索) | find_dsh_plugin |
| 空 |
映射表(lib/global-tools-defaults.js 的 GLOBAL_TOOL_SOURCES)按插件一条一条登记,3 条 → 7 条。
映射表没覆盖到的才会落到兜底组,组名是「宿主内置 · 其它」(不是中性的「其它」,也不是给维护者
看的「未登记归属(映射表缺条目)」),并在行上列出具体工具名 —— 故意不静默隐藏。它真漏了的话,
smoke-dm 里那道「本机全部实际工具都有归属」的闸门会红。
2. 内置工具不再被误标成「未注册」(用户:web_search 是内置的,应该有这个工具)
根因:tools.schemas() 不带 scope 只给全局层,而 web_search / web_fetch 是宿主注册在
会话作用域的 —— 设置页只读全局层,于是把一直在用的内置工具标成「未注册」。
现在清单 = 全局层 ∪ 会话作用域里已点过名的:
- 样本 agent 来自
agent/created与每轮system-prompt/assemble的context.agent
(插件是运行中重新装载的,已经在跑的会话不会再发agent/created,只靠前者样本永远为空); session/disposed时放掉样本(比 id 前先normalizeSessionId:agent.id 是session-<uuid>、
disposed 给的是裸 uuid);⚠️ 会话作用域那一份必须按放行名单过滤:样本就是用户当前那个对话的 agent,它的作用域里有
read/write/glob/pwsh等 26 个自己的工具,照单全收会让设置页凭空多出 26 行
(这条是在真机接口上抓到的,available从 23 涨到 51);- 「本机没注册」不再自成一组(
__missing__键消失):混进它该在的那组,并在组上点名
未注册 xxx—— 同一个插件的工具不再被劈成两处。
3. 保存入口收成一个(用户:去掉截图里的面板,rp 工具统一用最上面的保存)
第三方工具管理那一节不再有自己的按钮:「手填工具名」输入框与「保存 / 全部放行 / 全部取消 /
恢复默认」整排删掉(连带 addGlobalTool / saveGlobalTools / .gtdraft / .gtAct)。
顶上那颗「保存」现在两次串行请求(/rp-tools/config + /rp-tools/global-tools),
「恢复默认」同样两件事一起做(配置 reset + 名单写回宿主给的 gt.defaults)。
测试
smoke-dm 1079 / smoke-client 480 / smoke-card 256 / verify-roundtrip 10 /
check-no-machine-paths 通过,全 0 失败。
顺手修掉两处桩没铺路:桩里既没有 /rp-tools/config 也没有 /rp-tools/reset 分支,两者都落到
末尾的 { ok:false } —— 于是「保存 / 恢复默认」在第一发就抛错、第二发永远发不出去,多请求的断言
只看到 undefined(查了半天才意识到不是实现错)。
升级后
宿主半侧要重启 dsh web 才装载(lib/ 启动时装载,client/ 刷新页面即可)。
v1.14.3
依赖(重要)
卡片渲染依赖 @changfenhuang/dsh-genui:
render_ui / validate_dsh_ui 两个全局工具、genui:fence 提示词章节、浏览器端的 dsh-ui 围栏渲染器
都由它提供,dm 预设的过滤器专门保留它们。
没装它:rp_* 工具仍能调用,但 DM 画不出任何卡片 / 地图 / 状态面板。
dsh plugin --profile web add @changfenhuang/dsh-genui
dsh plugin --profile web add github:SiriusWJ/dsh-rp-tools装完必须重启 dsh web(宿主代码与客户端 bundle 只在启动时装载)。
安装前提
本机 ComfyUI(Desktop 版亦可)+ 生图模型。三个内置风格各需一套模型,装其中一套即可:
| 风格 | 模型 |
|---|---|
| 二次元(默认) | checkpoints/NetaYumev35_pretrained_all_in_one.safetensors + loras/tone001_manga.safetensors |
| 写实 | diffusion_models/flux1-krea-dev_fp8_scaled.safetensors + text_encoders/clip_l.safetensors + text_encoders/t5xxl_fp16.safetensors + vae/ae.safetensors |
| 黑白漫画 | diffusion_models/krea2_turbo_fp8_scaled.safetensors + text_encoders/qwen3vl_4b_fp8_scaled.safetensors + vae/qwen_image_vae.safetensors |
ComfyUI 地址默认 http://127.0.0.1:8188,可在设置页改。
修复 · 导入界面卡库变更后的死路径
- 目录扫描缓存现在记录所扫描目录的
mtime/ctime,PNG 被重命名、移动或删除后自动重扫。 - 「刷新」按钮显式发送
refresh=1,强制绕过缓存。 - 预览或导入撞到刚失效的路径时返回
CARD_LIBRARY_CHANGED,客户端清掉旧选择并自动刷新列表,不再暴露磁盘 ENOENT。
文档
- README 对照
lib/、client/、preset/逐条校正:风格库(3 个内置风格、默认uncensored_anime)、
模型前提、11 个工具的真实参数、HTTP 路由(26 → 29 条)、导入入口可见性、DM 预设接线与环境变量,
并补上上面的 dsh-genui 依赖说明。
说明
本插件给 DeepSeek Harness 提供跑团 / DM 能力:
中立随机裁决(rp_random)、本地 ComfyUI 配图、按会话隔离的战役配置、世界书与状态追踪、
PNG 故事书(SillyTavern 角色卡)导入。全部 rp_* 工具只在 dm 预设作用域注册。
功能全貌、工具与参数清单、数据目录结构见 README;
开发状态与验证记录见 docs/STATUS.md。