npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-english-search

v0.4.5

Published

DSH 原生风格顶部搜索栏插件(查词/词源/问答),固定在会话区域最上方,由 DSH 自身 LLM 驱动,无外部站点依赖

Readme

dsh-english-search

在 DeepSeek Harness(DSH)会话区域最上方提供 vocabtool.com 风格搜索框的插件:查词 / 词源 / 问答三种模式,查词由 DSH 自身的 LLM 服务完成——不访问任何外部站点、不需要数据库、不需要本地后端。

效果截图

安装

dsh plugin --profile web add dsh-english-search

安装后需重启 dsh web 服务生效。

卸载

dsh plugin --profile web remove dsh-english-search

功能

  • 固定在会话区域最上方、独立于消息滚动区的搜索栏,使用 DSH WebUI 原生设计令牌(--dsw-alias-*),与输入框卡片同表面、同描边、同圆角、同阴影:查词/词源/问答文字切换 + 紧凑原生「查询」小胶囊,明暗主题自动跟随,无玻璃拟态、无渐变按钮;搜索栏宽度收窄为 520px(--es-bar-max-width)
  • DSH 0.1.0-rc.6 尚无 conversation.top;插件通过官方 conversation.input.dock 管理生命周期,并用 React Portal 挂到会话根节点顶部
  • 三种模式:查词 / 词源 / 问答(输入框无内置占位提示文案)
  • 快捷前缀:!arena 直接词源、?lie 和 lay 的区别 直接问答
  • 结果面板样式与落地页一致(loading / error / 同款结果卡片 + 关闭按钮),内容渲染 Markdown(加粗 / 列表 / 标题 / 引用 / 行内代码)
  • 查词走 DSH 当前会话默认模型(agentDefaultModel),与对话共用模型配额

架构

浏览器 (Client)                            DSH Host
┌──────────────────────────┐  fetch   ┌──────────────────────────┐
│ input.dock + React Portal │ ───────► │ webServer 路由            │
│ 会话区域顶部搜索栏         │ POST     │ /api/plugins/english-search│
│ React + 手写 bundle      │  ◄────── │  → ctx.llm.stream()       │
└──────────────────────────┘  JSON    │  (当前默认模型, effort=off │
                                      │   失败自动回退无 effort)   │
                                      └──────────────────────────┘
  • Host(lib/index.js):注册 webServer 路由,经 ctx.get('llm') + ctx.get('agentDefaultModel') 调用 DSH 模型;三套系统提示词与 vocabtool.com 后端一致(源自 MIT 项目 kami-mura/vocabtool-web)
  • Client(lib/client.js):手写 CJS bundle(与 tsdown clientBundle 产物同格式:window.__ModuleLoader__.load({ id, factory })),注册在 conversation.input.dock 插槽(id english-search),再通过 React Portal 固定到会话根节点顶部;同源 fetch 调用 Host 路由;样式全部使用 DSH WebUI 设计令牌(--dsw-alias-* / --dsw-specific-input-major / --dsw-shadow-lv2 / --dsw-font-family)并复用 --dsh-composer-* 宽度轴,与输入框卡片视觉一致、明暗主题自动跟随
  • 无外部 HTTP 调用、无 Cookie、无数据库、无本地服务、无构建步骤

安装说明

该包是标准 dsh bundle(dsh.bundle.patch),dsh plugin add 会自动把它加入 profile 的层栈(dsh.profile.bundles),无需手改任何配置文件。

从 GitHub 安装:

dsh plugin --profile web add github:kami-mura/dsh-English-search

依赖 DSH 运行时能力:Host llm / agentDefaultModel / webServer 服务;Client slots 服务与 react 平台模块(DSH 内置)。包名 dsh-english-search(npm 命名规范,全小写)。

安装(动态插件,快速体验)

不安装部署时,也可在任意 DSH 会话中通过 cordis_define 动态运行:

  1. cordis_define:plugin.kind: "new",idPrefix: "vocab"
  2. cordis_run 激活(Client 包首次需批准一次)

动态插件运行环境不提供 react-dom,所以动态版显示在输入框上方;通过 npm/GitHub 安装的原生插件才固定在会话区域最上方。

常见问题

安装后看不到搜索框?

按顺序排查:

  1. 确认版本 ≥ 0.4.2:运行 dsh plugin --profile web list 查看已安装版本。0.4.0 及更早版本使用 conversation.top 插槽,而 DSH 0.1.0-rc.6 不存在该插槽,搜索框不会渲染——这是 0.4.2 修复的兼容问题,请升级:

    dsh plugin --profile web add dsh-english-search@latest
  2. 重启 dsh web 服务:安装/升级插件后需重启服务进程(不是刷新浏览器页面)。按 Ctrl+C 停止当前 dsh web,再重新运行 dsh web。

  3. 如果仍不显示,查看浏览器开发者控制台是否有 english-search 相关报错,并确认服务启动日志中无插件报错。

动态版与原生版显示位置不同?

动态版(cordis_define 方式)运行环境不提供 react-dom,搜索框显示在输入框上方;通过 npm/GitHub 安装的原生插件才固定在会话区域最上方。

文件

| 文件 | 说明 | | --- | --- | | lib/index.js | 原生包 Host 半体(webServer 路由 + LLM 调用) | | lib/client.js | 原生包 Client bundle(手写,vocabtool 同款搜索栏 UI) | | package.json | 包声明(dsh.client.platform: "web") | | plugin.host.js / plugin.client.js | 动态插件快速安装版(同一套逻辑) |

License

MIT