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

@acprotocol/conformance

v2.0.3

Published

Conformance test suite for ACP (Agent Control Protocol) implementations

Downloads

415

Readme

ACP Conformance Test Suite

This directory contains the conformance test suite for the Agent Control Protocol (ACP). Use it to validate that your implementation correctly speaks ACP.

What the Suite Tests

The conformance suite covers three areas:

  • Schema compliance. Every message your implementation sends or receives must conform to the ACP JSON Schema definitions. The suite validates message structure, required fields, type constraints, and format rules (such as ISO 8601 timestamps and UUID session identifiers).

  • Message exchange sequences. ACP defines specific handshake and lifecycle sequences (e.g., config / manifest, session establishment, graceful disconnect). The suite replays these sequences against your implementation and verifies that responses arrive in the correct order with the expected content.

  • Action coverage. Each action type defined in the spec (navigate, set_field, clear, click, show_toast, ask_confirm, open_modal, close_modal) has dedicated test cases that exercise both the happy path and common error conditions. The suite verifies that your implementation handles action requests, emits proper action results, and rejects malformed payloads with appropriate error codes.

Prerequisites

  • Node.js 20 or later
  • npm 10 or later

Installation

npm install

Running the Full Suite

npm test

This runs all conformance tests: schema validation, handshake sequences, action coverage, and session lifecycle.

Running Individual Test Groups

You can run specific subsets of the suite:

# Schema validation only
npm run test:schema

# Handshake and connection lifecycle
npm run test:handshake

# Action request/response coverage
npm run test:actions

# Session management (create, resume, destroy)
npm run test:session

Testing Your Implementation

By default, the suite validates against its built-in fixture data. To test a live ACP implementation, point the contract server at your engine by setting the ACP_TARGET_URL environment variable:

ACP_TARGET_URL=ws://localhost:12900/connect npm test

The suite will open a WebSocket connection to the specified URL, run the full protocol exchange, and report which tests pass or fail.

If your engine requires authentication or custom headers, you can supply them via:

ACP_TARGET_URL=ws://localhost:12900/connect \
ACP_AUTH_TOKEN=your-token-here \
npm test

Fixture Format

Test fixtures live in subdirectories organized by test group:

conformance/
  fixtures/
    schema/          # Individual message samples for schema validation
    handshake/       # Ordered sequences of messages for lifecycle tests
    actions/         # Action-specific request/response pairs
    session/         # Session create, resume, and destroy sequences

Each fixture is a JSON file containing either:

  • A single message object (for schema tests), with a top-level "type" field indicating the message type.
  • An ordered array of message objects (for sequence tests), representing the expected exchange from first message to last.

Fixture files are named descriptively, e.g., 01-handshake.json, 02-fill-actions.json, 03-nav-actions.json, 04-ui-actions.json, 05-modal-actions.json, 06-full-session.json.

What "ACP-Compliant" Means

An implementation is considered ACP-compliant when it passes all schema and conformance tests in this suite without modifications to the test fixtures. Specifically:

  1. Every outbound message conforms to the ACP JSON Schema.
  2. The implementation correctly executes all handshake and session lifecycle sequences.
  3. All defined action types are supported and produce correct results.
  4. Malformed or invalid messages are rejected with the appropriate error codes as defined in the spec.

Partial compliance (e.g., passing schema tests but failing action tests) should be documented clearly if you choose to advertise ACP support.