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

@agenteer/stdlib

v1.0.0-rc.2

Published

Agenteer standard library — 18 hardened, publishable nodes (primitives, validators, meta, humans, planner, context).

Downloads

237

Readme

@agenteer/stdlib

The 18 standard-library nodes for Agenteer. Each node ships with a hardened schema, explicit capability requirements, and a factory the runtime can register directly.

Install

npm install @agenteer/stdlib @agenteer/core @agenteer/trust zod

Requires Node ≥ 20.

The nodes

Primitives (5):

| id | purpose | |---|---| | @agenteer/node-file-read | Read files with fs.read capability gating. | | @agenteer/node-file-write | Write files with fs.write capability gating + staleness emission. | | @agenteer/node-shell-exec | Run shell commands with shell capability gating + exit-code verdict. | | @agenteer/node-llm-call | Structured LLM call with retry. Needs a ModelProvider. | | @agenteer/node-tool-call | Dispatch to registered tools (e.g. web_search, gh). Needs a ToolRegistry. |

Validators (5):

| id | purpose | |---|---| | @agenteer/node-json-schema-validate | Validate arbitrary JSON against a JSON Schema via ajv. | | @agenteer/node-regex-check | must_match / must_not_match rule list over a string. | | @agenteer/node-compile | Pluggable compile adapter (tsc, swc, etc.). Emits compile evidence. | | @agenteer/node-test-run | Pluggable test adapter (vitest, jest). Emits test evidence. | | @agenteer/node-typecheck | Standalone typecheck via adapter; emits typecheck evidence. |

Meta (4):

| id | purpose | |---|---| | @agenteer/node-parallel-fanout | Spawn N children with the same manifest, different inputs; join modes all / any / race. | | @agenteer/node-cross-check | Run two providers against the same input; emits an agreement evidence record. | | @agenteer/node-judge-with-stripped-ctx | Grade a ctx artifact against a rubric using only the artifact itself (no lineage leak). | | @agenteer/node-repair-loop | Bounded iterative repair over a failing evidence record. |

Humans (2):

| id | purpose | |---|---| | @agenteer/node-approval-gate | Suspends the runtime until a human approves or denies. | | @agenteer/node-ask-user | Suspends the runtime to ask the user a free-form question. |

Planner (1):

| id | purpose | |---|---| | @agenteer/node-default-planner | Composes a plan-as-data from available_manifests. Does not conceptualize new node types. |

Context (1):

| id | purpose | |---|---| | @agenteer/node-context-curator | Query/condense ctx artifacts. v1.0 ships query-mode only. |

Quickstart

import { InMemoryNodeRegistry } from "@agenteer/core";
import { registerStdlib } from "@agenteer/stdlib";

const registry = new InMemoryNodeRegistry();
registerStdlib(registry);
// registry now has 14 nodes registered (self-contained ones).

Nodes with external wiring (provider, tool registry, resolver) are exported as factories so you can wire them yourself:

import {
  approvalGateFactory, approvalGateManifest,
  askUserFactory, askUserManifest,
  llmCallFactory, llmCallManifest,
  crossCheckFactory, crossCheckManifest,
} from "@agenteer/stdlib";

registry.register(approvalGateManifest, approvalGateFactory(myApprovalResolver));
registry.register(askUserManifest, askUserFactory({ resolver: myAskResolver }));
registry.register(llmCallManifest, llmCallFactory());              // runtime injects the provider
registry.register(crossCheckManifest, crossCheckFactory(myProviderResolver));

default_planner — what it does and doesn't

The planner composes a plan by selecting from the manifests you pass via available_manifests. Its output is a plan-as-data artifact: an ordered list of {manifest_id, input, depends_on} steps drawn from the candidates you supplied.

It does not conceptualize new node types. Plans can't refer to manifests that weren't in available_manifests. If you want new capabilities in a workflow, install more nodes (agenteer install @acme/node-foo) or register a custom node via extraRegistrations.

License

MIT — see LICENSE.