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

@vinelink-lab/dsh-vera

v0.1.2

Published

dsh plugin bundle (Vera), maintained by VineLink

Readme

dsh-Vera

由 VineLink 维护、面向 dsh(deepseek harness)的插件组合包(bundle)。以 Apache-2.0 协议开源,见 LICENSE。

这是什么

@vinelink-lab/dsh-vera 是一个 Cordis 插件,按 dsh 的组合包(bundle)规范打包:package.json 的 dsh.bundle 字段声明了 cordis.patch.yml,供 dsh plugin add 安装进某个 profile 时应用。

  • src/index.ts — 插件入口,导出 name / Config / apply。
  • cordis.patch.yml — 安装该组合包时应用的配置层。
  • tests/ — Vitest 测试。

开发

pnpm install
pnpm run check   # typecheck + lint + test + build

单独运行:

pnpm run typecheck
pnpm run lint
pnpm run test
pnpm run build     # 输出到 lib/
pnpm run dev        # watch 模式构建

本地联调

pnpm run dev:harness

scripts/dev.sh 自动完成手动联调的几步:先 pnpm run build 一次(供 lib/client.js 让 client slot 注入能解析到),生成一个 --patch overlay——禁用目标 profile 里可能已真实安装的 vera 行(若该 profile 从没装过这个组合包,禁用一个不存在的行只是 stderr 上的一条警告,不影响启动),并以新 id vera-local 插入一行指向本仓库 src/index.ts(服务端改动改完重启 dsh 即生效,无需重新构建;loader patch 不允许在同一 id 下把行的 name 改指到别处,两行同 id 插入也会报 duplicate loader entry id,所以联调行必须走一个新 id,并把真实那行禁用掉),再在后台跑 tsdown --watch(client 端改动经 dsh 现有 HMR 推到浏览器,无需重启),最后从 harness checkout 执行 pnpm dsh web --patch <overlay>。

默认 harness checkout 路径是 ~/work/ai/deepseek-harness,可用 DSH_HARNESS_DIR 覆盖;该 checkout 需已执行过 pnpm run build(apps/cli/lib/bin.js 存在)。DSH_PROFILE 可覆盖目标 profile(默认 web)。脚本之后的参数原样转发给 dsh web,例如:

pnpm run dev:harness -- --no-open --port 4000

/api/* 请求报 403(如「新建会话失败:… transport failure for /api/session/create: HTTP 403」) 这不是 Vera 的问题,是 dsh 的浏览器信任围栏(DNS-rebinding 防护)在拒绝:凡 Host 头不是回环地址(localhost/127.x/[::1])且不在 trustedHosts(回环 + 派生 LAN IP + --trusted-host)里的 /api/* 请求一律返回 403。用域名反代或 LAN IP 打开 UI 都会触发;Vera 自己的 /api/vera/* 走 exact 路由、不过围栏,所以登录正常而建会话失败,容易误判。绕开它用回环 URL 即可;要固定用某个域名/IP,启动时加 dsh web --trusted-host <host[:port]>(可重复),或在 profile 的 cordis.patch.yml 里配 web-app 的 trustedHosts。DevTools 看响应体可区分:forbidden 即本围栏,unauthorized 则是浏览器会话 cookie 缺失(用带 ?token= 的 URL 重开)。

也可以手写 overlay 自己联调,等价于脚本做的事(若这个 profile 从未装过 vera,第一行可以省略):

- id: vera
  disabled: true
- insert:
    - id: vera-local
      name: '/absolute/path/to/dsh-Vera/src/index.ts'
pnpm dsh web --patch /path/to/overlay.yml

安装进 profile

已发布到 npm 后,可直接按包名安装:

dsh plugin --profile <profile-name> add @vinelink-lab/dsh-vera

本地 checkout(未发布或联调场景):

dsh plugin --profile <profile-name> add /path/to/dsh-Vera

CI/CD

  • .github/workflows/ci.yml:push 到 main 和每个 PR 上运行质量门禁——lint、typecheck、test、build(Node 22.19 / 24 双跑)。
  • .github/workflows/release.yml:在 GitHub Release 被 publish 时,用当时 package.json 里的版本号发布到 npmjs.com(npm publish --provenance)。走 npm Trusted Publishing(OIDC),不依赖任何长期 token。发布流程:先在 main 上把 package.json 的 version 提到目标版本并合并,再打对应 tag、创建 GitHub Release,workflow 会自动发布。
    • 首次发布例外:npm 没有"预注册" trusted publisher 的机制,全新包名必须先手动发布一次才能在其设置页里绑定这个仓库和 workflow:本地 npm login(走 2 小时会话认证,不落地任何 token)→ pnpm run build → npm publish --access public。发布成功后去 npmjs.com 该包的 Settings → Trusted Publisher,绑定 org VineLink-Lab、repo dsh-Vera、workflow 文件名 release.yml。之后的版本都由 workflow 自动发布,不需要配置 NPM_TOKEN secret。

参考

  • dsh 插件开发教程:docs/user/develop/basic(deepseek-harness 仓库)
  • 打包与安装:docs/user/develop/basic/publish.zh.md