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

dsh-plugin-governance-gate

v0.1.0

Published

DeepSeek Harness (dsh) approval answerer backed by the agent-governance sidecar — every approval/request is decided by the deny-by-default gate, L0–L4 rules and the organizational audit chain.

Readme

dsh-plugin-governance-gate

A DeepSeek Harness (dsh) approval answerer backed by the agent-governance sidecar: every dsh approval/request is decided by the deny-by-default gate, L0–L4 risk rules and the organizational audit chain — with human approvals happening in the sidecar console instead of (or in addition to) dsh's own UI.

Spike conclusions (spec mcp-governance-gateway, Phase I1)

Verified against the dsh source and docs on 2026-08-18:

  • dsh's user-approval seam exposes a waterfall answerer event'approval/request'(req, next) where a listener claims the request by returning an ApprovalOutcome ('allowed-once' | 'rejected' | 'cancelled' | 'unavailable') or delegates via next(); the chain is fail-closed (missing/throwing answerers resolve 'unavailable', callers deny). Source: packages/interaction/user-approval/src/index.ts in the dsh repo.
  • Plugins ship as npm packages with a dsh.bundle manifest (dsh: { bundle: { patch: "./cordis.patch.yml" } }), an ESM entry exporting name + apply(ctx), installed via dsh plugin add. Source: docs/user/develop/basic/publish.md.
  • Semantic alignment is exact: our gate's allow / blocked / paused maps 1:1 onto allowed-once / rejected / wait-for-human. No degradation to a docs-only recipe was needed.

Known v1 limitation (by dsh design): ApprovalRequest deliberately omits tool arguments (they are linked via callId), so input-matching risk rules see only the call reference, not the rendered arguments.

Install (into a dsh profile)

# 1. run the governance sidecar (one command, zero config):
npx @agent-governance/sidecar          # or the single-container Docker image
# 2. add the answerer to your dsh profile:
dsh plugin add dsh-plugin-governance-gate
# 3. point it at the sidecar (default http://127.0.0.1:7899):
export GOVERNANCE_SIDECAR_URL=http://127.0.0.1:7899

Grant the dsh tool names at the gate (deny by default), e.g.:

SIDECAR_GATE_ALLOWED_TOOLS="bash,read,write" npx @agent-governance/sidecar

Behavior

| Gate verdict | dsh outcome | |---|---| | allow | allowed-once — dsh executes the tool locally | | blocked | rejected — the denial lands on the audit chain | | paused (L2/L3) | waits for the human in the sidecar console; approved → allowed-once, rejected → rejected | | sidecar unreachable / wait timeout | next() — dsh's own answerers stay in charge (still fail-closed); set GOVERNANCE_FAIL_CLOSED=1 to hard-reject instead |

Env knobs: GOVERNANCE_SIDECAR_URL, GOVERNANCE_POLL_MS (default 1000), GOVERNANCE_TIMEOUT_MS (default 600000), GOVERNANCE_FAIL_CLOSED.

Apache-2.0. Parent project: agent-governance.