Skip to main content

ASAP Protocol compliance testing harness

Project description

ASAP Compliance Harness

Protocol compliance testing suite for ASAP (Async Simple Agent Protocol) implementations.

Overview

The Compliance Harness validates that ASAP agents follow the protocol specification. Third parties can use this package to certify their agents are ASAP-compliant, enabling ecosystem interoperability.

Installation

uv add asap-compliance
# or
pip install asap-compliance

Usage

Run compliance tests against an agent:

pytest --asap-agent-url https://your-agent.example.com -m asap_compliance

Or set the agent URL via environment variable:

ASAP_AGENT_URL=https://your-agent.example.com pytest -m asap_compliance

Test Categories

  • handshake (implemented): Agent connection, health/content-type, manifest schema, signature verification, version negotiation
  • schema (implemented): Pydantic model compliance (Envelope, TaskRequest, TaskResponse, McpToolResult, MessageAck, extensions, extra='forbid')
  • state: Task state machine transitions
  • mcp-auth-bridge (v1.3.0+, requires asap-protocol>=2.5.0): Stdio MCP Auth Bridge release gate — JWT paths, grants, constraints, manifest ⊆ registered tools. See MCP Auth Bridge and examples/mcp_auth_bridge/README.md.

Protocol v2.2 and Compliance Harness v2

This package focuses on handshake, schema, state, and SLA validators for third-party certification. Compliance Harness v2 (identity, streaming, errors, versioning, batch, audit checks against the v2.2 spec) ships with the main asap-protocol library — use from asap.testing.compliance import run_compliance_harness_v2 on an ASGI app. See the changelog for v2.2.0 details.

Programmatic Usage

# Handshake validation (against live agent)
from asap_compliance import ComplianceConfig, validate_handshake

config = ComplianceConfig(agent_url="https://your-agent.example.com")
result = validate_handshake(config)
if result.passed:
    print("Agent is compliant")
else:
    for check in result.checks:
        if not check.passed:
            print(f"FAIL: {check.name} - {check.message}")

# Schema validation (static, for envelope/payload dicts)
from asap_compliance import validate_schema

envelope_dict = {"asap_version": "0.1", "sender": "urn:asap:agent:a", ...}
schema_result = validate_schema(envelope_dict)
if schema_result.passed:
    print("Envelope and payload schema valid")

Development

cd asap-compliance
uv sync
uv run pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asap_compliance-1.3.0.tar.gz (81.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asap_compliance-1.3.0-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file asap_compliance-1.3.0.tar.gz.

File metadata

  • Download URL: asap_compliance-1.3.0.tar.gz
  • Upload date:
  • Size: 81.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for asap_compliance-1.3.0.tar.gz
Algorithm Hash digest
SHA256 bbc8a00ba0e5ecbd5e065de27972a46bf465b5ddbf324dc21f868d185c6f8bd7
MD5 da8b2928bded3438c7d00a4ce4283eb4
BLAKE2b-256 7c02821ca213ca125db2596352cf7b3b68cd018d097f64963b51b688dc3b7c59

See more details on using hashes here.

File details

Details for the file asap_compliance-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: asap_compliance-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for asap_compliance-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f8d6167aeb43d651e46adabf5aba082354aafc6013461f6497f51824fb74147
MD5 9e932e6167e1faf817fff8230d08965b
BLAKE2b-256 ad8168e6d152f3475bdbe2d4adb16feeccb9700a28d43925f01eff8cda9e6244

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page