Skip to main content

Conformance testing CLI for the ARP Standard (v1).

Project description

ARP Conformance Toolkit arp-conformance

arp-conformance is the official conformance checker for ARP Standard (v1) HTTP services in the node-centric stack:

  • Run Gateway
  • Run Coordinator
  • Atomic Executor
  • Composite Executor
  • Node Registry
  • Selection
  • PDP (optional component)

It runs black-box HTTP checks against a base URL and validates:

  • Required routes exist and are reachable
  • Success + error responses match the ARP envelopes (including ErrorEnvelope)
  • Response bodies validate against the normative JSON Schemas embedded in this package

What it does not validate:

  • Planner/model quality
  • Performance, scalability, or security posture
  • Internal implementation details (wire-level only)

This package is SDK-independent: it does not depend on generated SDK packages like arp-standard-model, arp-standard-client, or arp-standard-server.

[!IMPORTANT] Version pinning

This toolkit embeds a spec snapshot. Pin arp-conformance==X.Y.Z to validate services built against the same ARP spec / SDK version X.Y.Z.

View the embedded snapshot:

  • arp-conformance --version
  • python -c "import arp_conformance; print(arp_conformance.SPEC_REF)"

Install

python3 -m pip install arp-conformance

Quick start

Smoke test

Safest level of testing (GET-only).

arp-conformance check run-gateway --url http://localhost:8080 --tier smoke

Surface conformance

Validates required endpoints and envelope schemas without creating resources.

arp-conformance check run-gateway --url http://localhost:8080 --tier surface
arp-conformance check run-coordinator --url http://localhost:8081 --tier surface
arp-conformance check node-registry --url http://localhost:8082 --tier surface

Run conformance on multiple services

arp-conformance check all \
  --run-gateway-url http://localhost:8080 \
  --run-coordinator-url http://localhost:8081 \
  --node-registry-url http://localhost:8082 \
  --tier surface

Tiers at a glance

Tier What it tests Creates state? Safe for prod? Typical use
smoke Service is reachable + speaking ARP (/v1/health, /v1/version) No Yes Fast local sanity check; PR gating
surface Required routes exist + success/error envelopes are schema-valid No Usually Early implementation; contract regression
core Placeholder for end-to-end success-paths (see note below) No Yes Future staged validation
deep Placeholder for optional endpoints + richer behaviors No Yes Future pre-release validation

[!NOTE] For node-centric v1, core and deep are not yet defined. The toolkit reports SKIP for these tiers until the spec defines portable end-to-end flows. Use smoke and surface for now.

Output and reports

Example output (text)

service=run-gateway tier=surface spec=spec/v1@v0.3.4
counts={'PASS': 5, 'FAIL': 0, 'WARN': 0, 'SKIP': 0} ok=True
- PASS smoke.health: OK
- PASS smoke.version: OK

Export JSON / JUnit

arp-conformance check run-gateway --url http://localhost:8080 --tier surface --format json --out arp-conformance.json
arp-conformance check run-gateway --url http://localhost:8080 --tier surface --format junit --out arp-conformance.xml

CI gating

  • By default, the CLI exits non-zero when there is at least one FAIL.
  • Use --strict to also fail on WARN and SKIP.

Compatibility / pinning

Rule of thumb: pin arp-conformance==X.Y.Z to validate services targeting the ARP spec / SDK release X.Y.Z.

pipx install "arp-conformance==0.3.4"
arp-conformance --version
python -c "import arp_conformance; print(arp_conformance.SPEC_REF)"

Authentication and headers

If your service requires auth, pass headers:

arp-conformance check run-gateway \
  --url https://example.com \
  --tier surface \
  --headers "Authorization=Bearer ..."

For CI, prefer a headers file:

cat > headers.env <<'EOT'
Authorization=Bearer ...
EOT

arp-conformance check run-gateway --url https://example.com --tier surface --headers-file headers.env

CI recipes (GitHub Actions)

This repo provides a composite action that installs arp-conformance from PyPI and runs it:

  • AgentRuntimeProtocol/ARP_Standard/.github/actions/arp-conformance

By default, when you reference the action as .../arp-conformance@vX.Y.Z, it installs arp-conformance==X.Y.Z.

Surface gate on PR (no resource creation)

name: arp-conformance
on: [pull_request]
jobs:
  surface:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # Start your service under test (docker compose, process, etc) before running conformance.
      - uses: AgentRuntimeProtocol/ARP_Standard/.github/actions/arp-conformance@v0.3.4
        with:
          service: run-gateway
          url: http://localhost:8080
          tier: surface
          report_format: json
          report_path: arp-conformance.json

Commands at a glance

  • arp-conformance check run-gateway --url <base-url> [flags]
  • arp-conformance check run-coordinator --url <base-url> [flags]
  • arp-conformance check atomic-executor --url <base-url> [flags]
  • arp-conformance check composite-executor --url <base-url> [flags]
  • arp-conformance check node-registry --url <base-url> [flags]
  • arp-conformance check selection --url <base-url> [flags]
  • arp-conformance check pdp --url <base-url> [flags]
  • arp-conformance check all --run-gateway-url ... --run-coordinator-url ... [flags]

Flags (common)

  • --tier smoke|surface|core|deep
  • --headers KEY=VALUE (repeatable)
  • --headers-file path
  • --timeout <seconds>
  • --retries <n>
  • --strict
  • --format text|json|junit
  • --out <path>
  • --spec v1
  • --spec-path <path>

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

arp_conformance-0.3.4.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

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

arp_conformance-0.3.4-py3-none-any.whl (80.9 kB view details)

Uploaded Python 3

File details

Details for the file arp_conformance-0.3.4.tar.gz.

File metadata

  • Download URL: arp_conformance-0.3.4.tar.gz
  • Upload date:
  • Size: 33.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arp_conformance-0.3.4.tar.gz
Algorithm Hash digest
SHA256 5012b2342822284a60b6bcec1a492486c0ed4a797d99a23f4a162ea3a0c5b871
MD5 a8037401b52485e739dcdea7758be1cb
BLAKE2b-256 ef7ba59b204db2856b8be766ab626226846429443d91667e651516f8d64a1d25

See more details on using hashes here.

Provenance

The following attestation bundles were made for arp_conformance-0.3.4.tar.gz:

Publisher: release.yml on AgentRuntimeProtocol/ARP_Standard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arp_conformance-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for arp_conformance-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f50b2bb66ffb327c181cbdd8541189e3e7c685ac2dd2887b54ef8d682ffb28f5
MD5 9463cc79376031843ab49e1ded25b074
BLAKE2b-256 252ef45df33497b3b44703b92cc5672875addf8a091fa2c61375ce1ed762eefc

See more details on using hashes here.

Provenance

The following attestation bundles were made for arp_conformance-0.3.4-py3-none-any.whl:

Publisher: release.yml on AgentRuntimeProtocol/ARP_Standard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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