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
为 dsh web GUI 的模型选择器提供增强面板:左侧提供商栏 + 右侧模型列表,两侧独立滚动,支持跨提供商搜索——替代默认的单列长滚动分组列表。
An enhanced model picker for the dsh web GUI: a left provider column with the model list on the right, both independently scrollable, plus a cross-provider search box — replacing the default single-column grouped list.
/model 弹层共享同一份模型目录(ctx.modelDirectories),任何一处切换另一处立即同步;composer 的模型阻塞逻辑不受影响A left column lists providers (independently scrollable, with model-count badges); the right column shows the active provider's models (independently scrollable). The search box matches across providers (provider name / model name / description, case-insensitive). Reasoning-effort switching, loading/error/retry/empty states are preserved, and the panel shares the same per-session model directory as the built-in /model popup. Dark/light theme aware; UI text follows the system language.
方式一:从 npm registry 安装(推荐,无 git 克隆 / prepare 脚本步骤):
dsh plugin --profile web add dsh-model-picker
方式二:从 GitHub 源码安装:
dsh plugin --profile web add github:Sanqi-normal/dsh-model-picker
安装后重启 web 服务生效:
pnpm dsh web
GitHub 源安装会执行包内 prepare 脚本,如被 pnpm 拦截,把提示的包名加入 profile 的 pnpm-workspace.yaml 的 allowBuilds 后重试。
重启后打开任意会话,点击 composer 工具行右端的模型选择器(发送按钮左侧):
After the web server restarts, open any session and click the model selector at the right end of the composer tool row:
持久化 bundle(package.json 的 dsh.bundle.patch → cordis.patch.yml),由 dsh plugin add 的 reconcile 自动加入 profile 的 dsh.profile.bundles 层:
lib/client.js):通过 exports["./client"] + dsh.client 声明被 web 前端加载,注册到 composer 的 conversation.input.model 座位(priority -1,顶替默认实现);数据复用内置 ui-model-selection 的 ctx.modelDirectories 每会话目录(session.models / session.selectModel),不引入第二份状态lib/host.js):空实现——Node 侧 loader 以包根入口导入它(浏览器专属的 lib/client.js 必须只在 ./client 导出下被 web 端加载),无网络请求、无持久化状态@deepseek-ai/dsh-client-ui-model-selection(web-app 内置,通常已存在);缺失时选择器座位保持空置(回退安全)/model 弹层保持原样,但与面板共享同一份当前选择MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。