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
📌 本插件已收录于 dshfind 插件超市,点击上方徽章直达主页。
小鲸鱼不听话?抽就完了。
一根悬挂在 DSH 聊天流中的辫子(皮鞭)。抓住辫梢甩动——速度足够快时,向 agent 发送一条 go work! 消息,鞭策它去干活。
position: fixed 的 SVG 叠层,锚定在视口右上角,垂入聊天区域。pointer-events: none 的叠层上设为 pointer-events: auto)。inputActions.setDraft('go work!')inputActions.submit()plain)恢复原草稿。单 bundle 双入口(host . + 浏览器 ./client + invariant ./invariant),仿照 yet-another-subagent。
src/index.ts):空 apply——纯客户端插件。src/client/index.ts):注册 conversation.composer.dock list slot(id dsh-spur,order 50)。dock 是编辑器卡片下方的条带;辫子本身是 position: fixed 的 SVG 叠层,通过 createPortal 挂载到 document.body。src/client/physics.ts):Verlet 积分绳索 + 距离约束。与 React 组件分离,便于单元测试。conversation.composer.dock(list,session 作用域)——编辑器卡片下方的条带,由 ui-conversation 拥有。session 作用域意味着辫子仅在 session 活跃时渲染(hero 模式自然隐藏)。dock 条目从框架接收 InputZone(owner)+ SessionStandardProps(useInput、inputActions)。
插件使用 session 的输入机来发送消息——与 InputBar 相同的路径:
inputActions.setDraft('go work!')
inputActions.submit()
覆盖前先保存当前草稿,提交事务完成后恢复,确保用户的在途文本不被破坏。
pnpm install # 安装开发依赖
pnpm run typecheck # tsc --noEmit(通过 ../dsh 解析 DSH 源码)
pnpm test # vitest run(物理引擎单元测试)
pnpm run build # tsc + tsdown → lib/index.js, lib/invariant.js, lib/client.js
tsconfig.json 继承 ../dsh/tsconfig.base.client.json,继承其 paths 映射到同级 DSH checkout 的 packages/*/*/src。需在 ../dsh 是 DSH checkout 根目录的同级布局下运行 typecheck。
lib/ 随仓库提交(与 dsh-web-ui-notify / dsh-activity-plugin 相同模式),git 安装时无需 prepare 脚本。开发时改动源码后跑 pnpm run build(或 pnpm run bundle:client)重建 lib/,再提交。
# 从 npm 安装(推荐):
dsh plugin --profile web add @huanlin/dsh-plugin-spur
无配置。session 活跃时辫子始终存在。
Config 字段可按部署调优。plugin-development-guide.mdDSH-Native-UI.mdCLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。