dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
dsh "Open In..."控件底座,提供一个开放的可由同类插件补充的插槽以解决原生"Open In..."缺少在某些软件中打开
DeepSeek Harness(DSH)第三方插件:在会话(Session)头部工具栏提供一个 "Open In..." 按钮组底座。
DSH 原生 "Open In..." 按钮内置的软件清单是编译期固定的,客户端还有一层白名单过滤,第三方软件无法接入,官方也没有开放应用级扩展点。本插件不 fork 宿主、不修改宿主配置:它在同一位置提供一个自己的按钮组,并把「用哪个软件打开」开放成一个注册契约——同类插件注册自己的目标软件,即会出现在菜单里,且外观与原生按钮一致。
id / label / route(可选 icon / order)即可加入菜单,无需接触本插件源码。# web profile(命令行)
dsh plugin --profile web add dsh-open-in-app-base
# Desktop 在应用内 Plugins 页安装
dsh-open-in-app-base
本插件是「Open In...」下游插件的共同依赖:下游插件只提供目标软件与打开逻辑,按钮与菜单由本插件渲染——只装下游插件时功能不会出现,两者需一并安装。下游插件的安装说明里也应显式写明这一点(见《开发指南》)。
按钮出现在会话头部工具栏(原生 "Open In..." 的右侧):
想写一个指向某软件的 Open In 下游插件?注册契约、客户端半边与宿主半边的最小实现、四条硬要求、下游安装说明模板与常见坑,见 DEVELOPMENT.md。本仓库的构建与自测同样在该文件。
插件分两半:宿主半边让插件出现在宿主加载层里,并提供一个宿主侧服务 openInAppState——在会话之外托管跨 profile 共享的设置存储,供下游插件保存自定义安装路径这类值;浏览器半边在会话头部槽位注册按钮组,并以 cordis 服务 openInAppTargets 暴露注册表。按钮组挂载后并发探测各已注册目标的可用性,据此决定是否渲染以及是否显示下拉菜单;点击后向目标自己的路由发起请求,由目标插件完成「用什么命令、在什么平台、怎么探测安装」这些具体实现。
图标来自 lucide(ISC 许可),源文件位于 assets/,构建时以路径数据内联进浏览器产物。