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

@hy-sde-org/dsh-tool-memory

v0.2.0-rc.2

Published

Model-facing long-horizon memory tools (retain, recall, reflect, memory_edit, learn) over the ctx.memory service, plus first-turn project-memory prompt injection — a standalone plugin for DeepSeek Harness with no upstream harness changes required.

Readme

@hy-sde-org/dsh-tool-memory

The model-facing memory surface for DeepSeek Harness — the six tools retain, recall, reflect, memory_edit, learn, and mine_sessions over the host ctx.memory service, plus a memory:project system-prompt section that reloads the session's project memory at the start of every session. Ported from the @oh-my-pi coding-agent memory surface; storage lives in @hy-sde-org/dsh-memory.

This package is agent-plane: it mounts as a preset row and resolves the host memory service, registering no service of its own. It installs as a standalone plugin for stock DeepSeek Harness (dsh-v0.1.2-rc.1 and later) — see @hy-sde-org/dsh-memory for the install recipe and the preset example.

The six tools

  • retain — store one or more durable facts (user preferences, project decisions, architectural choices) for future sessions. Batch related facts; entries are self-contained, normalized, and deduplicated.
  • recall — relevance-ranked search over bank + lessons + summary. Returns ids that round-trip through memory_edit. Use proactively before questions about past decisions or preferences. When a host sessionQuery service is mounted, past-session hits merge in as a session source tier.
  • reflect — synthesize an answer across many stored memories (blends, unlike recall). Grounding is memory-only; verify repository facts.
  • memory_edit — update (replace content/importance), forget (hard delete), invalidate (soft supersede, optional replacement_id). Lesson and summary entries are read-only facts.
  • learn — capture one durable lesson (what/when/why) into learned.md; write-path neutralization strips prompt-injection markers and secrets.
  • mine_sessions — harvest reusable lessons from your own past sessions (digests from compaction summaries, failures from turn/end error reasons, all-completed todos), stored as learn entries with session provenance and deduped. Needs a host sessionQuery service; without one it reports unavailable rather than erroring — this standalone ships the bridge (session-history.ts, ctx.get('sessionQuery') duck-typed) but no session backend.

Prompt injection

apply() registers systemPrompt.section({ name: 'memory:project', order: 150 }) whose text is evaluated at each assembly and returns the calling session's project memory — memory_summary.md + learned.md, combined and head-tail truncated to injectionMaxChars (default 16000 chars) — or '' for a project with no memory yet. The session identity comes from context.agent.session.header.cwd, so each project sees its own bank and a fresh process picks it up on the very first turn.

Config (the tool-memory row)

| Key | Default | Meaning | |---|---|---| | root | <harness home>/memories | Must match the ctx.memory row's root. | | injectionMaxChars | 16000 | Combined char budget for the injected summary + lessons. | | enabled | true | Set false to disable prompt injection while keeping the tools. |

Tests

pnpm -r --filter @hy-sde-org/dsh-tool-memory test