dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
dsh-listen-npm is an npm package monitor plugin for DeepSeek Harness (DSH). Query any npm package's full info — with daily install counts highlighted — and watch your own packages for version / download changes.
api.npmjs.org/downloads/range API)dsh_npm_info, dsh_npm_downloads, dsh_npm_watchA resident npm Monitor button sits in the sidebar footer (right above the settings area) with a capsule for the watch count. The modal has three tabs: Query (search + full detail), Watch, History.
rgba(0,0,0,.32) scrim
with blur(12px) saturate(1.2), a color-mix(bg-layer-1 78%) glass panel with a
border-l2 hairline and 14px radius, border-l1 dividers, solid
button-primary-fill primary buttons, a semi-transparent button-primary-fill 18%
capsule (plus a 30% outline) for the active tab — whitish in dark theme, and unchanged
on hover once selected — bg-base inputs and search
popover, bg-layer-2 cards, and state-* tokens for status colours.refreshMinutes (host config, default 10) it refreshes the whole watch list
with 1 lightweight dist-tags request + 1 range/last-week request per
package (latest-day / 7-day totals and the mini chart's daily series are both
derived from it); a new version is recorded into the snapshots / History
timeline with no in-UI notification$DSH_HOME/dsh-listen-npm.json (atomic writes, .bak on corruption)/dsh-listen-npm/api
(trust-fenced POST JSON), so polling never produces command nodes in the
conversation; falls back to the command channel on older hostsdsh_npm_info / dsh_npm_downloads / dsh_npm_watch
(list / add / remove / refresh)registryUrl: https://registry.npmjs.org # swap for a mirror, e.g. https://registry.npmmirror.com
downloadsUrl: https://api.npmjs.org/downloads
refreshMinutes: 10 # watch list auto refresh interval
api.npmjs.org/downloads/range; npm aggregates
downloads per day with a T+N delay (3-4 days in practice), so the last day
with data is not necessarily yesterday.pending (drawn as grey dashed bars, capped at 14 days), so the date axis
never stops a few days short. Padded days exist only to keep the calendar
continuous.@scope/name) are supported everywhere; the registry path
URL-encodes the slash while the downloads API uses it raw.├── src/host/*.ts # host half: index.ts (entry), npm.ts (curl core), ops.ts (op dispatch), store.ts, fence.ts, types.ts
├── src/shared/*.ts # pure logic shared by both halves (daily.ts: calendar padding)
├── src/client/*.tsx # browser half (React TSX): plugin.tsx, i18n, styles, rpc, store, poller, components/*
├── lib/index.js # host half build artifact (tsdown, ESM), committed for git installs
├── lib/client.js # browser half build artifact (tsdown → __ModuleLoader__ factory), committed
├── lib/types/ # type declarations (tsc -b)
├── scripts/ # verify-client.mjs (host seed-table simulation)
├── tsdown.config.ts # tsdown config (node half + client bundle banner wrap)
├── tsconfig.json # solution: tsconfig.host.json / tsconfig.client.json
├── cordis.patch.yml # bundle patch (plugin row by package name)
├── package.json # dsh.bundle + dsh.client(web) manifest + peerDependencies
├── README.md # this file
└── README.zh.md # Chinese docs
# local development
dsh plugin --profile web add ./dsh-listen-npm
# published: npm / tarball / GitHub
dsh plugin --profile web add dsh-listen-npm
dsh plugin --profile web add ./dsh-listen-npm-0.1.0.tgz
dsh plugin --profile web add github:you/dsh-listen-npm#<sha>
dsh --profile web --dump-config # verify the config layer
dsh --profile web # start (host half needs a restart)
Local dev dependencies: the host loads
lib/index.jswith native Node ESM resolution for@deepseek-ai/schemastery,@deepseek-ai/dsh-tools,@deepseek-ai/dsh-settings, so the plugin dir must contain a resolvablenode_modules(gitignored). Either runpnpm installhere, or link the host's flattened packages:New-Item -ItemType Directory "$PWD\node_modules\@deepseek-ai" -Force foreach ($p in 'schemastery','dsh-tools','dsh-settings') { New-Item -ItemType Junction "$PWD\node_modules\@deepseek-ai\$p" -Target "$env:DSH_HOME\profiles\node_modules\@deepseek-ai\$p" }
pnpm install
npm run check # tsc -b (both programs)
npm run build # tsc -b && tsdown (lib/index.js + lib/client.js)
npm run verify # simulate the host loading lib/client.js
MIT