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

@agentcompose/spec

v0.1.1

Published

The AgentCompose contract: JSON Schemas and normative specification, importable for runtime validation.

Readme

AgentCompose Specification

npm license

The normative contract that every AgentCompose-compliant agent and orchestrator must follow. Language-neutral, schema-first, transport-bound.

Spec version: 0.1.0 · Stability: early (0.x) · License: Apache-2.0

Published as @agentcompose/spec (the JSON Schemas + prose) — npm install @agentcompose/spec.


What this repo is

This repository is the source of truth for the AgentCompose contract. It defines how agents are configured and interacted with — not how an agent is implemented internally.

An AgentCompose agent is a reusable, configurable component: it ships with defaults and declares a typed configuration surface (model/provider, system prompt, tools, resources, limits). The contract standardizes that configuration surface and the interaction surface (goals in, results out); the agent's internals stay private.

It contains:

| Path | Purpose | |------|---------| | spec/ | The normative specification (prose, RFC-style) | | schemas/ | JSON Schemas — the machine-readable source of truth | | openrpc.json | OpenRPC method catalog (machine-readable API) | | examples/ | Valid example payloads, used in conformance tests | | guides/ | Non-normative guidance (e.g. authoring agents) | | VERSIONING.md | Compatibility & evolution policy |

This repo contains no runtime and no SDK. Those live in separate repos — sdk-typescript (the SDK) and engine (the orchestration runtime) — and are generated from or validated against the schemas here.

graph TB
    SCHEMAS[schemas/ — JSON Schema<br/>source of truth] --> SPEC[spec/ — normative prose]
    SCHEMAS -. generates types .-> TS[sdk-typescript]
    SCHEMAS -. validates .-> RT[engine runtime]

Use it from code

The schemas are the source of truth; this package exports them so runtimes can validate against the canonical definitions instead of hand-copied shapes:

import Ajv from "ajv/dist/2020.js";
import addFormats from "ajv-formats";
import { registerSchemas, SCHEMA_BASE } from "@agentcompose/spec";

const ajv = addFormats(new Ajv({ strict: false }));
registerSchemas(ajv); // loads every schema so cross-$refs (e.g. Part) resolve

const validate = ajv.getSchema(`${SCHEMA_BASE}task-submit.json`)!;
validate({ goal: [{ kind: "text", text: "summarize agent interop" }] }); // true

Also exported: schemas (by $id), schemaList, schemaIds, schemaFor(idOrName), and AGENTCOMPOSE_VERSION. The raw JSON is still available under @agentcompose/spec/schemas/*. The TypeScript SDK uses exactly this to validate inbound wire messages.

Core concepts (at a glance)

  • Agent (component) — a reusable, configurable component that solves a class of problems. Receives goals, not instructions. Internals private; configuration surface declared.
  • Agent Descriptor — public metadata, capabilities, and configSchema an agent advertises.
  • Configuration — typed values (with defaults) supplied at instantiation; validated against the agent's configSchema.
  • Configured instance — a component bound to a configuration, against which tasks run.
  • Task — a unit of work submitted to a configured instance toward a goal.
  • Task Lifecycle — the state machine a task moves through.
  • Artifact — a tangible output produced during/after a task.
  • Orchestrator — configures and composes agents into a workflow. A client of the contract, not part of an agent's internals.

The contract surface

Every compliant agent exposes these over the transport binding:

| Surface | Method | Description | |---------|--------|-------------| | Discovery | agent/describe / well-known URL | Advertise metadata, capabilities, configSchema | | Configuration | agent/configure | Supply typed config to instantiate an instance | | Task submission | tasks/submit | Accept a goal, begin work | | Task query | tasks/get | Fetch current task state | | Provide input | tasks/provideInput | Resume a task waiting on input | | Streaming | tasks/subscribe / pushed events | Stream progress, artifacts, result | | Cancellation | tasks/cancel | Request graceful cancellation |

The contract is transport-neutral, with two bindings: HTTP (network, SSE) and stdio (local subprocess, NDJSON). Configuration is normative in spec/configuration.md; the full contract in spec/specification.md.

Versioning

The contract evolves under an explicit version (agentcomposeVersion) and SemVer. Backward-incompatible changes bump the major version. See VERSIONING.md.

Status & stability

Published at 0.1.0 (early 0.x). The shape is intended to be durable, but breaking changes may still occur before 1.0.0. Feedback and proposals welcome via issues and RFC-style PRs against spec/.

License

Licensed under the Apache License 2.0.