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

@polydeukes/adapter-git

v0.3.0

Published

Polydeukes adapter for git — up-translates a staged diff into the agent-neutral covenant input IR at commit time. Alpha.

Readme

@polydeukes/adapter-git

English · 한국어

The boundary where git's vocabulary is translated away. A staged diff becomes the agent-neutral covenant input IR at commit time — the same judgment for every hand, AI or human.

Alpha. This is the second adapter, and its existence is itself the proof of IR neutrality: it fills the same per-call fileChange evidence the Claude Code adapter fills — from git blobs instead of virtual applies — and the core consumed both without a single changed line.

What lives here

  • Staged-change collectioncollectStagedChanges(repoRoot) reads the staging area with --no-renames forced on, so a rename is judged as a deletion plus an addition (a git mv of a protected file must not slip through as one opaque rename entry). pre comes from the HEAD blob and post from the STAGED blob — never the worktree, which may have diverged after git add. A binary blob (NUL heuristic) yields null content instead of lossily decoded bytes, and the unborn first commit narrows to all-added instead of throwing.
  • Pure translationcovenantInputFromStagedChanges(changes) folds the collected changes into one CovenantInput: one tool call per change under the adapter-owned names staged-write/staged-delete, each carrying its own discriminated-union evidence (fileChange: create/modify/delete — deletion is first-class, its optional pre baseline dropping only for a binary HEAD blob), and honestly empty session collections — the commit surface has no session, and keys are never fabricated.
  • The adapter's own vocabularyresolveGitAdapterSettings(namespace) validates this adapter's config namespace (adapters.git): enforce: block | advise, the commit surface's enforcement level, and protectedPaths, the commit surface's additive protection scope — entries judged at commit time on top of the common list, which the session surface never reads (as the level is the observer's, so is the scope). The core validates only the container shape (one settings object per adapter) and passes contents through verbatim, so the vocabulary, its validator, and its defaults live here — absence fills block and an empty list, unknown keys and values fail fast with the full field path.
  • Nothing else, on purpose — this is a pure library. It knows the staged-diff payload format and nothing about installation, hook runners, or valves. The umbrella's pdks covenant check assembles it into the pre-commit surface; wiring it into a hook runner is a deployment act that lives outside this module.

See the project repository for the architecture blueprint and design rationale.

License

MIT