dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
仓库:https://github.com/zdjmrq/dsh-user-plugins-manager · 主题:
dsh-plugin(Oh-My-DSH 生态可检索)
在 DeepSeek Harness(DSH)的 设置 → 插件 里新增一个 “用户插件” 标签页,把三种插件形态统一在一个页面管理:
~/.dsh/plugins 下的 .mjs/.js/.cjs 文件):挂载、停用、启用、卸载;node_modules 里声明 dsh.bundle.patch 的包):显示安装/挂载来源,未挂载的一键按包名挂载进补丁层;所有操作都写入 cordis.patch.yml 补丁层,由 DSH 的 HMR 监听器热生效,无需重启。
A settings tab for DeepSeek Harness that manages user plugin files in
~/.dsh/plugins(mount / disable / enable / unmount), every other plugin in the live Loader tree (disable / enable by id override), and installed npm dsh plugin packages (mount / unmount by package name) — all through thecordis.patch.ymlpatch layer, applied live by DSH's HMR.
~/.dsh/plugins 下的 .mjs/.js/.cjs 插件文件,显示每个文件的挂载状态(已启用 / 已停用 / 未挂载)与补丁条目 id;- insert: 条目(file:/// URL,loader 官方 EntryOptions 形状);disabled: true 行——loader 会跳过被停用的条目并释放其 fiber;/dsh-user-plugins/loader 只读投影,直接读 ctx.loader.entries()(与内置“全部”标签页同源),把部署、插件包、动态挂载的插件也纳入本页:显示条目 id、模块名、有效启停状态与 fiber 阶段;- id: x + disabled: true,官方 patch 形状,即 telemetry 开关同款机制),删除该行即恢复——不修改 node_modules、不破坏插件包,重启后依然生效;/dsh-user-plugins/packages 路由,扫描 profile node_modules 里声明 dsh.bundle.patch 的包,显示包名/版本/依赖来源与挂载来源(bundles 全局 / 补丁层 / 未挂载);- insert: 进补丁层(与文件挂载同机制,HMR 热生效,无需改 dsh.profile.bundles、无需重启);补丁层挂载的包可一键卸载;已在 bundles 里的包提示去运行树组管理启停;~/.dsh/profiles/web/cordis.patch.yml)与 home 级(~/.dsh/cordis.patch.yml)补丁层,操作精确落在条目所在的文件上,其余行(含注释)原样保留;fs 服务,并按“当前会话”解析出的沙箱策略围栏——会话是 danger-full-access 才允许写补丁层,workspace-write 下会被正确拒绝并在页面提示;git+ / file: 直接安装即可,无需任何构建步骤。# 1) 把本插件作为依赖装入 web profile(推荐 git 安装:可随时升级、不依赖本地目录)
cd ~/.dsh/profiles/web
pnpm add "git+https://github.com/zdjmrq/dsh-user-plugins-manager.git"
# 2) 把包名追加进 package.json 的 dsh.profile.bundles 列表末尾:
# "dsh-user-plugins-manager"
也支持本地目录安装:
pnpm add "file:<本仓库路径>"(安装的是当时目录的快照,升级需重新 add)。
重启 DSH 后生效:打开 设置 → 插件 → 用户插件 即可看到管理页面。
my-plugin.mjs)放入 ~/.dsh/plugins/;pnpm add <包> 装进 profile 的包会出现在这里——未挂载的点 挂载(按包名进补丁层,热生效),补丁层挂载的点 卸载,bundles 全局挂载的会提示去运行树组管理;cordis.patch.yml 并热重载,任务栏/会话无需重启。cd ~/.dsh/profiles/web
pnpm remove dsh-user-plugins-manager
pnpm add "git+https://github.com/zdjmrq/dsh-user-plugins-manager.git"
cd ~/.dsh/profiles/web
pnpm remove dsh-user-plugins-manager
# 并从 package.json 的 dsh.profile.bundles 中移除 "dsh-user-plugins-manager"
插件写进 cordis.patch.yml 的条目(挂载行/停用覆盖行)会保留,是否清理由你决定。
ctx.loader.entries());[A-Za-z0-9_-]{1,64} 才能自动写覆盖行(部署行全部满足;个别运行时创建的行会提示手动编辑);~/.dsh/profiles/web/cordis.patch.yml 与 ~/.dsh/cordis.patch.yml,顶层 YAML 数组里 - insert: 条目即为挂载(条目字段:id / name / disabled 等);{ id, disabled: true });webServer 注册 /dsh-user-plugins/* JSON 路由,对补丁文件做行级文本手术(只动目标条目,注释与其他块原样保留),并注入 loader 服务直读 ctx.loader.entries() 提供运行树投影;- insert: 挂载,loader 从 profile 的 node_modules 解析(与 bundles 补丁的 name 字段同机制);包的客户端半经 dsh.client 声明,由内置 modules 插件扫描同一棵宿主树发现;cordis.patch.yml 有 HMR 监听,文件保存后 loader 热重载组合树;settings.plugins.tab(id: "user-plugins",与内置“已配置/全部”标签页并列,零覆盖内置 UI)。src/index.js # 宿主半:JSON 管理路由 + 补丁层读写(经 fs 服务,按会话沙箱策略围栏)
client/client.js # 客户端半:设置页标签与 UI(手写 module-loader bundle)
cordis.patch.yml # bundle 补丁:把宿主半插入组合树
package.json # dsh.bundle.patch + dsh.client 声明
本插件在「文字开源」枢纽仓库 dsh-text-open-source 中配有完整描述(功能 / 技术路线 / 结构 / 关键实现 / 复刻提示词,不依赖代码即可复刻、便于理解与微调):plugins/dsh-user-plugins-manager.md。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。