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

@ferax564/noma-agent-sdk

v0.1.4

Published

Reference agent SDK for the Noma Agent Protocol v1.0 (experimental)

Readme

@ferax564/noma-agent-sdk (experimental)

Status: experimental. API surface may change in any v0.x release. The SDK freezes at v1.0 in lockstep with Annex A+B graduation in the Noma Agent Protocol RFC v1.1.

TypeScript reference SDK for the Noma Agent Protocol v1.0. It drives @ferax564/noma-mcp-server over stdio and adds a workflow layer for safe-patch retry, capability descriptor reading, and transcript replay.

Install

npm install @ferax564/noma-agent-sdk

@ferax564/noma-agent-sdk depends on @ferax564/noma-mcp-server and spawns it as a child process over stdio. Installing the SDK installs the server package too.

Usage

import { NomaTools, NomaWorkflow } from "@ferax564/noma-agent-sdk";

const tools = await NomaTools.spawn();
try {
  const wf = new NomaWorkflow(tools);

  const { allowed, reason } = await wf.checkCapability("./thesis.noma", {
    op: "update_attribute",
    id: "asml-euv-moat",
    key: "confidence",
    value: 0.92,
  });
  if (!allowed) console.warn(`capability advisory: ${reason}`);

  const result = await wf.safePatch("./thesis.noma", {
    op: "update_attribute",
    id: "asml-euv-moat",
    key: "confidence",
    value: 0.92,
  });

  if (!result.ok) {
    console.error(`patch failed: ${result.code} — ${result.error}`);
  }
} finally {
  await tools.close();
}

Errors

Two channels:

  • Throws NomaSystemError (and subclasses NomaSpawnError, NomaTransportError, NomaCapabilityError, NomaTimeoutError) for system faults the caller cannot recover from by reading a body.
  • Returns { ok: false, code, error } for §3.5 patch errors that the server marks as user-recoverable: target_missing, parent_missing, id_conflict, invalid_content, id_attribute_protected, sha_mismatch. Op-list-flow codes (pre_validation_blocked, op_list_aborted) are emitted by patch_block_list (Annex B.8, v1.1+) and not reachable from v0.1 SDK paths.
  • unsupported_op for a book-manifest path is a throw (NomaSystemError), not a returned body — the server flags it as a system error because the path itself is outside the v1.0 patch wire scope.

Lifecycle

NomaWorkflow borrows NomaTools — the caller owns tools.close(). A single NomaTools may back multiple workflows. Same-file concurrent safePatch calls are serialized by a per-file mutex inside each workflow.

Spec

docs/superpowers/specs/2026-05-13-noma-agent-sdk-design.md captures the design decisions, lifecycle contract, and the Annex graduation metrics this SDK was built to feed.