Quophic/dsh-plugin-installer

Quophic★ 0TypeScript最后同步: 2026-08-19

在 GitHub 打开

README 摘要

dsh-plugin-installer DSH 插件自动安装重启助手:让 agent 通过一个模型工具完成「备份 → 安装 → 重启 → 自动继续对话」,安装或启动失败时自动回滚并报告问题。 功能 - 模型工具 install plugin :安装持久化插件(bundle)到指定 profile。 1. 备份 :安装前自动把 profile 的 package.json 、 cordis.patch.yml 、 cordis.yml 、 settings.yaml 备份到 $DSH HOME/backups/plugin-install- / (含 manifest 清单)。 2. 安装 :调用官方 dsh plugin --profile add (pnpm add + bundles reconcile 同一路径)。 3. 成功 → 记录当前运行中的会话 → 自动重启 dsh → 重启完成后自动向会话注入「继续」提示词,对话无缝接续。 4. 安装命令失败 → 自动回滚备份 → 记录问题详情 → 重启 dsh → 把问题写入会话,让 agent 分析并解决。 5. 重启后 dsh 起不来 (新插件破坏启动)→ 独立的 detached helper 探测端口,起不来则自动回滚备份并再次重启,随后把回滚结果写入会话。 6. 工具健康验证 (端口能起来 ≠ 一切正常):端口起来后,新进程里的本插件会审计 所有已注册工具的参数 schema (要求顶层 type: 'object' )。像 parameters: {} 空对象、或把原始属性映射直接传给 ctx.tools.register (不经 defineTool 编译)这种写法,注册时不报错,但 dsh 把工具投影给 LLM 时 API 会拒绝—— 每次对话都报 Invalid schema for function 'X' ,完全没法聊 。审计发现这类损坏会自动回滚备份并再次重启,并把问题详情写入会话。 安装 装完重启一次 dsh(bundle 补丁层在启动时加载)。 工具用法(agent / LLM) 更新已安装的插件(含自更新) install plugin 对 任何已安装的包 (不限于本插件自己)都会自动「先卸后装」强制刷新——包括正在开发的本地 file: 插件、版本号未变的情况。日常更新开发中插件: 更新本插件自己(self-upgrade)同理: 执行流程与普通安装一致,多一步「先卸后装」: 1. 检测已安装 : packageNameOf() 解析出包名(file: 读源目录的 package.json,npm 名直接解析),若发现已在 profile 依赖中,会先执行 dsh plugin remove 再 add ——保证从最新源码/包重新安装。pnpm 对 file: 依赖在版本号…

在 GitHub 查看完整 README →
工具/开发deepseek-harnessdshdsh-pluginpluginagent

分类