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

@max-null/dsh-habit

v0.2.2

Published

Self-learning habit engine for the DeepSeek Harness — detects user-correction signals, judges habits with a low-cost model on threshold, settles candidates behind a two-level human gate

Readme

@max-null/dsh-habit

本插件属于 @max-null/* 插件系列——这一系列共同构成 SSID(思灵 · Seek Soul in Darkness) 桌面体验。SSID 是整合它们的盒:dsh-capture · dsh-chat-rail · dsh-chinese-thinking · dsh-draft-polish · dsh-guardian · dsh-habit · dsh-memory · dsh-node-appearance · dsh-plugin-center · dsh-quick-toolbar · dsh-skill-mcp-center · dsh-ssid-panels · dsh-ssid-zh-ui · dsh-achievements。

This plugin belongs to the @max-null/* family — a set of plugins that together form the SSID (思灵 · Seek Soul in Darkness) desktop experience.

Self-learning habit engine for the DeepSeek Harness — observes user-correction signals from session events, judges habits with a low-cost model on threshold, and settles candidates behind a two-level human gate. No new agent role: the judgment is an event-driven plugin, immune to context decay.

The loop

① observe   session/event → correction-signal detection (deterministic, zero-token)
② judge     >=3 signals in one session → one flash call (evidence slices + existing habits)
③ settle    candidate zone → user confirms → dsh-memory remember() (suggested)
            → user confirms again → auto → recall injection

截图

本插件是行为提示类:不新增任何按钮、面板或设置项,也不向会话注入任何内容。

行为效果是后台沉淀,全程静默:同一会话内累积到 3 条命中固定纠正短语(如「再检查一下」「重新做」)的短消息后, 插件在回合结束时做一次低成本模型判断;只有判定为「稳定习惯」才落一条候选(状态 pending,存于 $DSH_HOME/storages/habit)。 候选由宿主 UI 读管——SSiD 侧是侧栏的「习惯」面板,确认后写入 dsh-memory(suggested),再由人放行转 auto。 未达阈值、判断失败或消息不匹配时,插件不做任何可见动作,会话里看不到任何痕迹。

按《SSiD 开发手册》§9 截图规范:截图须回答「装完会多出/变成什么」的入口与面板。 本插件无界面元素(no UI surface),故不适用该项要求,改以上述行为效果说明代替。

Compose

- id: habit
  name: '@max-null/dsh-habit'

Requires storage and llm in the host composition (dsh-base ships both). Installs as a bundle: dsh plugin --profile <name> add @max-null/dsh-habit.

Service

  • ctx.habit — the engine:
    • snapshot() → candidates (newest first)
    • confirm(id) / discard(id) → first-level human gate
    • (the second gate is dsh-memory's own suggested→auto confirmation)

Config

| Field | Default | Meaning | |---|---|---| | signalThreshold | 3 | Correction signals before one judgment call | | provider | deepseek-official | Judgment model provider | | model | deepseek-v4-flash | Judgment model (cheap, deterministic) | | storageRoot | $DSH_HOME/storages/habit | JSON storage root |

Design notes

  • Deterministic observation, LLM on demand: correction detection is a fixed phrase list + length cap (task descriptions are not corrections); the LLM only runs when a session accumulates enough signals.
  • Two-level human gate: candidates must be confirmed in the UI AND then pass dsh-memory's own suggested→auto gate. The model can never promote its own habits.
  • Narrow input for quality: the judgment call gets at most 5 evidence texts plus the existing habit list — judgment quality comes from precise context, not volume.

Dependencies

@deepseek-ai/cordis (^4.0.1) plus four kernel packages declared as explicit ranges: @deepseek-ai/dsh-llm and @deepseek-ai/dsh-session as >=0.1.7-rc.2 <0.3.0, @deepseek-ai/dsh-storage and @deepseek-ai/dsh-storage-json as >=0.1.1-rc.1 <0.3.0.

Why a range rather than a caret. A caret's upper bound is the next minor: ^0.1.7-rc.2 expands to >=0.1.7-rc.2 <0.2.0-0, which a kernel one minor ahead fails. An unsatisfied dsh-* peer is not a warning — the plugin is skipped instead of loaded: it never enters the fiber graph and never appears in the did not activate list, so the only symptom is a missing set of features. The explicit range admits both the 0.1 and the 0.2 kernel lines.

The check is app-boot's plugin-compatibility.ts: it walks peerDependencies entries whose name is @deepseek-ai/dsh or starts with @deepseek-ai/dsh-, testing semver.satisfies(runtimeVersion, requirement, { includePrerelease: true }) — which is why @deepseek-ai/cordis and the other non-dsh-* peers sit outside the check. Measured with semver 7.7.4 against runtime 0.2.0-rc.1: ^0.1.7-rc.2 and ^0.1.1-rc.1 are false; >=0.1.7-rc.2 <0.3.0 and >=0.1.1-rc.1 <0.3.0 are true.

Develop

npm install --legacy-peer-deps
npm test
npm run typecheck
npm run build

SSID 系列

本插件是 SSID(思灵 · Seek Soul in Darkness) 全家桶的一员;也可以单独安装到任意 DSH profile——插件自身不依赖其它同系列插件,候选的读管界面由宿主提供(SSiD 侧为 dsh-ssid-panels 的「习惯」面板)。