From 4c9986e4567c9e5445db8420c0c166aff724ad86 Mon Sep 17 00:00:00 2001 From: Greg Soucy Date: Thu, 19 Mar 2026 02:45:29 -0400 Subject: [PATCH] Tighten v1.1.0 authority and validation surfaces --- .gitignore | 3 - .well-known/agent-cards-v1.1.0.json | 5 +- .well-known/agent.json | 10 +- README.md | 165 ++---- RESOLUTION.md | 38 +- SECURITY_PROVENANCE.md | 24 +- .../v1.0.0/commercial/authorizeagent.eth.json | 38 +- .../v1.0.0/commercial/checkoutagent.eth.json | 38 +- .../v1.0.0/commercial/purchaseagent.eth.json | 37 +- agents/v1.0.0/commercial/shipagent.eth.json | 38 +- agents/v1.0.0/commercial/verifyagent.eth.json | 19 +- agents/v1.0.0/commons/analyzeagent.eth.json | 4 +- agents/v1.0.0/commons/classifyagent.eth.json | 4 +- agents/v1.0.0/commons/cleanagent.eth.json | 4 +- agents/v1.0.0/commons/convertagent.eth.json | 4 +- agents/v1.0.0/commons/describeagent.eth.json | 4 +- agents/v1.0.0/commons/explainagent.eth.json | 4 +- agents/v1.0.0/commons/fetchagent.eth.json | 4 +- agents/v1.0.0/commons/formatagent.eth.json | 4 +- agents/v1.0.0/commons/parseagent.eth.json | 4 +- agents/v1.0.0/commons/summarizeagent.eth.json | 4 +- .../v1.1.0/commercial/authorizeagent.eth.json | 34 -- .../v1.1.0/commercial/checkoutagent.eth.json | 34 -- .../v1.1.0/commercial/purchaseagent.eth.json | 34 -- agents/v1.1.0/commercial/shipagent.eth.json | 34 -- agents/v1.1.0/commercial/verifyagent.eth.json | 34 -- agents/v1.1.0/commons/analyzeagent.eth.json | 36 -- agents/v1.1.0/commons/classifyagent.eth.json | 36 -- agents/v1.1.0/commons/cleanagent.eth.json | 38 -- agents/v1.1.0/commons/convertagent.eth.json | 38 -- agents/v1.1.0/commons/describeagent.eth.json | 37 -- agents/v1.1.0/commons/explainagent.eth.json | 37 -- agents/v1.1.0/commons/fetchagent.eth.json | 36 -- agents/v1.1.0/commons/formatagent.eth.json | 38 -- agents/v1.1.0/commons/parseagent.eth.json | 36 -- agents/v1.1.0/commons/summarizeagent.eth.json | 38 -- checksums-v1.0.0.txt | 17 + checksums-v1.1.0.txt | 22 + checksums.txt | 65 --- .../.well-known/agent-cards-v1.1.0.json | 5 +- .../agent-cards/v1.1.0/.well-known/agent.json | 10 +- .../v1.1.0/commercial/authorizeagent.eth.json | 34 -- .../v1.1.0/commercial/checkoutagent.eth.json | 34 -- .../v1.1.0/commercial/purchaseagent.eth.json | 34 -- .../v1.1.0/commercial/shipagent.eth.json | 34 -- .../v1.1.0/commercial/verifyagent.eth.json | 34 -- .../v1.1.0/commons/analyzeagent.eth.json | 36 -- .../v1.1.0/commons/classifyagent.eth.json | 36 -- .../agents/v1.1.0/commons/cleanagent.eth.json | 38 -- .../v1.1.0/commons/convertagent.eth.json | 38 -- .../v1.1.0/commons/describeagent.eth.json | 37 -- .../v1.1.0/commons/explainagent.eth.json | 37 -- .../agents/v1.1.0/commons/fetchagent.eth.json | 36 -- .../v1.1.0/commons/formatagent.eth.json | 38 -- .../agents/v1.1.0/commons/parseagent.eth.json | 36 -- .../v1.1.0/commons/summarizeagent.eth.json | 38 -- .../agent-cards/v1.1.0/checksums-v1.1.0.txt | 22 + dist-pin/agent-cards/v1.1.0/checksums.txt | 65 --- .../v1.1.0/meta/commercial-agent.json | 2 +- .../v1.1.0/meta/commons-agent.json | 2 +- .../agent-cards/v1.1.0/meta/manifest.json | 106 ++-- .../schemas/v1.1.0/agent.card.schema.json | 143 +---- .../v1.1.0/agent.descriptor.schema.json | 13 +- meta/commercial-agent.json | 2 +- meta/commons-agent.json | 2 +- meta/manifest.json | 106 ++-- package-lock.json | 551 +----------------- package.json | 20 +- schemas/v1.1.0/agent.card.schema.json | 143 +---- schemas/v1.1.0/agent.descriptor.schema.json | 13 +- scripts/add-schemas-mirror.mjs | 40 -- scripts/generate-checksums.mjs | 120 ++-- scripts/reorder-agent-cards.mjs | 56 -- scripts/validate-cards.mjs | 237 +++++--- scripts/validate.ts | 220 ------- tsconfig.json | 11 - 76 files changed, 646 insertions(+), 2882 deletions(-) create mode 100644 checksums-v1.0.0.txt create mode 100644 checksums-v1.1.0.txt delete mode 100644 checksums.txt create mode 100644 dist-pin/agent-cards/v1.1.0/checksums-v1.1.0.txt delete mode 100644 dist-pin/agent-cards/v1.1.0/checksums.txt delete mode 100644 scripts/add-schemas-mirror.mjs delete mode 100644 scripts/reorder-agent-cards.mjs delete mode 100644 scripts/validate.ts delete mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index f9c9c57..da001f5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,3 @@ node_modules npm-debug.log* dist .DS_Store - -# local build/pin staging -/dist-pin/ diff --git a/.well-known/agent-cards-v1.1.0.json b/.well-known/agent-cards-v1.1.0.json index 60fb1ba..411fa0b 100644 --- a/.well-known/agent-cards-v1.1.0.json +++ b/.well-known/agent-cards-v1.1.0.json @@ -1,7 +1,7 @@ { "id": "x402://commandlayer.eth/agent-cards/v1.1.0", "name": "CommandLayer Agent Cards Registry Descriptor (v1.1.0)", - "description": "Versioned discovery descriptor for CommandLayer Agent Cards v1.1.0.", + "description": "Frozen discovery snapshot for CommandLayer Agent Cards v1.1.0.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", @@ -25,6 +25,7 @@ "current_release": "v1.1.0", "legacy_release": "v1.0.0", "publish_state": "ready-to-pin", - "license": "Apache-2.0" + "license": "Apache-2.0", + "role": "frozen-snapshot" } } diff --git a/.well-known/agent.json b/.well-known/agent.json index 643b1c3..1478b15 100644 --- a/.well-known/agent.json +++ b/.well-known/agent.json @@ -1,7 +1,7 @@ { - "id": "x402://commandlayer.eth/agent-cards/v1.1.0", + "id": "x402://commandlayer.eth/agent-cards/current", "name": "CommandLayer Agent Cards Registry", - "description": "Well-known descriptor for the current CommandLayer Agent Cards v1.1.0 release line.", + "description": "Current discovery pointer for the CommandLayer Agent Cards release line.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", @@ -18,6 +18,9 @@ }, "commercial_agent": { "http": "https://commandlayer.org/agent-cards/meta/commercial-agent.json" + }, + "snapshot": { + "http": "https://commandlayer.org/agent-cards/.well-known/agent-cards-v1.1.0.json" } }, "meta": { @@ -25,6 +28,7 @@ "current_release": "v1.1.0", "legacy_release": "v1.0.0", "publish_state": "ready-to-pin", - "license": "Apache-2.0" + "license": "Apache-2.0", + "role": "current-pointer" } } diff --git a/README.md b/README.md index 4423456..fd128e9 100644 --- a/README.md +++ b/README.md @@ -1,135 +1,80 @@ # Agent Cards — CommandLayer -Agent Cards are CommandLayer's identity and routing layer. They bind ENS names to canonical verbs, published request/receipt schemas, and semver-pinned x402 entrypoints without redefining the semantic contract. +## Authority Model -## Current version story +- **Current line:** `v1.1.0`. +- **Root repository:** canonical source of truth for current artifacts. +- **`meta/manifest.json`:** canonical registry index for the current line. +- **`.well-known/agent.json`:** current discovery pointer. +- **`.well-known/agent-cards-v1.1.0.json`:** frozen discovery snapshot for `v1.1.0`. +- **`dist-pin/agent-cards/v1.1.0/`:** derivative release bundle generated from root artifacts for repinning only. +- **`checksums-v1.1.0.txt`:** canonical integrity surface for the current line. -- **Current Agent Cards line:** `v1.1.0` -- **Current Commons contract line:** `v1.1.0` -- **Current Commercial contract line:** `v1.1.0` -- **Legacy line retained for compatibility:** `v1.0.0` +If root, manifest, dist-pin, and checksums disagree, root and current checksums win. -## Design rule for v1.1.0 +## Current Line -Agent Cards v1.1.0 is intentionally flat: +`v1.1.0` is the only active release line in this repository. `v1.0.0` is archival and retained only for compatibility review. -- cards live under `agents/v1.1.0/` -- current schemas live under `schemas/v1.1.0/` -- current cards use `schemas/v1.1.0/agent.card.schema.json` -- current discovery files use `schemas/v1.1.0/agent.descriptor.schema.json` -- current cards bind **directly** to published Commons / Commercial schema URLs -- current cards bind **directly** to `commandlayer.org` mirror URLs -- current v1.1.0 uses **no `_shared`** +## Current Artifact Surface -## How card bindings work +- `agents/v1.1.0/` — canonical current cards. +- `schemas/v1.1.0/` — canonical current schemas. +- `meta/manifest.json` — canonical card registry index. +- `meta/commons-agent.json` / `meta/commercial-agent.json` — current class registries. +- `.well-known/agent.json` — current pointer. +- `.well-known/agent-cards-v1.1.0.json` — frozen snapshot. +- `checksums-v1.1.0.txt` — integrity file for the current canonical surface. +- `dist-pin/agent-cards/v1.1.0/` — derivative bundle that must byte-match the current canonical surface. -For `v1.1.0`: +## Release Rules -- `schemas.request` and `schemas.receipt` point to the tagged upstream schema source URLs -- `schemas_mirror.request` and `schemas_mirror.receipt` point to the public `commandlayer.org` mirrors -- `entry` remains `x402:////v1.1.0` +- Current cards are minimal bindings: identity, owner, ENS, class, status, schemas, mirrors, entry, and update timestamp. +- Manifest entries must match cards exactly for `id`, `class`, `verb`, `version`, schema URLs, mirror URLs, `entry`, and `status`. +- `.well-known/agent.json` is a pointer; `.well-known/agent-cards-v1.1.0.json` is the immutable snapshot it points to. +- `dist-pin` is not authoritative. It is validated as a derivative copy of current artifacts. +- `v1.0.0` is archival only. Do not treat it as the current protocol line. -### Commons source pattern +## Validation -`https://raw.githubusercontent.com/commandlayer/protocol-commons/refs/tags/v1.1.0/schemas/v1.1.0/commons//.request.schema.json` +```bash +npm install +npm run validate +``` -### Commons mirror pattern +`npm run validate` performs the full current-line trust check: -`https://commandlayer.org/schemas/v1.1.0/commons//.request.schema.json` +- validates current cards against the `v1.1.0` schema +- validates the current pointer/snapshot discovery model +- cross-validates `meta/manifest.json` against every current card +- verifies `dist-pin/agent-cards/v1.1.0/` is an exact derivative bundle +- verifies `checksums-v1.1.0.txt` -### Commercial source pattern +Optional commands: -`https://raw.githubusercontent.com/commandlayer/protocol-commercial/refs/tags/v1.1.0/schemas/v1.1.0/commercial//.request.schema.json` +- `npm run validate:legacy` — archival `v1.0.0` structural checks only +- `npm run validate:checksums` — verify `checksums-v1.1.0.txt` +- `npm run validate:release` — network checks for schema URLs, mirrors, and entry URIs -### Commercial mirror pattern +## Checksums -`https://commandlayer.org/schemas/v1.1.0/commercial//.request.schema.json` +- `checksums-v1.1.0.txt` covers `.well-known/`, `agents/v1.1.0/`, `meta/`, and `schemas/v1.1.0/`. +- `checksums-v1.0.0.txt` is archival and covers `agents/v1.0.0/` and `schemas/v1.0.0/`. +- `dist-pin` is excluded from checksum truth because it is derivative, not canonical. -## Repository layout +## Repository Layout ```text agent-cards/ ├── agents/ -│ ├── v1.0.0/ -│ └── v1.1.0/ -│ ├── commons/ -│ └── commercial/ +│ ├── v1.0.0/ # archival only +│ └── v1.1.0/ # canonical current cards ├── schemas/ -│ ├── v1.0.0/ -│ └── v1.1.0/ -│ ├── agent.card.schema.json -│ └── agent.descriptor.schema.json -├── meta/ -├── .well-known/ -├── dist-pin/agent-cards/v1.1.0/ -└── checksums.txt -``` - -## Example Commons v1.1.0 card - -```json -{ - "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", - "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/summarizeagent.eth.json", - "id": "summarizeagent.eth", - "version": "1.1.0", - "class": "commons", - "implements": ["summarize"], - "schemas": { - "request": "https://raw.githubusercontent.com/commandlayer/protocol-commons/refs/tags/v1.1.0/schemas/v1.1.0/commons/summarize/summarize.request.schema.json", - "receipt": "https://raw.githubusercontent.com/commandlayer/protocol-commons/refs/tags/v1.1.0/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json" - }, - "schemas_mirror": { - "request": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.request.schema.json", - "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json" - }, - "entry": "x402://summarizeagent.eth/summarize/v1.1.0" -} -``` - -## Example Commercial v1.1.0 card - -```json -{ - "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", - "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/checkoutagent.eth.json", - "id": "checkoutagent.eth", - "version": "1.1.0", - "class": "commercial", - "implements": ["checkout"], - "schemas": { - "request": "https://raw.githubusercontent.com/commandlayer/protocol-commercial/refs/tags/v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", - "receipt": "https://raw.githubusercontent.com/commandlayer/protocol-commercial/refs/tags/v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json" - }, - "schemas_mirror": { - "request": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", - "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json" - }, - "entry": "x402://checkoutagent.eth/checkout/v1.1.0" -} -``` - -## Validation - -```bash -npm install -npm run validate +│ ├── v1.0.0/ # archival only +│ └── v1.1.0/ # canonical current schemas +├── meta/ # canonical current registry metadata +├── .well-known/ # current pointer + frozen snapshot +├── dist-pin/ # derivative release bundles +├── checksums-v1.0.0.txt # archival integrity file +└── checksums-v1.1.0.txt # canonical current integrity file ``` - -Validation checks: - -- descriptor schema conformance -- exact authoritative v1.1.0 card presence -- version / path / `$schema` / `$id` alignment -- direct Commons and Commercial source URL patterns -- direct `commandlayer.org` mirror URL patterns -- entry URI correctness -- checksum determinism across cards, schemas, meta, discovery, and dist-pin - -## Release artifacts - -- `meta/manifest.json` — authoritative release index -- `.well-known/agent.json` — current discovery descriptor -- `.well-known/agent-cards-v1.1.0.json` — versioned descriptor -- `dist-pin/agent-cards/v1.1.0/` — publish bundle for repinning -- `checksums.txt` — deterministic artifact digests diff --git a/RESOLUTION.md b/RESOLUTION.md index e142d24..91652d2 100644 --- a/RESOLUTION.md +++ b/RESOLUTION.md @@ -1,5 +1,37 @@ # Resolution Log — Agent Cards -| Date | Agent Name(s) | Action | Reason | Resolution | Approver(s) | -|---|---|---|---|---|---| -| 2026-03-19 | `analyzeagent.eth`, `classifyagent.eth`, `cleanagent.eth`, `convertagent.eth`, `describeagent.eth`, `explainagent.eth`, `fetchagent.eth`, `formatagent.eth`, `parseagent.eth`, `summarizeagent.eth`, `authorizeagent.eth`, `checkoutagent.eth`, `purchaseagent.eth`, `shipagent.eth`, `verifyagent.eth` | Updated | Post-publish alignment migration for Agent Cards v1.1.0. | Removed current-line `_shared` usage, switched v1.1.0 cards to direct flat Commons and Commercial schema URL bindings, regenerated manifest/discovery/checksums, and refreshed the v1.1.0 pin bundle. | `commandlayer.eth` | +## 2026-03-19 — Current-line authority reset + +- **Decision:** `v1.1.0` is the only current line. +- **Rationale:** The repository exposed multiple surfaces without a hard authority order. +- **Affected artifacts:** `README.md`, `meta/manifest.json`, `.well-known/*`, `checksums-v1.1.0.txt`, `dist-pin/agent-cards/v1.1.0/`. + +## 2026-03-19 — `dist-pin` classified as derivative + +- **Decision:** `dist-pin/agent-cards/v1.1.0/` is a derivative release bundle, not a source of truth. +- **Rationale:** Root artifacts must remain canonical; repinning bundles must be reproducible outputs. +- **Affected artifacts:** `README.md`, `.gitignore`, `scripts/validate-cards.mjs`, `scripts/generate-checksums.mjs`, `dist-pin/agent-cards/v1.1.0/`. + +## 2026-03-19 — Discovery model fixed to pointer + frozen snapshot + +- **Decision:** `.well-known/agent.json` is the current pointer and `.well-known/agent-cards-v1.1.0.json` is the frozen snapshot. +- **Rationale:** Both files remain only if their relationship is explicit and validated. +- **Affected artifacts:** `.well-known/agent.json`, `.well-known/agent-cards-v1.1.0.json`, `schemas/v1.1.0/agent.descriptor.schema.json`, `scripts/validate-cards.mjs`. + +## 2026-03-19 — Checksum scope split by line + +- **Decision:** `checksums-v1.1.0.txt` is the current integrity file; `checksums-v1.0.0.txt` is archival. +- **Rationale:** A single checksum file mixed current and archival truth, which slowed review and hid scope. +- **Affected artifacts:** `checksums-v1.1.0.txt`, `checksums-v1.0.0.txt`, `meta/manifest.json`, `README.md`, `scripts/generate-checksums.mjs`. + +## 2026-03-19 — v1.1.0 cards reduced to protocol bindings + +- **Decision:** Current cards now carry only binding-critical fields. +- **Rationale:** Descriptive metadata and capability prose made the cards look like product copy instead of protocol records. +- **Affected artifacts:** `schemas/v1.1.0/agent.card.schema.json`, `agents/v1.1.0/**/*.json`, `meta/manifest.json`, `scripts/validate-cards.mjs`. + +## 2026-03-19 — v1.0.0 marked archival and placeholders removed + +- **Decision:** `v1.0.0` remains for compatibility review only; fake mirror URLs and unverifiable PGP claims were removed. +- **Rationale:** Placeholder bindings and stale provenance fields undermine trust even in archival material. +- **Affected artifacts:** `agents/v1.0.0/**/*.json`, `README.md`, `SECURITY_PROVENANCE.md`. diff --git a/SECURITY_PROVENANCE.md b/SECURITY_PROVENANCE.md index 9f78bac..0f38821 100644 --- a/SECURITY_PROVENANCE.md +++ b/SECURITY_PROVENANCE.md @@ -1,10 +1,22 @@ # Security & Provenance — Agent Cards -Agent Cards prove identity and routing intent. They do not prove execution success. +## Trust anchors now -For v1.1.0, provenance expectations are: +Current trust is anchored by four surfaces: -- direct upstream schema source URLs -- direct commandlayer.org mirror URLs -- deterministic repo checksums -- mirrored publish bundle under `dist-pin/agent-cards/v1.1.0/` +1. the canonical root artifacts under `agents/v1.1.0/`, `schemas/v1.1.0/`, `meta/`, and `.well-known/` +2. the registry index in `meta/manifest.json` +3. the scoped integrity file `checksums-v1.1.0.txt` +4. release-time verification that current schema URLs, mirrors, and `x402` entry URIs resolve as expected + +## What `dist-pin` means now + +`dist-pin/agent-cards/v1.1.0/` is a derivative release bundle. It exists for repinning and distribution. It is not an authority surface. Validation requires it to match the canonical root artifacts byte-for-byte. + +## Why legacy provenance fields changed + +`v1.0.0` cards previously carried `pgp_fingerprint` claims without a maintained, verifiable key-distribution path in this repository. Those claims were removed. The archival line now keeps only explicit archival notes and still-valid URLs. + +## What Agent Cards do not prove + +Agent Cards prove identity bindings, schema bindings, and discovery bindings. They do not prove runtime behavior, payment execution, settlement, or service quality. diff --git a/agents/v1.0.0/commercial/authorizeagent.eth.json b/agents/v1.0.0/commercial/authorizeagent.eth.json index f213261..b29cbea 100644 --- a/agents/v1.0.0/commercial/authorizeagent.eth.json +++ b/agents/v1.0.0/commercial/authorizeagent.eth.json @@ -1,51 +1,55 @@ { "$schema": "https://commandlayer.org/agent-cards/schemas/v1.0.0/_shared/agent.card.base.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.0.0/commercial/authorizeagent.eth.json", - "id": "authorizeagent.eth", "slug": "authorizeagent", "display_name": "Authorize Agent", "description": "Commercial reference agent for the authorize verb. Creates and manages payment authorizations or mandates without immediate capture.", - "owner": "commandlayer.eth", "ens": "authorizeagent.eth", "version": "1.0.0", "status": "protocol_reference", "class": "commercial", - - "implements": ["authorize"], - + "implements": [ + "authorize" + ], "schemas": { "request": "https://commandlayer.org/schemas/v1.0.0/commercial/authorize/requests/authorize.request.schema.json", "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/authorize/receipts/authorize.receipt.schema.json" }, "schemas_mirror": { - "request": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/authorize/requests/authorize.request.schema.json", - "receipt": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/authorize/receipts/authorize.receipt.schema.json" + "request": "https://commandlayer.org/schemas/v1.0.0/commercial/authorize/requests/authorize.request.schema.json", + "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/authorize/receipts/authorize.receipt.schema.json" }, - "entry": "x402://authorizeagent.eth/authorize/v1.0.0", - "capabilities": { "operations": [ "create_authorization", "refresh_authorization", "cancel_authorization" ], - "input_types": ["application/json"], - "output_types": ["application/json"] + "input_types": [ + "application/json" + ], + "output_types": [ + "application/json" + ] }, - "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", - "tags": ["authorize", "commercial", "payments", "mandates"] + "tags": [ + "authorize", + "commercial", + "payments", + "mandates" + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, - - "networks": ["eip155:1"], + "networks": [ + "eip155:1" + ], "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2025-11-22T00:00:00Z" } diff --git a/agents/v1.0.0/commercial/checkoutagent.eth.json b/agents/v1.0.0/commercial/checkoutagent.eth.json index a8ba9de..7edf041 100644 --- a/agents/v1.0.0/commercial/checkoutagent.eth.json +++ b/agents/v1.0.0/commercial/checkoutagent.eth.json @@ -1,31 +1,27 @@ { "$schema": "https://commandlayer.org/agent-cards/schemas/v1.0.0/_shared/agent.card.base.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.0.0/commercial/checkoutagent.eth.json", - "id": "checkoutagent.eth", "slug": "checkoutagent", "display_name": "Checkout Agent", "description": "Commercial reference agent for the checkout verb. Turns carts into canonical orders and payment intents using checkout.request and checkout.receipt schemas.", - "owner": "commandlayer.eth", "ens": "checkoutagent.eth", "version": "1.0.0", "status": "protocol_reference", "class": "commercial", - - "implements": ["checkout"], - + "implements": [ + "checkout" + ], "schemas": { "request": "https://commandlayer.org/schemas/v1.0.0/commercial/checkout/requests/checkout.request.schema.json", "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/checkout/receipts/checkout.receipt.schema.json" }, "schemas_mirror": { - "request": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/checkout/requests/checkout.request.schema.json", - "receipt": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/checkout/receipts/checkout.receipt.schema.json" + "request": "https://commandlayer.org/schemas/v1.0.0/commercial/checkout/requests/checkout.request.schema.json", + "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/checkout/receipts/checkout.receipt.schema.json" }, - "entry": "x402://checkoutagent.eth/checkout/v1.0.0", - "capabilities": { "operations": [ "create_order", @@ -33,20 +29,28 @@ "resolve_shipping", "initiate_payment_intent" ], - "input_types": ["application/json"], - "output_types": ["application/json"] + "input_types": [ + "application/json" + ], + "output_types": [ + "application/json" + ] }, - "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", - "tags": ["checkout", "commercial", "orders", "payments"] + "tags": [ + "checkout", + "commercial", + "orders", + "payments" + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, - - "networks": ["eip155:1"], + "networks": [ + "eip155:1" + ], "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2025-11-22T00:00:00Z" } diff --git a/agents/v1.0.0/commercial/purchaseagent.eth.json b/agents/v1.0.0/commercial/purchaseagent.eth.json index 6433368..5260fdf 100644 --- a/agents/v1.0.0/commercial/purchaseagent.eth.json +++ b/agents/v1.0.0/commercial/purchaseagent.eth.json @@ -1,51 +1,54 @@ { "$schema": "https://commandlayer.org/agent-cards/schemas/v1.0.0/_shared/agent.card.base.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.0.0/commercial/purchaseagent.eth.json", - "id": "purchaseagent.eth", "slug": "purchaseagent", "display_name": "Purchase Agent", "description": "Commercial reference agent for the purchase verb. Executes direct purchases without complex cart semantics, using purchase.request and purchase.receipt.", - "owner": "commandlayer.eth", "ens": "purchaseagent.eth", "version": "1.0.0", "status": "protocol_reference", "class": "commercial", - - "implements": ["purchase"], - + "implements": [ + "purchase" + ], "schemas": { "request": "https://commandlayer.org/schemas/v1.0.0/commercial/purchase/requests/purchase.request.schema.json", "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/purchase/receipts/purchase.receipt.schema.json" }, "schemas_mirror": { - "request": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/purchase/requests/purchase.request.schema.json", - "receipt": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/purchase/receipts/purchase.receipt.schema.json" + "request": "https://commandlayer.org/schemas/v1.0.0/commercial/purchase/requests/purchase.request.schema.json", + "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/purchase/receipts/purchase.receipt.schema.json" }, - "entry": "x402://purchaseagent.eth/purchase/v1.0.0", - "capabilities": { "operations": [ "execute_purchase", "apply_pricing", "record_order" ], - "input_types": ["application/json"], - "output_types": ["application/json"] + "input_types": [ + "application/json" + ], + "output_types": [ + "application/json" + ] }, - "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", - "tags": ["purchase", "commercial", "payments"] + "tags": [ + "purchase", + "commercial", + "payments" + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, - - "networks": ["eip155:1"], + "networks": [ + "eip155:1" + ], "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2025-11-22T00:00:00Z" } diff --git a/agents/v1.0.0/commercial/shipagent.eth.json b/agents/v1.0.0/commercial/shipagent.eth.json index 8b55a25..fa57cb1 100644 --- a/agents/v1.0.0/commercial/shipagent.eth.json +++ b/agents/v1.0.0/commercial/shipagent.eth.json @@ -1,31 +1,27 @@ { "$schema": "https://commandlayer.org/agent-cards/schemas/v1.0.0/_shared/agent.card.base.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.0.0/commercial/shipagent.eth.json", - "id": "shipagent.eth", "slug": "shipagent", "display_name": "Ship Agent", "description": "Commercial reference agent for the ship verb. Orchestrates label creation, tracking, and shipment status for orders.", - "owner": "commandlayer.eth", "ens": "shipagent.eth", "version": "1.0.0", "status": "protocol_reference", "class": "commercial", - - "implements": ["ship"], - + "implements": [ + "ship" + ], "schemas": { "request": "https://commandlayer.org/schemas/v1.0.0/commercial/ship/requests/ship.request.schema.json", "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/ship/receipts/ship.receipt.schema.json" }, "schemas_mirror": { - "request": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/ship/requests/ship.request.schema.json", - "receipt": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/ship/receipts/ship.receipt.schema.json" + "request": "https://commandlayer.org/schemas/v1.0.0/commercial/ship/requests/ship.request.schema.json", + "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/ship/receipts/ship.receipt.schema.json" }, - "entry": "x402://shipagent.eth/ship/v1.0.0", - "capabilities": { "operations": [ "create_label", @@ -33,20 +29,28 @@ "update_tracking", "mark_delivered" ], - "input_types": ["application/json"], - "output_types": ["application/json"] + "input_types": [ + "application/json" + ], + "output_types": [ + "application/json" + ] }, - "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", - "tags": ["ship", "logistics", "fulfillment", "commercial"] + "tags": [ + "ship", + "logistics", + "fulfillment", + "commercial" + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, - - "networks": ["eip155:1"], + "networks": [ + "eip155:1" + ], "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2025-11-22T00:00:00Z" } diff --git a/agents/v1.0.0/commercial/verifyagent.eth.json b/agents/v1.0.0/commercial/verifyagent.eth.json index 4ce737d..7e9d838 100644 --- a/agents/v1.0.0/commercial/verifyagent.eth.json +++ b/agents/v1.0.0/commercial/verifyagent.eth.json @@ -1,33 +1,27 @@ { "$schema": "https://commandlayer.org/agent-cards/schemas/v1.0.0/_shared/agent.card.base.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.0.0/commercial/verifyagent.eth.json", - "id": "verifyagent.eth", "slug": "verifyagent", "display_name": "Verify Agent", - "description": "Commercial reference agent for the verify verb. Confirms payments, invoices, and settlements against a provider’s canonical ledger using commercial verify.request and verify.receipt schemas.", - + "description": "Commercial reference agent for the verify verb. Confirms payments, invoices, and settlements against a provider\u2019s canonical ledger using commercial verify.request and verify.receipt schemas.", "owner": "commandlayer.eth", "ens": "verifyagent.eth", "version": "1.0.0", "status": "protocol_reference", "class": "commercial", - "implements": [ "verify" ], - "schemas": { "request": "https://commandlayer.org/schemas/v1.0.0/commercial/verify/requests/verify.request.schema.json", "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/verify/receipts/verify.receipt.schema.json" }, "schemas_mirror": { - "request": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/verify/requests/verify.request.schema.json", - "receipt": "https://ipfs.io/ipfs/COMMERCIAL_SCHEMAS_CID/commercial/verify/receipts/verify.receipt.schema.json" + "request": "https://commandlayer.org/schemas/v1.0.0/commercial/verify/requests/verify.request.schema.json", + "receipt": "https://commandlayer.org/schemas/v1.0.0/commercial/verify/receipts/verify.receipt.schema.json" }, - "entry": "x402://verifyagent.eth/verify/v1.0.0", - "capabilities": { "operations": [ "verify_payment", @@ -42,25 +36,22 @@ "application/json" ] }, - "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "verify", "commercial", "payments", "settlement", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, - "networks": [ "eip155:1" ], "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2025-11-22T00:00:00Z" } diff --git a/agents/v1.0.0/commons/analyzeagent.eth.json b/agents/v1.0.0/commons/analyzeagent.eth.json index fac535b..3c4d02f 100644 --- a/agents/v1.0.0/commons/analyzeagent.eth.json +++ b/agents/v1.0.0/commons/analyzeagent.eth.json @@ -42,12 +42,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "analyze", "insights", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/classifyagent.eth.json b/agents/v1.0.0/commons/classifyagent.eth.json index ac46f56..63b1718 100644 --- a/agents/v1.0.0/commons/classifyagent.eth.json +++ b/agents/v1.0.0/commons/classifyagent.eth.json @@ -40,12 +40,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "classify", "labels", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/cleanagent.eth.json b/agents/v1.0.0/commons/cleanagent.eth.json index cc8daf3..2c847fb 100644 --- a/agents/v1.0.0/commons/cleanagent.eth.json +++ b/agents/v1.0.0/commons/cleanagent.eth.json @@ -44,14 +44,14 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "clean", "sanitize", "normalize", "redact", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/convertagent.eth.json b/agents/v1.0.0/commons/convertagent.eth.json index bd022f6..ad8b48d 100644 --- a/agents/v1.0.0/commons/convertagent.eth.json +++ b/agents/v1.0.0/commons/convertagent.eth.json @@ -41,12 +41,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "convert", "transform", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/describeagent.eth.json b/agents/v1.0.0/commons/describeagent.eth.json index 39a82f3..c0b1022 100644 --- a/agents/v1.0.0/commons/describeagent.eth.json +++ b/agents/v1.0.0/commons/describeagent.eth.json @@ -41,12 +41,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "describe", "description", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/explainagent.eth.json b/agents/v1.0.0/commons/explainagent.eth.json index 67e43b3..2fb8204 100644 --- a/agents/v1.0.0/commons/explainagent.eth.json +++ b/agents/v1.0.0/commons/explainagent.eth.json @@ -41,12 +41,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "explain", "explanations", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/fetchagent.eth.json b/agents/v1.0.0/commons/fetchagent.eth.json index 255c0a4..5d39411 100644 --- a/agents/v1.0.0/commons/fetchagent.eth.json +++ b/agents/v1.0.0/commons/fetchagent.eth.json @@ -41,12 +41,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "fetch", "http", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/formatagent.eth.json b/agents/v1.0.0/commons/formatagent.eth.json index 94718dd..8825d0b 100644 --- a/agents/v1.0.0/commons/formatagent.eth.json +++ b/agents/v1.0.0/commons/formatagent.eth.json @@ -41,12 +41,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "format", "styling", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/parseagent.eth.json b/agents/v1.0.0/commons/parseagent.eth.json index c73da92..863fc1d 100644 --- a/agents/v1.0.0/commons/parseagent.eth.json +++ b/agents/v1.0.0/commons/parseagent.eth.json @@ -40,12 +40,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "parse", "structure", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.0.0/commons/summarizeagent.eth.json b/agents/v1.0.0/commons/summarizeagent.eth.json index 8e49402..5693c66 100644 --- a/agents/v1.0.0/commons/summarizeagent.eth.json +++ b/agents/v1.0.0/commons/summarizeagent.eth.json @@ -43,12 +43,12 @@ "meta": { "publisher": "CommandLayer", "contact": "dev@commandlayer.org", - "pgp_fingerprint": "5016 D496 9F38 22B2 C5A2 FA40 99A2 6950 197D AB0A", "tags": [ "summarize", "compression", "protocol-reference" - ] + ], + "archival_note": "v1.0.0 is retained for compatibility only. Legacy PGP claims were removed because this repository no longer maintains a verifiable key-distribution path for them." }, "networks": [ "eip155:1" diff --git a/agents/v1.1.0/commercial/authorizeagent.eth.json b/agents/v1.1.0/commercial/authorizeagent.eth.json index 705ebbe..dfc1145 100644 --- a/agents/v1.1.0/commercial/authorizeagent.eth.json +++ b/agents/v1.1.0/commercial/authorizeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/authorizeagent.eth.json", "id": "authorizeagent.eth", - "slug": "authorizeagent", - "display_name": "Authorize Agent", - "description": "Protocol reference card for the authorize verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "authorizeagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json" }, "entry": "x402://authorizeagent.eth/authorize/v1.1.0", - "capabilities": { - "operations": [ - "create_authorization", - "refresh_authorization", - "cancel_authorization" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "authorize", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commercial/checkoutagent.eth.json b/agents/v1.1.0/commercial/checkoutagent.eth.json index 33e491d..3558ba7 100644 --- a/agents/v1.1.0/commercial/checkoutagent.eth.json +++ b/agents/v1.1.0/commercial/checkoutagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/checkoutagent.eth.json", "id": "checkoutagent.eth", - "slug": "checkoutagent", - "display_name": "Checkout Agent", - "description": "Protocol reference card for the checkout verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "checkoutagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json" }, "entry": "x402://checkoutagent.eth/checkout/v1.1.0", - "capabilities": { - "operations": [ - "price_cart", - "create_order", - "select_payment_method" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "checkout", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commercial/purchaseagent.eth.json b/agents/v1.1.0/commercial/purchaseagent.eth.json index b733a30..d4ba254 100644 --- a/agents/v1.1.0/commercial/purchaseagent.eth.json +++ b/agents/v1.1.0/commercial/purchaseagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/purchaseagent.eth.json", "id": "purchaseagent.eth", - "slug": "purchaseagent", - "display_name": "Purchase Agent", - "description": "Protocol reference card for the purchase verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "purchaseagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json" }, "entry": "x402://purchaseagent.eth/purchase/v1.1.0", - "capabilities": { - "operations": [ - "capture_order", - "settle_purchase", - "record_order" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "purchase", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commercial/shipagent.eth.json b/agents/v1.1.0/commercial/shipagent.eth.json index dc9773f..4c63d94 100644 --- a/agents/v1.1.0/commercial/shipagent.eth.json +++ b/agents/v1.1.0/commercial/shipagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/shipagent.eth.json", "id": "shipagent.eth", - "slug": "shipagent", - "display_name": "Ship Agent", - "description": "Protocol reference card for the ship verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "shipagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json" }, "entry": "x402://shipagent.eth/ship/v1.1.0", - "capabilities": { - "operations": [ - "create_shipment", - "assign_carrier", - "update_tracking" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "ship", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commercial/verifyagent.eth.json b/agents/v1.1.0/commercial/verifyagent.eth.json index 7f790d1..49c05bc 100644 --- a/agents/v1.1.0/commercial/verifyagent.eth.json +++ b/agents/v1.1.0/commercial/verifyagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/verifyagent.eth.json", "id": "verifyagent.eth", - "slug": "verifyagent", - "display_name": "Verify Agent", - "description": "Protocol reference card for the verify verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "verifyagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json" }, "entry": "x402://verifyagent.eth/verify/v1.1.0", - "capabilities": { - "operations": [ - "verify_payment", - "verify_identity", - "reconcile_outcome" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "verify", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/analyzeagent.eth.json b/agents/v1.1.0/commons/analyzeagent.eth.json index 07190ba..3d07c1f 100644 --- a/agents/v1.1.0/commons/analyzeagent.eth.json +++ b/agents/v1.1.0/commons/analyzeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/analyzeagent.eth.json", "id": "analyzeagent.eth", - "slug": "analyzeagent", - "display_name": "Analyze Agent", - "description": "Protocol reference card for the analyze verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "analyzeagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.receipt.schema.json" }, "entry": "x402://analyzeagent.eth/analyze/v1.1.0", - "capabilities": { - "operations": [ - "inspect_content", - "derive_signals", - "score_findings" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "analyze", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/classifyagent.eth.json b/agents/v1.1.0/commons/classifyagent.eth.json index 43e0a8e..d184bbf 100644 --- a/agents/v1.1.0/commons/classifyagent.eth.json +++ b/agents/v1.1.0/commons/classifyagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/classifyagent.eth.json", "id": "classifyagent.eth", - "slug": "classifyagent", - "display_name": "Classify Agent", - "description": "Protocol reference card for the classify verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "classifyagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.receipt.schema.json" }, "entry": "x402://classifyagent.eth/classify/v1.1.0", - "capabilities": { - "operations": [ - "assign_labels", - "apply_taxonomy", - "rank_categories" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "classify", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/cleanagent.eth.json b/agents/v1.1.0/commons/cleanagent.eth.json index b261d40..a15d94b 100644 --- a/agents/v1.1.0/commons/cleanagent.eth.json +++ b/agents/v1.1.0/commons/cleanagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/cleanagent.eth.json", "id": "cleanagent.eth", - "slug": "cleanagent", - "display_name": "Clean Agent", - "description": "Protocol reference card for the clean verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "cleanagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.receipt.schema.json" }, "entry": "x402://cleanagent.eth/clean/v1.1.0", - "capabilities": { - "operations": [ - "remove_noise", - "normalize_content", - "redact_sensitive_data" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "clean", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/convertagent.eth.json b/agents/v1.1.0/commons/convertagent.eth.json index 40c3de7..3bdc90c 100644 --- a/agents/v1.1.0/commons/convertagent.eth.json +++ b/agents/v1.1.0/commons/convertagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/convertagent.eth.json", "id": "convertagent.eth", - "slug": "convertagent", - "display_name": "Convert Agent", - "description": "Protocol reference card for the convert verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "convertagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.receipt.schema.json" }, "entry": "x402://convertagent.eth/convert/v1.1.0", - "capabilities": { - "operations": [ - "transform_representation", - "map_fields", - "apply_conversion_rules" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "convert", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/describeagent.eth.json b/agents/v1.1.0/commons/describeagent.eth.json index 0219af0..b0005ec 100644 --- a/agents/v1.1.0/commons/describeagent.eth.json +++ b/agents/v1.1.0/commons/describeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/describeagent.eth.json", "id": "describeagent.eth", - "slug": "describeagent", - "display_name": "Describe Agent", - "description": "Protocol reference card for the describe verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "describeagent.eth", "version": "1.1.0", @@ -22,39 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.receipt.schema.json" }, "entry": "x402://describeagent.eth/describe/v1.1.0", - "capabilities": { - "operations": [ - "describe_content", - "describe_entities", - "describe_changes" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "describe", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/explainagent.eth.json b/agents/v1.1.0/commons/explainagent.eth.json index 1888485..ef11957 100644 --- a/agents/v1.1.0/commons/explainagent.eth.json +++ b/agents/v1.1.0/commons/explainagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/explainagent.eth.json", "id": "explainagent.eth", - "slug": "explainagent", - "display_name": "Explain Agent", - "description": "Protocol reference card for the explain verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "explainagent.eth", "version": "1.1.0", @@ -22,39 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.receipt.schema.json" }, "entry": "x402://explainagent.eth/explain/v1.1.0", - "capabilities": { - "operations": [ - "provide_rationale", - "explain_steps", - "clarify_outputs" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "explain", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/fetchagent.eth.json b/agents/v1.1.0/commons/fetchagent.eth.json index 3068878..06d82b0 100644 --- a/agents/v1.1.0/commons/fetchagent.eth.json +++ b/agents/v1.1.0/commons/fetchagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/fetchagent.eth.json", "id": "fetchagent.eth", - "slug": "fetchagent", - "display_name": "Fetch Agent", - "description": "Protocol reference card for the fetch verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "fetchagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.receipt.schema.json" }, "entry": "x402://fetchagent.eth/fetch/v1.1.0", - "capabilities": { - "operations": [ - "retrieve_resource", - "resolve_redirects", - "capture_response_metadata" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "fetch", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/formatagent.eth.json b/agents/v1.1.0/commons/formatagent.eth.json index d210cdf..2228429 100644 --- a/agents/v1.1.0/commons/formatagent.eth.json +++ b/agents/v1.1.0/commons/formatagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/formatagent.eth.json", "id": "formatagent.eth", - "slug": "formatagent", - "display_name": "Format Agent", - "description": "Protocol reference card for the format verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "formatagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/format/format.receipt.schema.json" }, "entry": "x402://formatagent.eth/format/v1.1.0", - "capabilities": { - "operations": [ - "normalize_layout", - "apply_style_rules", - "restructure_output" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/markdown", - "text/html", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "format", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/format/format.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/format/format.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/parseagent.eth.json b/agents/v1.1.0/commons/parseagent.eth.json index ffeccc3..74aa386 100644 --- a/agents/v1.1.0/commons/parseagent.eth.json +++ b/agents/v1.1.0/commons/parseagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/parseagent.eth.json", "id": "parseagent.eth", - "slug": "parseagent", - "display_name": "Parse Agent", - "description": "Protocol reference card for the parse verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "parseagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.receipt.schema.json" }, "entry": "x402://parseagent.eth/parse/v1.1.0", - "capabilities": { - "operations": [ - "extract_fields", - "produce_structure", - "identify_entities" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "parse", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/agents/v1.1.0/commons/summarizeagent.eth.json b/agents/v1.1.0/commons/summarizeagent.eth.json index e4ffc45..88f0e58 100644 --- a/agents/v1.1.0/commons/summarizeagent.eth.json +++ b/agents/v1.1.0/commons/summarizeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/summarizeagent.eth.json", "id": "summarizeagent.eth", - "slug": "summarizeagent", - "display_name": "Summarize Agent", - "description": "Protocol reference card for the summarize verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "summarizeagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json" }, "entry": "x402://summarizeagent.eth/summarize/v1.1.0", - "capabilities": { - "operations": [ - "compress_content", - "extract_key_points", - "produce_brief" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "summarize", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/checksums-v1.0.0.txt b/checksums-v1.0.0.txt new file mode 100644 index 0000000..bd5a4f1 --- /dev/null +++ b/checksums-v1.0.0.txt @@ -0,0 +1,17 @@ +52c880110ab87db56102324cd1ad83f41ada0034bd96dcd54ab11d0f57c58c1e agents/v1.0.0/commercial/authorizeagent.eth.json +2eeb6f32fd124922d903a0b1af6cb08da0c11816e362e793a67614ac3ffd2bab agents/v1.0.0/commercial/checkoutagent.eth.json +7e91c588459cab3141035674692ecbf011ac2a275ef00acd0f159861610c5452 agents/v1.0.0/commercial/purchaseagent.eth.json +5d1bde39d82acdec171933ed97ed84cf146368b846fd85e88191373efee66ace agents/v1.0.0/commercial/shipagent.eth.json +307094794579ee1a74142b38ebb434441d2eb8ead9be7b3cfedbdfd08aa16ed1 agents/v1.0.0/commercial/verifyagent.eth.json +c43386851b3417daf86621f869c2503830e10daa93d5679799948c870515eb5e agents/v1.0.0/commons/analyzeagent.eth.json +a26c4fe07a3210d4b4cc207c7b6a76beaf6dd7814f5517ee433ff1a4f20f599f agents/v1.0.0/commons/classifyagent.eth.json +7e8188fcff36f905b6b1279b79cc6f690bad06414674e2a25837871854c5413b agents/v1.0.0/commons/cleanagent.eth.json +e5a8f1560efdb227b15b64b9cd8f6d9e6079417cfe018ef294a27713871f2f95 agents/v1.0.0/commons/convertagent.eth.json +3d300d37763d4dc036320033b27c60d44e07a523c7a9f823ea5936f6da407e70 agents/v1.0.0/commons/describeagent.eth.json +262d7ea895c5bd2b3e263774fd27500f418d0d4494f00fd9bed8a8a2b1ea0668 agents/v1.0.0/commons/explainagent.eth.json +6dce2989d495bbe714a268eb0a98e10427bd04f52539d118b238ffe209e73903 agents/v1.0.0/commons/fetchagent.eth.json +d88512765fb290f6402590502a93a7e9fe0cbe18b8a77197d997b025540d0205 agents/v1.0.0/commons/formatagent.eth.json +644904a2bb54b702b724baedffa52e90df37f7093e523a602dbc6a5785f22bcb agents/v1.0.0/commons/parseagent.eth.json +222c2713d15f8c40d5f58f99cc5382fd3e47848e48dc9bb7393249541d125a1d agents/v1.0.0/commons/summarizeagent.eth.json +ec6b2669daca50f99c9b8e04db7b8010169786788431cd74b68e547441216b8a schemas/v1.0.0/_shared/agent.card.base.schema.json +c22100701ae9ebad97cfc1cb468a0369e424a0cdcec2d62968b848ef5d14369c schemas/v1.0.0/_shared/agent.descriptor.schema.json diff --git a/checksums-v1.1.0.txt b/checksums-v1.1.0.txt new file mode 100644 index 0000000..f2f210e --- /dev/null +++ b/checksums-v1.1.0.txt @@ -0,0 +1,22 @@ +1ae93095f6e7cd87a8ada146a433cc6d5c0a49f6e4eb21fa6eb27f5f3b8de375 .well-known/agent-cards-v1.1.0.json +8053f2ef89e117c3bd2c12e1a657b2f126d966b982e7812787c333a95ef9025f .well-known/agent.json +896415468650c3ebc36798cb94bbb673527025d71418c02824a4417d5d995a70 agents/v1.1.0/commercial/authorizeagent.eth.json +941a23447301d1dfcb65d376855539b0ed2d01283476be663fc12a2741c968e3 agents/v1.1.0/commercial/checkoutagent.eth.json +f143f8b819f0976962751637e7a8340df68d5164f386a95e1a747406d7fd3c01 agents/v1.1.0/commercial/purchaseagent.eth.json +3fce26fd7364f6bd890069e1b70e519a69fa261ee3b9685408301dd1b6fa5be6 agents/v1.1.0/commercial/shipagent.eth.json +38061ffdf7a9303e312f52b290165a75f5f0d563cefe037be2cf69ce87d27944 agents/v1.1.0/commercial/verifyagent.eth.json +c996c2b9bcedf3b32b76dc485400b7f159f87cfee0e698fad6c4019d6548dde6 agents/v1.1.0/commons/analyzeagent.eth.json +dcfa0bc0e51b0884a60c11044e2f2f4279246de3fbbf3dbedb3f905ae4513b88 agents/v1.1.0/commons/classifyagent.eth.json +7c7fc1cad0b0818953f9c26b800c7f401ec921dcb4720e3d11b2a0858a1455e1 agents/v1.1.0/commons/cleanagent.eth.json +a4c2a9885e87b7d6bd7c6bac4e69e908c28f58307090c684dbd77450df5fbe0b agents/v1.1.0/commons/convertagent.eth.json +49188ad6925fdeedd565937e33c3da090fd4c480d727666a660685a03e450be5 agents/v1.1.0/commons/describeagent.eth.json +6176071adf4c399892e0cfe16ecb887d7b61ffbf80915e71a4db809b81d1a709 agents/v1.1.0/commons/explainagent.eth.json +9abc63ea91f4d3567c2569112a63333e65cec4478e0c56e5f0764a4b734b1518 agents/v1.1.0/commons/fetchagent.eth.json +0e031039ecc2723abb88f51c4c906a5fcca6bb3f09bf3cfde33782470d039fba agents/v1.1.0/commons/formatagent.eth.json +f0a6a56dea548cd9027fd5529d0ff86e5e5bb925f6183df2678d9c286b2e2a1d agents/v1.1.0/commons/parseagent.eth.json +3a3b4a145d949e9e7ef00611e0dc29929416fcaf6ba35b52d1c2c2e532a80843 agents/v1.1.0/commons/summarizeagent.eth.json +e477342d1f7e9d7deb06beb4fc203705aaf01fa5f8107ebc30ecb0955d67c99b meta/commercial-agent.json +605a3e39424f5e2084acdaa3d96620c1932550c82c73346dcc94eee5e03fe657 meta/commons-agent.json +8c2c80ed946c9a78fd0ef79d607539cbb4d56fae424f5a6ba77270a5fb87ec1b meta/manifest.json +5e923891a3fca91f5165453f6b8ecf3dce8d53e46f2643f9bcbbcd3b0a861a8e schemas/v1.1.0/agent.card.schema.json +471869ca417da0fd6e92726bbda0e9ea8083315ab9e3c9689254d5790405fc46 schemas/v1.1.0/agent.descriptor.schema.json diff --git a/checksums.txt b/checksums.txt deleted file mode 100644 index 28c0fe2..0000000 --- a/checksums.txt +++ /dev/null @@ -1,65 +0,0 @@ -cfb2adbfe8de109f249e9019596b38cb38816375e50752c2188e480d140479d7 .well-known/agent-cards-v1.1.0.json -9ed62edd51168143b431317454e4133ce3924fbb437fdbb1868be5a8d47b2670 .well-known/agent.json -8cbbb8edf6b3ec2e65dc54ce5bdd467a63aaaad1d90bbd251a729b238ef56507 agents/v1.0.0/commercial/authorizeagent.eth.json -bfad808d0e3b107df59887c9684303b87b4867d9887c9b1a035ca8b33b115cca agents/v1.0.0/commercial/checkoutagent.eth.json -0bbd1601794b3d18f63fc331b55888cb083e0f1a37d14c3c79679c237ec0414b agents/v1.0.0/commercial/purchaseagent.eth.json -15062e72b528e2f66e58a3d83ea617a4d9e699cb1eb25a0576cbf09f3808425d agents/v1.0.0/commercial/shipagent.eth.json -4079b22e3821dbfc141b1c9baaaf1cefb20b4c68af58725aacf8428e05d2e91a agents/v1.0.0/commercial/verifyagent.eth.json -2b14d78ad82435da6846e119bc9bf82f5b7661ccef53f4b7c25aaa50411d8812 agents/v1.0.0/commons/analyzeagent.eth.json -acb40f650362582daedda35fd1dbd78b7d1b6866e26cb3ee8ca090e0d18331e1 agents/v1.0.0/commons/classifyagent.eth.json -88943a385de72550bbd7454ddc8aabc6b4bc101449b571a1966e9e8c8266040e agents/v1.0.0/commons/cleanagent.eth.json -eb866bf8f0561590b823b1b04f4fed405fcae2f95b46f1a779cceb405efae05f agents/v1.0.0/commons/convertagent.eth.json -7f45a2abd1f542f37b0aaab639a5e02a15687235ec8704298fe9dfe39f5a5dbf agents/v1.0.0/commons/describeagent.eth.json -d8ae6333a4cc804361c0e427f0d82ee2d66b9129686fe85bcd97a3a9f1bf63f4 agents/v1.0.0/commons/explainagent.eth.json -3035cae9244887cc1451f329d9e20a15232197b39fe003a16a27c04bc10d8ff2 agents/v1.0.0/commons/fetchagent.eth.json -811465b0a47ee1b954802d97bfff3612e43914ed46c918936d3728a446175ce6 agents/v1.0.0/commons/formatagent.eth.json -4e66f7a76a302ac2fdcd7a8581c7c4fe6059028f801e2c8d155f513225aec805 agents/v1.0.0/commons/parseagent.eth.json -dc96aeffb629bec3c102771b8e5d99cd69d6b2bad7065d14b7c7ee2e8fc1eee2 agents/v1.0.0/commons/summarizeagent.eth.json -9f37939c58430df6efc118ec62e56d758a2c63ff6becc33b72056dff0abd01e4 agents/v1.1.0/commercial/authorizeagent.eth.json -0c2fb22fe4d5028b3218edfbc6783fa928df09c33cac3e4ae19dd6b4fb3b1d25 agents/v1.1.0/commercial/checkoutagent.eth.json -b92447ac389a28dd6d7bb9e48b62b4dcfe2d573db9e8e46769ff7f05b70c174c agents/v1.1.0/commercial/purchaseagent.eth.json -8845af9bfb06aae06fff06d7926417e532e417faf8b11e8d906b54769f180684 agents/v1.1.0/commercial/shipagent.eth.json -0d6ee78a0a977601d2544feed5f483d193b2d5e0790417725d1665a0e6859538 agents/v1.1.0/commercial/verifyagent.eth.json -e1b3893660ea726ff444392df7abb2eada8b7a0e89e3d18fa1da3247e2546ba9 agents/v1.1.0/commons/analyzeagent.eth.json -66ae37ace0e04714b1965c7661237843dc699e3e2d1f68620cff45f1132fe81f agents/v1.1.0/commons/classifyagent.eth.json -1b56892f20d39d4780a49b8f96dd769fa7d2178f9cb04fe3c60f78d726c1889e agents/v1.1.0/commons/cleanagent.eth.json -eb575e806ce80fb473d771e667caa96e4e01806345292408882c92de54f2e059 agents/v1.1.0/commons/convertagent.eth.json -0d25e3b86ca25c333a17a0cc4b9a1e0b5265dbe2bc13d88ab9da220eb5f1b613 agents/v1.1.0/commons/describeagent.eth.json -6459519e39a9107e4294a8ad5bb46ba091933823145853aba50f38a283fbd167 agents/v1.1.0/commons/explainagent.eth.json -60288c4c63ceb7936df2dc686b063c0b97f714afac3662f05a9f10da0b6043c4 agents/v1.1.0/commons/fetchagent.eth.json -2c6a69e8e91d712c09994547a42bfb4043cd5abd14df2ac3f43f4d8837d2e433 agents/v1.1.0/commons/formatagent.eth.json -7ff9756b5bcc1f989c0f36b76de8d0a8fa2d5287532dfe9717c9622eac5f6c64 agents/v1.1.0/commons/parseagent.eth.json -1ee1a0b04cbc2488fea75458f34b0b271b7801d8e01533e4ba5dd91f2aa9ae15 agents/v1.1.0/commons/summarizeagent.eth.json -3204719c980ffc68f7a317a01b9df67ca8655d5314168c6026415e06dcd8b0f8 dist-pin/agent-cards/v1.0.0/.well-known/agent.json -d3cde6eef58761fe5b88e3df5cb448002a289735df8f1c164fdc3b74193c61b9 dist-pin/agent-cards/v1.0.0/meta/commercial-agent.json -783178e57e9b754d939d90b9564740b45175fe0d360cfa4191716eb60e466c2e dist-pin/agent-cards/v1.0.0/meta/commons-agent.json -10c6ca12542dbdb21ccb1816ba7c98704789729e016b8dafe5ee2361f8b0e75c dist-pin/agent-cards/v1.0.0/meta/manifest.json -cfb2adbfe8de109f249e9019596b38cb38816375e50752c2188e480d140479d7 dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json -9ed62edd51168143b431317454e4133ce3924fbb437fdbb1868be5a8d47b2670 dist-pin/agent-cards/v1.1.0/.well-known/agent.json -9f37939c58430df6efc118ec62e56d758a2c63ff6becc33b72056dff0abd01e4 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/authorizeagent.eth.json -0c2fb22fe4d5028b3218edfbc6783fa928df09c33cac3e4ae19dd6b4fb3b1d25 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/checkoutagent.eth.json -b92447ac389a28dd6d7bb9e48b62b4dcfe2d573db9e8e46769ff7f05b70c174c dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/purchaseagent.eth.json -8845af9bfb06aae06fff06d7926417e532e417faf8b11e8d906b54769f180684 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/shipagent.eth.json -0d6ee78a0a977601d2544feed5f483d193b2d5e0790417725d1665a0e6859538 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/verifyagent.eth.json -e1b3893660ea726ff444392df7abb2eada8b7a0e89e3d18fa1da3247e2546ba9 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/analyzeagent.eth.json -66ae37ace0e04714b1965c7661237843dc699e3e2d1f68620cff45f1132fe81f dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/classifyagent.eth.json -1b56892f20d39d4780a49b8f96dd769fa7d2178f9cb04fe3c60f78d726c1889e dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/cleanagent.eth.json -eb575e806ce80fb473d771e667caa96e4e01806345292408882c92de54f2e059 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/convertagent.eth.json -0d25e3b86ca25c333a17a0cc4b9a1e0b5265dbe2bc13d88ab9da220eb5f1b613 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/describeagent.eth.json -6459519e39a9107e4294a8ad5bb46ba091933823145853aba50f38a283fbd167 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/explainagent.eth.json -60288c4c63ceb7936df2dc686b063c0b97f714afac3662f05a9f10da0b6043c4 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/fetchagent.eth.json -2c6a69e8e91d712c09994547a42bfb4043cd5abd14df2ac3f43f4d8837d2e433 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/formatagent.eth.json -7ff9756b5bcc1f989c0f36b76de8d0a8fa2d5287532dfe9717c9622eac5f6c64 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/parseagent.eth.json -1ee1a0b04cbc2488fea75458f34b0b271b7801d8e01533e4ba5dd91f2aa9ae15 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/summarizeagent.eth.json -d4aa942ad535e5e5fd9103bc21dc94f45a69e87df820bf78af2c3b6db583dcca dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json -56c4da1b3716d804495aa54244f71f995ee4b22438f125c85e6148f1e5c5cf4e dist-pin/agent-cards/v1.1.0/meta/commons-agent.json -7bbc331142bff2e8ac6882617345d732cc4744e266a16e87decf6fe5dedf2be1 dist-pin/agent-cards/v1.1.0/meta/manifest.json -b7b573a464b3ba9f643958b716e72ce9eeb095a7c5b87bf2620eb53e7dc6afb3 dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json -0735b66ce8352a56cb18b22f60393dc669f323bcaf8e44aa1ce797e2274d524c dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json -d4aa942ad535e5e5fd9103bc21dc94f45a69e87df820bf78af2c3b6db583dcca meta/commercial-agent.json -56c4da1b3716d804495aa54244f71f995ee4b22438f125c85e6148f1e5c5cf4e meta/commons-agent.json -7bbc331142bff2e8ac6882617345d732cc4744e266a16e87decf6fe5dedf2be1 meta/manifest.json -ec6b2669daca50f99c9b8e04db7b8010169786788431cd74b68e547441216b8a schemas/v1.0.0/_shared/agent.card.base.schema.json -c22100701ae9ebad97cfc1cb468a0369e424a0cdcec2d62968b848ef5d14369c schemas/v1.0.0/_shared/agent.descriptor.schema.json -b7b573a464b3ba9f643958b716e72ce9eeb095a7c5b87bf2620eb53e7dc6afb3 schemas/v1.1.0/agent.card.schema.json -0735b66ce8352a56cb18b22f60393dc669f323bcaf8e44aa1ce797e2274d524c schemas/v1.1.0/agent.descriptor.schema.json diff --git a/dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json b/dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json index 60fb1ba..411fa0b 100644 --- a/dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json +++ b/dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json @@ -1,7 +1,7 @@ { "id": "x402://commandlayer.eth/agent-cards/v1.1.0", "name": "CommandLayer Agent Cards Registry Descriptor (v1.1.0)", - "description": "Versioned discovery descriptor for CommandLayer Agent Cards v1.1.0.", + "description": "Frozen discovery snapshot for CommandLayer Agent Cards v1.1.0.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", @@ -25,6 +25,7 @@ "current_release": "v1.1.0", "legacy_release": "v1.0.0", "publish_state": "ready-to-pin", - "license": "Apache-2.0" + "license": "Apache-2.0", + "role": "frozen-snapshot" } } diff --git a/dist-pin/agent-cards/v1.1.0/.well-known/agent.json b/dist-pin/agent-cards/v1.1.0/.well-known/agent.json index 643b1c3..1478b15 100644 --- a/dist-pin/agent-cards/v1.1.0/.well-known/agent.json +++ b/dist-pin/agent-cards/v1.1.0/.well-known/agent.json @@ -1,7 +1,7 @@ { - "id": "x402://commandlayer.eth/agent-cards/v1.1.0", + "id": "x402://commandlayer.eth/agent-cards/current", "name": "CommandLayer Agent Cards Registry", - "description": "Well-known descriptor for the current CommandLayer Agent Cards v1.1.0 release line.", + "description": "Current discovery pointer for the CommandLayer Agent Cards release line.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", @@ -18,6 +18,9 @@ }, "commercial_agent": { "http": "https://commandlayer.org/agent-cards/meta/commercial-agent.json" + }, + "snapshot": { + "http": "https://commandlayer.org/agent-cards/.well-known/agent-cards-v1.1.0.json" } }, "meta": { @@ -25,6 +28,7 @@ "current_release": "v1.1.0", "legacy_release": "v1.0.0", "publish_state": "ready-to-pin", - "license": "Apache-2.0" + "license": "Apache-2.0", + "role": "current-pointer" } } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/authorizeagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/authorizeagent.eth.json index 705ebbe..dfc1145 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/authorizeagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/authorizeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/authorizeagent.eth.json", "id": "authorizeagent.eth", - "slug": "authorizeagent", - "display_name": "Authorize Agent", - "description": "Protocol reference card for the authorize verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "authorizeagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json" }, "entry": "x402://authorizeagent.eth/authorize/v1.1.0", - "capabilities": { - "operations": [ - "create_authorization", - "refresh_authorization", - "cancel_authorization" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "authorize", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/checkoutagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/checkoutagent.eth.json index 33e491d..3558ba7 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/checkoutagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/checkoutagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/checkoutagent.eth.json", "id": "checkoutagent.eth", - "slug": "checkoutagent", - "display_name": "Checkout Agent", - "description": "Protocol reference card for the checkout verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "checkoutagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json" }, "entry": "x402://checkoutagent.eth/checkout/v1.1.0", - "capabilities": { - "operations": [ - "price_cart", - "create_order", - "select_payment_method" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "checkout", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/purchaseagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/purchaseagent.eth.json index b733a30..d4ba254 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/purchaseagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/purchaseagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/purchaseagent.eth.json", "id": "purchaseagent.eth", - "slug": "purchaseagent", - "display_name": "Purchase Agent", - "description": "Protocol reference card for the purchase verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "purchaseagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json" }, "entry": "x402://purchaseagent.eth/purchase/v1.1.0", - "capabilities": { - "operations": [ - "capture_order", - "settle_purchase", - "record_order" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "purchase", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/shipagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/shipagent.eth.json index dc9773f..4c63d94 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/shipagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/shipagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/shipagent.eth.json", "id": "shipagent.eth", - "slug": "shipagent", - "display_name": "Ship Agent", - "description": "Protocol reference card for the ship verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "shipagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json" }, "entry": "x402://shipagent.eth/ship/v1.1.0", - "capabilities": { - "operations": [ - "create_shipment", - "assign_carrier", - "update_tracking" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "ship", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/verifyagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/verifyagent.eth.json index 7f790d1..49c05bc 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/verifyagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/verifyagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commercial/verifyagent.eth.json", "id": "verifyagent.eth", - "slug": "verifyagent", - "display_name": "Verify Agent", - "description": "Protocol reference card for the verify verb. Binds ENS identity, direct Commercial v1.1.0 schema URLs, and the canonical x402 payment-aware entrypoint.", "owner": "commandlayer.eth", "ens": "verifyagent.eth", "version": "1.1.0", @@ -22,36 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json" }, "entry": "x402://verifyagent.eth/verify/v1.1.0", - "capabilities": { - "operations": [ - "verify_payment", - "verify_identity", - "reconcile_outcome" - ], - "input_types": [ - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commercial", - "verify", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/analyzeagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/analyzeagent.eth.json index 07190ba..3d07c1f 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/analyzeagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/analyzeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/analyzeagent.eth.json", "id": "analyzeagent.eth", - "slug": "analyzeagent", - "display_name": "Analyze Agent", - "description": "Protocol reference card for the analyze verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "analyzeagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.receipt.schema.json" }, "entry": "x402://analyzeagent.eth/analyze/v1.1.0", - "capabilities": { - "operations": [ - "inspect_content", - "derive_signals", - "score_findings" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "analyze", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/classifyagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/classifyagent.eth.json index 43e0a8e..d184bbf 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/classifyagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/classifyagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/classifyagent.eth.json", "id": "classifyagent.eth", - "slug": "classifyagent", - "display_name": "Classify Agent", - "description": "Protocol reference card for the classify verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "classifyagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.receipt.schema.json" }, "entry": "x402://classifyagent.eth/classify/v1.1.0", - "capabilities": { - "operations": [ - "assign_labels", - "apply_taxonomy", - "rank_categories" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "classify", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/cleanagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/cleanagent.eth.json index b261d40..a15d94b 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/cleanagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/cleanagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/cleanagent.eth.json", "id": "cleanagent.eth", - "slug": "cleanagent", - "display_name": "Clean Agent", - "description": "Protocol reference card for the clean verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "cleanagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.receipt.schema.json" }, "entry": "x402://cleanagent.eth/clean/v1.1.0", - "capabilities": { - "operations": [ - "remove_noise", - "normalize_content", - "redact_sensitive_data" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "clean", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/convertagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/convertagent.eth.json index 40c3de7..3bdc90c 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/convertagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/convertagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/convertagent.eth.json", "id": "convertagent.eth", - "slug": "convertagent", - "display_name": "Convert Agent", - "description": "Protocol reference card for the convert verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "convertagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.receipt.schema.json" }, "entry": "x402://convertagent.eth/convert/v1.1.0", - "capabilities": { - "operations": [ - "transform_representation", - "map_fields", - "apply_conversion_rules" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "convert", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/describeagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/describeagent.eth.json index 0219af0..b0005ec 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/describeagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/describeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/describeagent.eth.json", "id": "describeagent.eth", - "slug": "describeagent", - "display_name": "Describe Agent", - "description": "Protocol reference card for the describe verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "describeagent.eth", "version": "1.1.0", @@ -22,39 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.receipt.schema.json" }, "entry": "x402://describeagent.eth/describe/v1.1.0", - "capabilities": { - "operations": [ - "describe_content", - "describe_entities", - "describe_changes" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "describe", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/explainagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/explainagent.eth.json index 1888485..ef11957 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/explainagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/explainagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/explainagent.eth.json", "id": "explainagent.eth", - "slug": "explainagent", - "display_name": "Explain Agent", - "description": "Protocol reference card for the explain verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "explainagent.eth", "version": "1.1.0", @@ -22,39 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.receipt.schema.json" }, "entry": "x402://explainagent.eth/explain/v1.1.0", - "capabilities": { - "operations": [ - "provide_rationale", - "explain_steps", - "clarify_outputs" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "explain", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/fetchagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/fetchagent.eth.json index 3068878..06d82b0 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/fetchagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/fetchagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/fetchagent.eth.json", "id": "fetchagent.eth", - "slug": "fetchagent", - "display_name": "Fetch Agent", - "description": "Protocol reference card for the fetch verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "fetchagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.receipt.schema.json" }, "entry": "x402://fetchagent.eth/fetch/v1.1.0", - "capabilities": { - "operations": [ - "retrieve_resource", - "resolve_redirects", - "capture_response_metadata" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "fetch", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/formatagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/formatagent.eth.json index d210cdf..2228429 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/formatagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/formatagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/formatagent.eth.json", "id": "formatagent.eth", - "slug": "formatagent", - "display_name": "Format Agent", - "description": "Protocol reference card for the format verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "formatagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/format/format.receipt.schema.json" }, "entry": "x402://formatagent.eth/format/v1.1.0", - "capabilities": { - "operations": [ - "normalize_layout", - "apply_style_rules", - "restructure_output" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/markdown", - "text/html", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "format", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/format/format.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/format/format.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/parseagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/parseagent.eth.json index ffeccc3..74aa386 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/parseagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/parseagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/parseagent.eth.json", "id": "parseagent.eth", - "slug": "parseagent", - "display_name": "Parse Agent", - "description": "Protocol reference card for the parse verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "parseagent.eth", "version": "1.1.0", @@ -22,38 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.receipt.schema.json" }, "entry": "x402://parseagent.eth/parse/v1.1.0", - "capabilities": { - "operations": [ - "extract_fields", - "produce_structure", - "identify_entities" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "parse", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/summarizeagent.eth.json b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/summarizeagent.eth.json index e4ffc45..88f0e58 100644 --- a/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/summarizeagent.eth.json +++ b/dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/summarizeagent.eth.json @@ -2,9 +2,6 @@ "$schema": "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json", "$id": "https://commandlayer.org/agent-cards/agents/v1.1.0/commons/summarizeagent.eth.json", "id": "summarizeagent.eth", - "slug": "summarizeagent", - "display_name": "Summarize Agent", - "description": "Protocol reference card for the summarize verb. Binds ENS identity, direct Commons v1.1.0 schema URLs, and the canonical x402 entrypoint.", "owner": "commandlayer.eth", "ens": "summarizeagent.eth", "version": "1.1.0", @@ -22,40 +19,5 @@ "receipt": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json" }, "entry": "x402://summarizeagent.eth/summarize/v1.1.0", - "capabilities": { - "operations": [ - "compress_content", - "extract_key_points", - "produce_brief" - ], - "input_types": [ - "text/plain", - "text/markdown", - "application/json" - ], - "output_types": [ - "text/plain", - "text/markdown", - "application/json" - ] - }, - "meta": { - "publisher": "CommandLayer", - "contact": "dev@commandlayer.org", - "tags": [ - "commons", - "summarize", - "protocol-reference" - ], - "links": [ - "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.request.schema.json", - "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json" - ] - }, - "networks": [ - "eip155:1" - ], - "license": "Apache-2.0", - "created_at": "2025-11-22T00:00:00Z", "updated_at": "2026-03-19T00:00:00Z" } diff --git a/dist-pin/agent-cards/v1.1.0/checksums-v1.1.0.txt b/dist-pin/agent-cards/v1.1.0/checksums-v1.1.0.txt new file mode 100644 index 0000000..f2f210e --- /dev/null +++ b/dist-pin/agent-cards/v1.1.0/checksums-v1.1.0.txt @@ -0,0 +1,22 @@ +1ae93095f6e7cd87a8ada146a433cc6d5c0a49f6e4eb21fa6eb27f5f3b8de375 .well-known/agent-cards-v1.1.0.json +8053f2ef89e117c3bd2c12e1a657b2f126d966b982e7812787c333a95ef9025f .well-known/agent.json +896415468650c3ebc36798cb94bbb673527025d71418c02824a4417d5d995a70 agents/v1.1.0/commercial/authorizeagent.eth.json +941a23447301d1dfcb65d376855539b0ed2d01283476be663fc12a2741c968e3 agents/v1.1.0/commercial/checkoutagent.eth.json +f143f8b819f0976962751637e7a8340df68d5164f386a95e1a747406d7fd3c01 agents/v1.1.0/commercial/purchaseagent.eth.json +3fce26fd7364f6bd890069e1b70e519a69fa261ee3b9685408301dd1b6fa5be6 agents/v1.1.0/commercial/shipagent.eth.json +38061ffdf7a9303e312f52b290165a75f5f0d563cefe037be2cf69ce87d27944 agents/v1.1.0/commercial/verifyagent.eth.json +c996c2b9bcedf3b32b76dc485400b7f159f87cfee0e698fad6c4019d6548dde6 agents/v1.1.0/commons/analyzeagent.eth.json +dcfa0bc0e51b0884a60c11044e2f2f4279246de3fbbf3dbedb3f905ae4513b88 agents/v1.1.0/commons/classifyagent.eth.json +7c7fc1cad0b0818953f9c26b800c7f401ec921dcb4720e3d11b2a0858a1455e1 agents/v1.1.0/commons/cleanagent.eth.json +a4c2a9885e87b7d6bd7c6bac4e69e908c28f58307090c684dbd77450df5fbe0b agents/v1.1.0/commons/convertagent.eth.json +49188ad6925fdeedd565937e33c3da090fd4c480d727666a660685a03e450be5 agents/v1.1.0/commons/describeagent.eth.json +6176071adf4c399892e0cfe16ecb887d7b61ffbf80915e71a4db809b81d1a709 agents/v1.1.0/commons/explainagent.eth.json +9abc63ea91f4d3567c2569112a63333e65cec4478e0c56e5f0764a4b734b1518 agents/v1.1.0/commons/fetchagent.eth.json +0e031039ecc2723abb88f51c4c906a5fcca6bb3f09bf3cfde33782470d039fba agents/v1.1.0/commons/formatagent.eth.json +f0a6a56dea548cd9027fd5529d0ff86e5e5bb925f6183df2678d9c286b2e2a1d agents/v1.1.0/commons/parseagent.eth.json +3a3b4a145d949e9e7ef00611e0dc29929416fcaf6ba35b52d1c2c2e532a80843 agents/v1.1.0/commons/summarizeagent.eth.json +e477342d1f7e9d7deb06beb4fc203705aaf01fa5f8107ebc30ecb0955d67c99b meta/commercial-agent.json +605a3e39424f5e2084acdaa3d96620c1932550c82c73346dcc94eee5e03fe657 meta/commons-agent.json +8c2c80ed946c9a78fd0ef79d607539cbb4d56fae424f5a6ba77270a5fb87ec1b meta/manifest.json +5e923891a3fca91f5165453f6b8ecf3dce8d53e46f2643f9bcbbcd3b0a861a8e schemas/v1.1.0/agent.card.schema.json +471869ca417da0fd6e92726bbda0e9ea8083315ab9e3c9689254d5790405fc46 schemas/v1.1.0/agent.descriptor.schema.json diff --git a/dist-pin/agent-cards/v1.1.0/checksums.txt b/dist-pin/agent-cards/v1.1.0/checksums.txt deleted file mode 100644 index 28c0fe2..0000000 --- a/dist-pin/agent-cards/v1.1.0/checksums.txt +++ /dev/null @@ -1,65 +0,0 @@ -cfb2adbfe8de109f249e9019596b38cb38816375e50752c2188e480d140479d7 .well-known/agent-cards-v1.1.0.json -9ed62edd51168143b431317454e4133ce3924fbb437fdbb1868be5a8d47b2670 .well-known/agent.json -8cbbb8edf6b3ec2e65dc54ce5bdd467a63aaaad1d90bbd251a729b238ef56507 agents/v1.0.0/commercial/authorizeagent.eth.json -bfad808d0e3b107df59887c9684303b87b4867d9887c9b1a035ca8b33b115cca agents/v1.0.0/commercial/checkoutagent.eth.json -0bbd1601794b3d18f63fc331b55888cb083e0f1a37d14c3c79679c237ec0414b agents/v1.0.0/commercial/purchaseagent.eth.json -15062e72b528e2f66e58a3d83ea617a4d9e699cb1eb25a0576cbf09f3808425d agents/v1.0.0/commercial/shipagent.eth.json -4079b22e3821dbfc141b1c9baaaf1cefb20b4c68af58725aacf8428e05d2e91a agents/v1.0.0/commercial/verifyagent.eth.json -2b14d78ad82435da6846e119bc9bf82f5b7661ccef53f4b7c25aaa50411d8812 agents/v1.0.0/commons/analyzeagent.eth.json -acb40f650362582daedda35fd1dbd78b7d1b6866e26cb3ee8ca090e0d18331e1 agents/v1.0.0/commons/classifyagent.eth.json -88943a385de72550bbd7454ddc8aabc6b4bc101449b571a1966e9e8c8266040e agents/v1.0.0/commons/cleanagent.eth.json -eb866bf8f0561590b823b1b04f4fed405fcae2f95b46f1a779cceb405efae05f agents/v1.0.0/commons/convertagent.eth.json -7f45a2abd1f542f37b0aaab639a5e02a15687235ec8704298fe9dfe39f5a5dbf agents/v1.0.0/commons/describeagent.eth.json -d8ae6333a4cc804361c0e427f0d82ee2d66b9129686fe85bcd97a3a9f1bf63f4 agents/v1.0.0/commons/explainagent.eth.json -3035cae9244887cc1451f329d9e20a15232197b39fe003a16a27c04bc10d8ff2 agents/v1.0.0/commons/fetchagent.eth.json -811465b0a47ee1b954802d97bfff3612e43914ed46c918936d3728a446175ce6 agents/v1.0.0/commons/formatagent.eth.json -4e66f7a76a302ac2fdcd7a8581c7c4fe6059028f801e2c8d155f513225aec805 agents/v1.0.0/commons/parseagent.eth.json -dc96aeffb629bec3c102771b8e5d99cd69d6b2bad7065d14b7c7ee2e8fc1eee2 agents/v1.0.0/commons/summarizeagent.eth.json -9f37939c58430df6efc118ec62e56d758a2c63ff6becc33b72056dff0abd01e4 agents/v1.1.0/commercial/authorizeagent.eth.json -0c2fb22fe4d5028b3218edfbc6783fa928df09c33cac3e4ae19dd6b4fb3b1d25 agents/v1.1.0/commercial/checkoutagent.eth.json -b92447ac389a28dd6d7bb9e48b62b4dcfe2d573db9e8e46769ff7f05b70c174c agents/v1.1.0/commercial/purchaseagent.eth.json -8845af9bfb06aae06fff06d7926417e532e417faf8b11e8d906b54769f180684 agents/v1.1.0/commercial/shipagent.eth.json -0d6ee78a0a977601d2544feed5f483d193b2d5e0790417725d1665a0e6859538 agents/v1.1.0/commercial/verifyagent.eth.json -e1b3893660ea726ff444392df7abb2eada8b7a0e89e3d18fa1da3247e2546ba9 agents/v1.1.0/commons/analyzeagent.eth.json -66ae37ace0e04714b1965c7661237843dc699e3e2d1f68620cff45f1132fe81f agents/v1.1.0/commons/classifyagent.eth.json -1b56892f20d39d4780a49b8f96dd769fa7d2178f9cb04fe3c60f78d726c1889e agents/v1.1.0/commons/cleanagent.eth.json -eb575e806ce80fb473d771e667caa96e4e01806345292408882c92de54f2e059 agents/v1.1.0/commons/convertagent.eth.json -0d25e3b86ca25c333a17a0cc4b9a1e0b5265dbe2bc13d88ab9da220eb5f1b613 agents/v1.1.0/commons/describeagent.eth.json -6459519e39a9107e4294a8ad5bb46ba091933823145853aba50f38a283fbd167 agents/v1.1.0/commons/explainagent.eth.json -60288c4c63ceb7936df2dc686b063c0b97f714afac3662f05a9f10da0b6043c4 agents/v1.1.0/commons/fetchagent.eth.json -2c6a69e8e91d712c09994547a42bfb4043cd5abd14df2ac3f43f4d8837d2e433 agents/v1.1.0/commons/formatagent.eth.json -7ff9756b5bcc1f989c0f36b76de8d0a8fa2d5287532dfe9717c9622eac5f6c64 agents/v1.1.0/commons/parseagent.eth.json -1ee1a0b04cbc2488fea75458f34b0b271b7801d8e01533e4ba5dd91f2aa9ae15 agents/v1.1.0/commons/summarizeagent.eth.json -3204719c980ffc68f7a317a01b9df67ca8655d5314168c6026415e06dcd8b0f8 dist-pin/agent-cards/v1.0.0/.well-known/agent.json -d3cde6eef58761fe5b88e3df5cb448002a289735df8f1c164fdc3b74193c61b9 dist-pin/agent-cards/v1.0.0/meta/commercial-agent.json -783178e57e9b754d939d90b9564740b45175fe0d360cfa4191716eb60e466c2e dist-pin/agent-cards/v1.0.0/meta/commons-agent.json -10c6ca12542dbdb21ccb1816ba7c98704789729e016b8dafe5ee2361f8b0e75c dist-pin/agent-cards/v1.0.0/meta/manifest.json -cfb2adbfe8de109f249e9019596b38cb38816375e50752c2188e480d140479d7 dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json -9ed62edd51168143b431317454e4133ce3924fbb437fdbb1868be5a8d47b2670 dist-pin/agent-cards/v1.1.0/.well-known/agent.json -9f37939c58430df6efc118ec62e56d758a2c63ff6becc33b72056dff0abd01e4 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/authorizeagent.eth.json -0c2fb22fe4d5028b3218edfbc6783fa928df09c33cac3e4ae19dd6b4fb3b1d25 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/checkoutagent.eth.json -b92447ac389a28dd6d7bb9e48b62b4dcfe2d573db9e8e46769ff7f05b70c174c dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/purchaseagent.eth.json -8845af9bfb06aae06fff06d7926417e532e417faf8b11e8d906b54769f180684 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/shipagent.eth.json -0d6ee78a0a977601d2544feed5f483d193b2d5e0790417725d1665a0e6859538 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commercial/verifyagent.eth.json -e1b3893660ea726ff444392df7abb2eada8b7a0e89e3d18fa1da3247e2546ba9 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/analyzeagent.eth.json -66ae37ace0e04714b1965c7661237843dc699e3e2d1f68620cff45f1132fe81f dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/classifyagent.eth.json -1b56892f20d39d4780a49b8f96dd769fa7d2178f9cb04fe3c60f78d726c1889e dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/cleanagent.eth.json -eb575e806ce80fb473d771e667caa96e4e01806345292408882c92de54f2e059 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/convertagent.eth.json -0d25e3b86ca25c333a17a0cc4b9a1e0b5265dbe2bc13d88ab9da220eb5f1b613 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/describeagent.eth.json -6459519e39a9107e4294a8ad5bb46ba091933823145853aba50f38a283fbd167 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/explainagent.eth.json -60288c4c63ceb7936df2dc686b063c0b97f714afac3662f05a9f10da0b6043c4 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/fetchagent.eth.json -2c6a69e8e91d712c09994547a42bfb4043cd5abd14df2ac3f43f4d8837d2e433 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/formatagent.eth.json -7ff9756b5bcc1f989c0f36b76de8d0a8fa2d5287532dfe9717c9622eac5f6c64 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/parseagent.eth.json -1ee1a0b04cbc2488fea75458f34b0b271b7801d8e01533e4ba5dd91f2aa9ae15 dist-pin/agent-cards/v1.1.0/agents/v1.1.0/commons/summarizeagent.eth.json -d4aa942ad535e5e5fd9103bc21dc94f45a69e87df820bf78af2c3b6db583dcca dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json -56c4da1b3716d804495aa54244f71f995ee4b22438f125c85e6148f1e5c5cf4e dist-pin/agent-cards/v1.1.0/meta/commons-agent.json -7bbc331142bff2e8ac6882617345d732cc4744e266a16e87decf6fe5dedf2be1 dist-pin/agent-cards/v1.1.0/meta/manifest.json -b7b573a464b3ba9f643958b716e72ce9eeb095a7c5b87bf2620eb53e7dc6afb3 dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json -0735b66ce8352a56cb18b22f60393dc669f323bcaf8e44aa1ce797e2274d524c dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json -d4aa942ad535e5e5fd9103bc21dc94f45a69e87df820bf78af2c3b6db583dcca meta/commercial-agent.json -56c4da1b3716d804495aa54244f71f995ee4b22438f125c85e6148f1e5c5cf4e meta/commons-agent.json -7bbc331142bff2e8ac6882617345d732cc4744e266a16e87decf6fe5dedf2be1 meta/manifest.json -ec6b2669daca50f99c9b8e04db7b8010169786788431cd74b68e547441216b8a schemas/v1.0.0/_shared/agent.card.base.schema.json -c22100701ae9ebad97cfc1cb468a0369e424a0cdcec2d62968b848ef5d14369c schemas/v1.0.0/_shared/agent.descriptor.schema.json -b7b573a464b3ba9f643958b716e72ce9eeb095a7c5b87bf2620eb53e7dc6afb3 schemas/v1.1.0/agent.card.schema.json -0735b66ce8352a56cb18b22f60393dc669f323bcaf8e44aa1ce797e2274d524c schemas/v1.1.0/agent.descriptor.schema.json diff --git a/dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json b/dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json index 21ea116..35f86eb 100644 --- a/dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json +++ b/dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json @@ -1,7 +1,7 @@ { "id": "x402://commandlayer.eth/commercial-agent/v1.1.0", "name": "CommandLayer Commercial Agent Registry", - "description": "Registry descriptor for CommandLayer Commercial Agent Cards v1.1.0.", + "description": "Registry descriptor for CommandLayer commercial Agent Cards v1.1.0.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", diff --git a/dist-pin/agent-cards/v1.1.0/meta/commons-agent.json b/dist-pin/agent-cards/v1.1.0/meta/commons-agent.json index b70451d..eb05389 100644 --- a/dist-pin/agent-cards/v1.1.0/meta/commons-agent.json +++ b/dist-pin/agent-cards/v1.1.0/meta/commons-agent.json @@ -1,7 +1,7 @@ { "id": "x402://commandlayer.eth/commons-agent/v1.1.0", "name": "CommandLayer Commons Agent Registry", - "description": "Registry descriptor for CommandLayer Commons Agent Cards v1.1.0.", + "description": "Registry descriptor for CommandLayer commons Agent Cards v1.1.0.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", diff --git a/dist-pin/agent-cards/v1.1.0/meta/manifest.json b/dist-pin/agent-cards/v1.1.0/meta/manifest.json index 7eca699..5911818 100644 --- a/dist-pin/agent-cards/v1.1.0/meta/manifest.json +++ b/dist-pin/agent-cards/v1.1.0/meta/manifest.json @@ -1,7 +1,7 @@ { "name": "@commandlayer/agent-cards", "version": "1.1.0", - "description": "Authoritative release index for CommandLayer Agent Cards v1.1.0.", + "description": "Canonical release index for CommandLayer Agent Cards v1.1.0.", "repository": "https://github.com/commandlayer/agent-cards", "homepage": "https://commandlayer.org/agent-cards", "owner": "commandlayer.eth", @@ -12,11 +12,15 @@ "current": "v1.1.0", "legacy": [ "v1.0.0" - ], - "superseded": [ - "v1.0.0" ] }, + "authority": { + "root": "canonical", + "manifest": "registry-index", + "well_known": "discovery-layer", + "dist_pin": "derivative-release-bundle", + "checksums": "integrity-surface" + }, "roots": { "cards_http": "https://commandlayer.org/agent-cards/agents/v1.1.0", "schemas_http": "https://commandlayer.org/agent-cards/schemas/v1.1.0", @@ -24,32 +28,18 @@ "discovery_http": "https://commandlayer.org/agent-cards/.well-known", "dist_pin": "dist-pin/agent-cards/v1.1.0" }, - "bindings": { - "commons": { - "source_repo": "https://github.com/commandlayer/protocol-commons", - "source_tag": "v1.1.0", - "source_root": "https://raw.githubusercontent.com/commandlayer/protocol-commons/refs/tags/v1.1.0/schemas/v1.1.0/commons", - "mirror_root": "https://commandlayer.org/schemas/v1.1.0/commons", - "shape": "flat", - "count": 10 - }, - "commercial": { - "source_repo": "https://github.com/commandlayer/protocol-commercial", - "source_tag": "v1.1.0", - "source_root": "https://raw.githubusercontent.com/commandlayer/protocol-commercial/refs/tags/v1.1.0/schemas/v1.1.0/commercial", - "mirror_root": "https://commandlayer.org/schemas/v1.1.0/commercial", - "shape": "flat", - "count": 5 - } - }, "checksums": { - "file": "https://commandlayer.org/agent-cards/checksums.txt", - "covers": [ - "agents", - "schemas", + "current": "https://commandlayer.org/agent-cards/checksums-v1.1.0.txt", + "legacy": "https://commandlayer.org/agent-cards/checksums-v1.0.0.txt", + "covers_current": [ + "agents/v1.1.0", + "schemas/v1.1.0", "meta", - ".well-known", - "dist-pin/agent-cards/v1.1.0" + ".well-known" + ], + "covers_legacy": [ + "agents/v1.0.0", + "schemas/v1.0.0" ] }, "entries": [ @@ -65,9 +55,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json", "entry": "x402://authorizeagent.eth/authorize/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "checkoutagent.eth", @@ -81,9 +69,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json", "entry": "x402://checkoutagent.eth/checkout/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "purchaseagent.eth", @@ -97,9 +83,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json", "entry": "x402://purchaseagent.eth/purchase/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "shipagent.eth", @@ -113,9 +97,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json", "entry": "x402://shipagent.eth/ship/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "verifyagent.eth", @@ -129,9 +111,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json", "entry": "x402://verifyagent.eth/verify/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "analyzeagent.eth", @@ -145,9 +125,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.receipt.schema.json", "entry": "x402://analyzeagent.eth/analyze/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "classifyagent.eth", @@ -161,9 +139,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.receipt.schema.json", "entry": "x402://classifyagent.eth/classify/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "cleanagent.eth", @@ -177,9 +153,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.receipt.schema.json", "entry": "x402://cleanagent.eth/clean/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "convertagent.eth", @@ -193,9 +167,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.receipt.schema.json", "entry": "x402://convertagent.eth/convert/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "describeagent.eth", @@ -209,9 +181,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.receipt.schema.json", "entry": "x402://describeagent.eth/describe/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "explainagent.eth", @@ -225,9 +195,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.receipt.schema.json", "entry": "x402://explainagent.eth/explain/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "fetchagent.eth", @@ -241,9 +209,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.receipt.schema.json", "entry": "x402://fetchagent.eth/fetch/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "formatagent.eth", @@ -257,9 +223,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/format/format.receipt.schema.json", "entry": "x402://formatagent.eth/format/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "parseagent.eth", @@ -273,9 +237,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.receipt.schema.json", "entry": "x402://parseagent.eth/parse/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "summarizeagent.eth", @@ -289,9 +251,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json", "entry": "x402://summarizeagent.eth/summarize/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" } ] } diff --git a/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json b/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json index 73d068b..a667355 100644 --- a/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json +++ b/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json @@ -5,10 +5,9 @@ "type": "object", "additionalProperties": false, "required": [ + "$schema", + "$id", "id", - "slug", - "display_name", - "description", "owner", "ens", "version", @@ -18,9 +17,6 @@ "schemas", "schemas_mirror", "entry", - "networks", - "license", - "created_at", "updated_at" ], "properties": { @@ -36,18 +32,6 @@ "type": "string", "pattern": "^[a-z0-9-]+\\.eth$" }, - "slug": { - "type": "string", - "pattern": "^[a-z0-9-]+$" - }, - "display_name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "minLength": 1 - }, "owner": { "type": "string", "pattern": "^[a-z0-9-]+\\.eth$" @@ -62,12 +46,7 @@ }, "status": { "type": "string", - "enum": [ - "protocol_reference", - "active", - "deprecated", - "revoked" - ] + "const": "protocol_reference" }, "class": { "type": "string", @@ -86,24 +65,22 @@ } }, "schemas": { - "type": "object", - "additionalProperties": false, - "required": [ - "request", - "receipt" - ], - "properties": { - "request": { - "type": "string", - "format": "uri" - }, - "receipt": { - "type": "string", - "format": "uri" - } - } + "$ref": "#/$defs/schemaPair" }, "schemas_mirror": { + "$ref": "#/$defs/schemaPair" + }, + "entry": { + "type": "string", + "pattern": "^x402://[^/]+/[^/]+/v1\\.1\\.0$" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "$defs": { + "schemaPair": { "type": "object", "additionalProperties": false, "required": [ @@ -120,92 +97,6 @@ "format": "uri" } } - }, - "entry": { - "type": "string", - "pattern": "^x402://[^/]+/[^/]+/v1\\.1\\.0$" - }, - "capabilities": { - "type": "object", - "additionalProperties": false, - "required": [ - "operations", - "input_types", - "output_types" - ], - "properties": { - "operations": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "input_types": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "output_types": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - } - } - }, - "meta": { - "type": "object", - "additionalProperties": false, - "required": [ - "publisher", - "contact", - "tags" - ], - "properties": { - "publisher": { - "type": "string" - }, - "contact": { - "type": "string", - "format": "email" - }, - "tags": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "links": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - } - } - }, - "networks": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "license": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" } } } diff --git a/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json b/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json index b01e6fa..0531001 100644 --- a/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json +++ b/dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json @@ -67,6 +67,9 @@ }, "commercial_agent": { "$ref": "#/$defs/httpLink" + }, + "snapshot": { + "$ref": "#/$defs/httpLink" } } }, @@ -78,7 +81,8 @@ "current_release", "legacy_release", "publish_state", - "license" + "license", + "role" ], "properties": { "agent_cards_version": { @@ -95,6 +99,13 @@ }, "license": { "type": "string" + }, + "role": { + "type": "string", + "enum": [ + "current-pointer", + "frozen-snapshot" + ] } } } diff --git a/meta/commercial-agent.json b/meta/commercial-agent.json index 21ea116..35f86eb 100644 --- a/meta/commercial-agent.json +++ b/meta/commercial-agent.json @@ -1,7 +1,7 @@ { "id": "x402://commandlayer.eth/commercial-agent/v1.1.0", "name": "CommandLayer Commercial Agent Registry", - "description": "Registry descriptor for CommandLayer Commercial Agent Cards v1.1.0.", + "description": "Registry descriptor for CommandLayer commercial Agent Cards v1.1.0.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", diff --git a/meta/commons-agent.json b/meta/commons-agent.json index b70451d..eb05389 100644 --- a/meta/commons-agent.json +++ b/meta/commons-agent.json @@ -1,7 +1,7 @@ { "id": "x402://commandlayer.eth/commons-agent/v1.1.0", "name": "CommandLayer Commons Agent Registry", - "description": "Registry descriptor for CommandLayer Commons Agent Cards v1.1.0.", + "description": "Registry descriptor for CommandLayer commons Agent Cards v1.1.0.", "owner": "commandlayer.eth", "ens": "commandlayer.eth", "version": "1.1.0", diff --git a/meta/manifest.json b/meta/manifest.json index 7eca699..5911818 100644 --- a/meta/manifest.json +++ b/meta/manifest.json @@ -1,7 +1,7 @@ { "name": "@commandlayer/agent-cards", "version": "1.1.0", - "description": "Authoritative release index for CommandLayer Agent Cards v1.1.0.", + "description": "Canonical release index for CommandLayer Agent Cards v1.1.0.", "repository": "https://github.com/commandlayer/agent-cards", "homepage": "https://commandlayer.org/agent-cards", "owner": "commandlayer.eth", @@ -12,11 +12,15 @@ "current": "v1.1.0", "legacy": [ "v1.0.0" - ], - "superseded": [ - "v1.0.0" ] }, + "authority": { + "root": "canonical", + "manifest": "registry-index", + "well_known": "discovery-layer", + "dist_pin": "derivative-release-bundle", + "checksums": "integrity-surface" + }, "roots": { "cards_http": "https://commandlayer.org/agent-cards/agents/v1.1.0", "schemas_http": "https://commandlayer.org/agent-cards/schemas/v1.1.0", @@ -24,32 +28,18 @@ "discovery_http": "https://commandlayer.org/agent-cards/.well-known", "dist_pin": "dist-pin/agent-cards/v1.1.0" }, - "bindings": { - "commons": { - "source_repo": "https://github.com/commandlayer/protocol-commons", - "source_tag": "v1.1.0", - "source_root": "https://raw.githubusercontent.com/commandlayer/protocol-commons/refs/tags/v1.1.0/schemas/v1.1.0/commons", - "mirror_root": "https://commandlayer.org/schemas/v1.1.0/commons", - "shape": "flat", - "count": 10 - }, - "commercial": { - "source_repo": "https://github.com/commandlayer/protocol-commercial", - "source_tag": "v1.1.0", - "source_root": "https://raw.githubusercontent.com/commandlayer/protocol-commercial/refs/tags/v1.1.0/schemas/v1.1.0/commercial", - "mirror_root": "https://commandlayer.org/schemas/v1.1.0/commercial", - "shape": "flat", - "count": 5 - } - }, "checksums": { - "file": "https://commandlayer.org/agent-cards/checksums.txt", - "covers": [ - "agents", - "schemas", + "current": "https://commandlayer.org/agent-cards/checksums-v1.1.0.txt", + "legacy": "https://commandlayer.org/agent-cards/checksums-v1.0.0.txt", + "covers_current": [ + "agents/v1.1.0", + "schemas/v1.1.0", "meta", - ".well-known", - "dist-pin/agent-cards/v1.1.0" + ".well-known" + ], + "covers_legacy": [ + "agents/v1.0.0", + "schemas/v1.0.0" ] }, "entries": [ @@ -65,9 +55,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json", "entry": "x402://authorizeagent.eth/authorize/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "checkoutagent.eth", @@ -81,9 +69,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json", "entry": "x402://checkoutagent.eth/checkout/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "purchaseagent.eth", @@ -97,9 +83,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json", "entry": "x402://purchaseagent.eth/purchase/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "shipagent.eth", @@ -113,9 +97,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json", "entry": "x402://shipagent.eth/ship/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "verifyagent.eth", @@ -129,9 +111,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json", "entry": "x402://verifyagent.eth/verify/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "analyzeagent.eth", @@ -145,9 +125,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/analyze/analyze.receipt.schema.json", "entry": "x402://analyzeagent.eth/analyze/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "classifyagent.eth", @@ -161,9 +139,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/classify/classify.receipt.schema.json", "entry": "x402://classifyagent.eth/classify/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "cleanagent.eth", @@ -177,9 +153,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/clean/clean.receipt.schema.json", "entry": "x402://cleanagent.eth/clean/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "convertagent.eth", @@ -193,9 +167,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/convert/convert.receipt.schema.json", "entry": "x402://convertagent.eth/convert/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "describeagent.eth", @@ -209,9 +181,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/describe/describe.receipt.schema.json", "entry": "x402://describeagent.eth/describe/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "explainagent.eth", @@ -225,9 +195,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/explain/explain.receipt.schema.json", "entry": "x402://explainagent.eth/explain/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "fetchagent.eth", @@ -241,9 +209,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/fetch/fetch.receipt.schema.json", "entry": "x402://fetchagent.eth/fetch/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "formatagent.eth", @@ -257,9 +223,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/format/format.receipt.schema.json", "entry": "x402://formatagent.eth/format/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "parseagent.eth", @@ -273,9 +237,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/parse/parse.receipt.schema.json", "entry": "x402://parseagent.eth/parse/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" }, { "id": "summarizeagent.eth", @@ -289,9 +251,7 @@ "schema_receipt_mirror": "https://commandlayer.org/schemas/v1.1.0/commons/summarize/summarize.receipt.schema.json", "entry": "x402://summarizeagent.eth/summarize/v1.1.0", "status": "protocol_reference", - "networks": [ - "eip155:1" - ] + "updated_at": "2026-03-19T00:00:00Z" } ] } diff --git a/package-lock.json b/package-lock.json index 7de6ebe..b64557d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,63 +9,8 @@ "version": "1.1.0", "license": "Apache-2.0", "devDependencies": { - "@types/node": "^22.0.0", "ajv": "^8.17.1", - "ajv-formats": "^3.0.1", - "glob": "^11.0.0", - "typescript": "^5.6.0" - }, - "description": "CommandLayer Agent Cards: ENS-bound identity and discovery metadata for Commons and Commercial agent verbs." - }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@types/node": { - "version": "22.19.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", - "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" + "ajv-formats": "^3.0.1" } }, "node_modules/ajv": { @@ -103,81 +48,6 @@ } } }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -202,80 +72,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -283,76 +79,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -362,281 +88,6 @@ "engines": { "node": ">=0.10.0" } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } } } } diff --git a/package.json b/package.json index c719cad..713de30 100644 --- a/package.json +++ b/package.json @@ -35,23 +35,23 @@ "meta/", "schemas/", "dist-pin/", - "checksums.txt", + "checksums-v1.0.0.txt", + "checksums-v1.1.0.txt", "LICENSE", "README.md" ], "scripts": { - "validate:cards": "node scripts/validate-cards.mjs", - "generate:checksums": "node scripts/generate-checksums.mjs", - "validate:checksums": "node scripts/generate-checksums.mjs --verify", - "typecheck": "tsc --noEmit", - "validate": "npm run validate:cards && npm run validate:checksums && npm run typecheck" + "validate:current": "node scripts/validate-cards.mjs --current", + "validate:legacy": "node scripts/validate-cards.mjs --legacy", + "validate:checksums": "node scripts/generate-checksums.mjs --verify --profile current", + "validate:release": "node scripts/validate-cards.mjs --release", + "generate:checksums:current": "node scripts/generate-checksums.mjs --profile current", + "generate:checksums:legacy": "node scripts/generate-checksums.mjs --profile legacy", + "validate": "npm run validate:current && npm run validate:checksums" }, "devDependencies": { - "@types/node": "^22.0.0", "ajv": "^8.17.1", - "ajv-formats": "^3.0.1", - "glob": "^11.0.0", - "typescript": "^5.6.0" + "ajv-formats": "^3.0.1" }, "overrides": { "fast-json-patch": "^3.1.1" diff --git a/schemas/v1.1.0/agent.card.schema.json b/schemas/v1.1.0/agent.card.schema.json index 73d068b..a667355 100644 --- a/schemas/v1.1.0/agent.card.schema.json +++ b/schemas/v1.1.0/agent.card.schema.json @@ -5,10 +5,9 @@ "type": "object", "additionalProperties": false, "required": [ + "$schema", + "$id", "id", - "slug", - "display_name", - "description", "owner", "ens", "version", @@ -18,9 +17,6 @@ "schemas", "schemas_mirror", "entry", - "networks", - "license", - "created_at", "updated_at" ], "properties": { @@ -36,18 +32,6 @@ "type": "string", "pattern": "^[a-z0-9-]+\\.eth$" }, - "slug": { - "type": "string", - "pattern": "^[a-z0-9-]+$" - }, - "display_name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "minLength": 1 - }, "owner": { "type": "string", "pattern": "^[a-z0-9-]+\\.eth$" @@ -62,12 +46,7 @@ }, "status": { "type": "string", - "enum": [ - "protocol_reference", - "active", - "deprecated", - "revoked" - ] + "const": "protocol_reference" }, "class": { "type": "string", @@ -86,24 +65,22 @@ } }, "schemas": { - "type": "object", - "additionalProperties": false, - "required": [ - "request", - "receipt" - ], - "properties": { - "request": { - "type": "string", - "format": "uri" - }, - "receipt": { - "type": "string", - "format": "uri" - } - } + "$ref": "#/$defs/schemaPair" }, "schemas_mirror": { + "$ref": "#/$defs/schemaPair" + }, + "entry": { + "type": "string", + "pattern": "^x402://[^/]+/[^/]+/v1\\.1\\.0$" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "$defs": { + "schemaPair": { "type": "object", "additionalProperties": false, "required": [ @@ -120,92 +97,6 @@ "format": "uri" } } - }, - "entry": { - "type": "string", - "pattern": "^x402://[^/]+/[^/]+/v1\\.1\\.0$" - }, - "capabilities": { - "type": "object", - "additionalProperties": false, - "required": [ - "operations", - "input_types", - "output_types" - ], - "properties": { - "operations": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "input_types": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "output_types": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - } - } - }, - "meta": { - "type": "object", - "additionalProperties": false, - "required": [ - "publisher", - "contact", - "tags" - ], - "properties": { - "publisher": { - "type": "string" - }, - "contact": { - "type": "string", - "format": "email" - }, - "tags": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "links": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - } - } - }, - "networks": { - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "license": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" } } } diff --git a/schemas/v1.1.0/agent.descriptor.schema.json b/schemas/v1.1.0/agent.descriptor.schema.json index b01e6fa..0531001 100644 --- a/schemas/v1.1.0/agent.descriptor.schema.json +++ b/schemas/v1.1.0/agent.descriptor.schema.json @@ -67,6 +67,9 @@ }, "commercial_agent": { "$ref": "#/$defs/httpLink" + }, + "snapshot": { + "$ref": "#/$defs/httpLink" } } }, @@ -78,7 +81,8 @@ "current_release", "legacy_release", "publish_state", - "license" + "license", + "role" ], "properties": { "agent_cards_version": { @@ -95,6 +99,13 @@ }, "license": { "type": "string" + }, + "role": { + "type": "string", + "enum": [ + "current-pointer", + "frozen-snapshot" + ] } } } diff --git a/scripts/add-schemas-mirror.mjs b/scripts/add-schemas-mirror.mjs deleted file mode 100644 index f24c296..0000000 --- a/scripts/add-schemas-mirror.mjs +++ /dev/null @@ -1,40 +0,0 @@ -import fs from "fs"; -import path from "path"; - -const AGENTS_DIR = path.join(process.cwd(), "agents"); - -// Canonical roots -const IPFS_ROOT = "ipfs://bafybeigvf6nkzws7dblos74dqqjkguwkrwn4a2c27ieygoxmgofyzdkz6m"; -const HTTP_ROOT = "https://commandlayer.org/schemas/v1.0.0"; - -for (const file of fs.readdirSync(AGENTS_DIR)) { - if (!file.endsWith(".json")) continue; - - const fp = path.join(AGENTS_DIR, file); - const raw = fs.readFileSync(fp, "utf8"); - const card = JSON.parse(raw); - - if (!card.schemas || !card.schemas.request || !card.schemas.receipt) { - console.error(`Skipping ${file}: missing schemas.request or schemas.receipt`); - continue; - } - - const reqIpfs = card.schemas.request; - const recIpfs = card.schemas.receipt; - - if (!reqIpfs.startsWith(IPFS_ROOT) || !recIpfs.startsWith(IPFS_ROOT)) { - console.error(`WARNING: ${file} has non-standard IPFS schema URLs, leaving as-is`); - continue; - } - - const reqHttp = reqIpfs.replace(IPFS_ROOT + "/commons", HTTP_ROOT + "/commons"); - const recHttp = recIpfs.replace(IPFS_ROOT + "/commons", HTTP_ROOT + "/commons"); - - card.schemas_mirror = { - request: reqHttp, - receipt: recHttp - }; - - fs.writeFileSync(fp, JSON.stringify(card, null, 2) + "\n", "utf8"); - console.log(`Updated schemas_mirror for ${file}`); -} diff --git a/scripts/generate-checksums.mjs b/scripts/generate-checksums.mjs index d193ec7..415a75a 100644 --- a/scripts/generate-checksums.mjs +++ b/scripts/generate-checksums.mjs @@ -4,89 +4,73 @@ import url from "node:url"; import crypto from "node:crypto"; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); -const ROOT_DIR = path.join(__dirname, ".."); - -const ROOTS = ["agents", "meta", ".well-known", "schemas", "dist-pin"]; - -// Ignore platform / tooling junk + the checksum itself -const EXCLUDE_PREFIXES = ["node_modules/", ".git/"]; -const EXCLUDE_BASENAMES = new Set([ - "checksums.txt", - ".DS_Store", - "Thumbs.db", -]); - -function isDir(p) { - try { return fs.statSync(p).isDirectory(); } catch { return false; } +const ROOT = path.join(__dirname, ".."); + +const PROFILES = { + current: { + roots: [".well-known", "agents/v1.1.0", "meta", "schemas/v1.1.0"], + output: "checksums-v1.1.0.txt" + }, + legacy: { + roots: ["agents/v1.0.0", "schemas/v1.0.0"], + output: "checksums-v1.0.0.txt" + } +}; + +const profileName = (() => { + const arg = process.argv.find((entry) => entry.startsWith("--profile=")); + if (arg) return arg.split("=")[1]; + const index = process.argv.indexOf("--profile"); + return index >= 0 ? process.argv[index + 1] : "current"; +})(); + +if (!PROFILES[profileName]) { + console.error(`❌ Unknown checksum profile: ${profileName}`); + process.exit(1); } -function sha256File(relPath) { - const fullPath = path.join(ROOT_DIR, relPath); +function sha256File(relativePath) { + const fullPath = path.join(ROOT, relativePath); const buf = fs.readFileSync(fullPath); return crypto.createHash("sha256").update(buf).digest("hex"); } -function listFilesUnder(relativeRoot) { +function collectFiles(relativeRoot) { const out = []; - const rootPath = path.join(ROOT_DIR, relativeRoot); - if (!isDir(rootPath)) return out; - - function walk(currentPath) { - const entries = fs.readdirSync(currentPath, { withFileTypes: true }); - - for (const entry of entries) { - const full = path.join(currentPath, entry.name); - const rel = path.relative(ROOT_DIR, full).replace(/\\/g, "/"); - - // directory traversal - if (entry.isDirectory()) { - // skip excluded directories early - if (EXCLUDE_PREFIXES.some((p) => rel.startsWith(p))) continue; - walk(full); - continue; - } - - // file filters - if (EXCLUDE_PREFIXES.some((p) => rel.startsWith(p))) continue; - if (EXCLUDE_BASENAMES.has(path.basename(rel))) continue; - - out.push(rel); + const start = path.join(ROOT, relativeRoot); + if (!fs.existsSync(start)) return out; + function walk(dir) { + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) walk(full); + if (entry.isFile()) out.push(path.relative(ROOT, full).replace(/\\/g, "/")); } } - - walk(rootPath); + walk(start); return out; } -function buildChecksumsText() { - let files = []; - for (const root of ROOTS) files = files.concat(listFilesUnder(root)); - - // stable sort, independent of locale - files.sort((a, b) => (a < b ? -1 : a > b ? 1 : 0)); - - const lines = files.map((relPath) => `${sha256File(relPath)} ${relPath}`); - return { text: lines.join("\n") + "\n", count: files.length }; +function build(profile) { + const files = profile.roots.flatMap(collectFiles).sort(); + return { + text: files.map((relativePath) => `${sha256File(relativePath)} ${relativePath}`).join("\n") + "\n", + count: files.length + }; } -function main() { - const verify = process.argv.includes("--verify"); - const outputPath = path.join(ROOT_DIR, "checksums.txt"); +const verify = process.argv.includes("--verify"); +const profile = PROFILES[profileName]; +const outputPath = path.join(ROOT, profile.output); +const { text, count } = build(profile); - const { text, count } = buildChecksumsText(); - - if (verify) { - const existing = fs.existsSync(outputPath) ? fs.readFileSync(outputPath, "utf8") : ""; - if (existing !== text) { - console.error("❌ checksums.txt does NOT match current repo contents."); - process.exit(1); - } - console.log("✅ checksums.txt matches the current repo contents."); - return; +if (verify) { + const existing = fs.existsSync(outputPath) ? fs.readFileSync(outputPath, "utf8") : ""; + if (existing !== text) { + console.error(`❌ ${profile.output} does NOT match ${profileName} artifacts.`); + process.exit(1); } - + console.log(`✅ ${profile.output} matches ${profileName} artifacts.`); +} else { fs.writeFileSync(outputPath, text, "utf8"); - console.log(`✅ checksums.txt written with ${count} entries.`); + console.log(`✅ ${profile.output} written with ${count} entries.`); } - -main(); diff --git a/scripts/reorder-agent-cards.mjs b/scripts/reorder-agent-cards.mjs deleted file mode 100644 index 653e1b6..0000000 --- a/scripts/reorder-agent-cards.mjs +++ /dev/null @@ -1,56 +0,0 @@ -import fs from "fs"; -import path from "path"; - -const AGENTS_DIR = path.join(process.cwd(), "agents"); - -// Desired key order for AgentCards -const ORDER = [ - "$schema", - "$id", - "id", - "slug", - "display_name", - "description", - "owner", - "ens", - "version", - "status", - "class", - "implements", - "schemas", - "schemas_mirror", - "entry", - "capabilities", - "meta", - "networks", - "license", - "created_at", - "updated_at" -]; - -for (const file of fs.readdirSync(AGENTS_DIR)) { - if (!file.endsWith(".json")) continue; - - const fp = path.join(AGENTS_DIR, file); - const raw = fs.readFileSync(fp, "utf8"); - const card = JSON.parse(raw); - - const newCard = {}; - - // Apply canonical order - for (const key of ORDER) { - if (Object.prototype.hasOwnProperty.call(card, key)) { - newCard[key] = card[key]; - } - } - - // Preserve any unexpected extra keys (just in case) - for (const key of Object.keys(card)) { - if (!Object.prototype.hasOwnProperty.call(newCard, key)) { - newCard[key] = card[key]; - } - } - - fs.writeFileSync(fp, JSON.stringify(newCard, null, 2) + "\n", "utf8"); - console.log(`Reordered keys for ${file}`); -} diff --git a/scripts/validate-cards.mjs b/scripts/validate-cards.mjs index 8b20899..01cb4b7 100644 --- a/scripts/validate-cards.mjs +++ b/scripts/validate-cards.mjs @@ -6,13 +6,19 @@ import addFormats from "ajv-formats"; const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); const ROOT = path.join(__dirname, ".."); - -const commonsVerbs = ["analyze", "classify", "clean", "convert", "describe", "explain", "fetch", "format", "parse", "summarize"]; -const commercialVerbs = ["authorize", "checkout", "purchase", "ship", "verify"]; -const expectedV11 = { - commons: commonsVerbs.map((verb) => `${verb}agent.eth.json`), - commercial: commercialVerbs.map((verb) => `${verb}agent.eth.json`) -}; +const CURRENT_LINE = "v1.1.0"; +const LEGACY_LINE = "v1.0.0"; +const COMMONS = ["analyze", "classify", "clean", "convert", "describe", "explain", "fetch", "format", "parse", "summarize"]; +const COMMERCIAL = ["authorize", "checkout", "purchase", "ship", "verify"]; +const EXPECTED = [ + ...COMMONS.map((verb) => ({ tier: "commons", verb })), + ...COMMERCIAL.map((verb) => ({ tier: "commercial", verb })) +].sort((a, b) => `${a.tier}/${a.verb}`.localeCompare(`${b.tier}/${b.verb}`)); +const RELEASE_URLS = [ + "https://commandlayer.org/agent-cards/meta/manifest.json", + "https://commandlayer.org/agent-cards/.well-known/agent.json", + "https://commandlayer.org/agent-cards/.well-known/agent-cards-v1.1.0.json" +]; const ajv = new Ajv2020({ strict: true, allErrors: true }); addFormats(ajv); @@ -20,109 +26,182 @@ addFormats(ajv); function loadJson(relativePath) { return JSON.parse(fs.readFileSync(path.join(ROOT, relativePath), "utf8")); } - function readJson(fullPath) { return JSON.parse(fs.readFileSync(fullPath, "utf8")); } - -function collectJsonFiles(relativeRoot) { - const root = path.join(ROOT, relativeRoot); - if (!fs.existsSync(root)) return []; +function readText(relativePath) { + return fs.readFileSync(path.join(ROOT, relativePath), "utf8"); +} +function collectJson(relativeRoot) { + const start = path.join(ROOT, relativeRoot); const out = []; + if (!fs.existsSync(start)) return out; function walk(dir) { for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { const full = path.join(dir, entry.name); if (entry.isDirectory()) walk(full); - else if (entry.isFile() && entry.name.endsWith(".json")) out.push(full); + if (entry.isFile() && entry.name.endsWith(".json")) out.push(full); } } - walk(root); + walk(start); return out.sort(); } - function fail(message, details) { console.error(`❌ ${message}`); if (details) console.error(details); process.exitCode = 1; } +function ok(message) { console.log(`✅ ${message}`); } const descriptorValidate = ajv.compile(loadJson("schemas/v1.1.0/agent.descriptor.schema.json")); -const v10Validate = ajv.compile(loadJson("schemas/v1.0.0/_shared/agent.card.base.schema.json")); -const v11Validate = ajv.compile(loadJson("schemas/v1.1.0/agent.card.schema.json")); - -function validateDescriptor(relativePath) { - const data = loadJson(relativePath); - if (!descriptorValidate(data)) fail(`${relativePath} failed descriptor validation.`, descriptorValidate.errors); - else console.log(`✅ Descriptor valid: ${relativePath}`); +const legacyValidate = ajv.compile(loadJson("schemas/v1.0.0/_shared/agent.card.base.schema.json")); +const currentValidate = ajv.compile(loadJson("schemas/v1.1.0/agent.card.schema.json")); + +function validateCurrentDescriptors() { + const pointer = loadJson(".well-known/agent.json"); + const snapshot = loadJson(".well-known/agent-cards-v1.1.0.json"); + if (!descriptorValidate(pointer)) fail(".well-known/agent.json failed descriptor validation.", descriptorValidate.errors); + if (!descriptorValidate(snapshot)) fail(".well-known/agent-cards-v1.1.0.json failed descriptor validation.", descriptorValidate.errors); + if (pointer.meta.role !== "current-pointer") fail(".well-known/agent.json must declare role current-pointer."); + if (snapshot.meta.role !== "frozen-snapshot") fail(".well-known/agent-cards-v1.1.0.json must declare role frozen-snapshot."); + if (pointer.registry.snapshot?.http !== "https://commandlayer.org/agent-cards/.well-known/agent-cards-v1.1.0.json") fail(".well-known/agent.json must point to the frozen snapshot."); + if (snapshot.id !== "x402://commandlayer.eth/agent-cards/v1.1.0") fail(".well-known/agent-cards-v1.1.0.json must be version-addressed."); + ok("Discovery pointer and frozen snapshot are valid."); } -function validateExpectedV11Set() { - for (const tier of Object.keys(expectedV11)) { - const dir = path.join(ROOT, "agents", "v1.1.0", tier); - const actual = fs.readdirSync(dir).filter((name) => name.endsWith(".json")).sort(); - const expected = [...expectedV11[tier]].sort(); - if (JSON.stringify(actual) !== JSON.stringify(expected)) { - fail(`agents/v1.1.0/${tier} does not match the authoritative card set.`, { expected, actual }); - } else { - console.log(`✅ Authoritative card set present: agents/v1.1.0/${tier}`); +function validateCurrentCardsAndManifest() { + const manifest = loadJson("meta/manifest.json"); + const cards = collectJson("agents/v1.1.0"); + const expectedPaths = EXPECTED.map(({ tier, verb }) => `agents/v1.1.0/${tier}/${verb}agent.eth.json`); + const actualPaths = cards.map((fullPath) => path.relative(ROOT, fullPath).replace(/\\/g, "/")); + if (JSON.stringify(actualPaths) !== JSON.stringify(expectedPaths)) fail("Current card set does not match the authoritative v1.1.0 inventory.", { expectedPaths, actualPaths }); + if (manifest.release_lines.current !== CURRENT_LINE) fail("Manifest current line must be v1.1.0."); + if (manifest.authority?.dist_pin !== "derivative-release-bundle") fail("Manifest must classify dist-pin as derivative-release-bundle."); + if (manifest.checksums?.current !== "https://commandlayer.org/agent-cards/checksums-v1.1.0.txt") fail("Manifest must point at checksums-v1.1.0.txt."); + if (manifest.entries.length !== EXPECTED.length) fail("Manifest entry count does not match current cards."); + + const manifestById = new Map(manifest.entries.map((entry) => [entry.id, entry])); + for (const fullPath of cards) { + const relativePath = path.relative(ROOT, fullPath).replace(/\\/g, "/"); + const [, , tier, fileName] = relativePath.split("/"); + const card = readJson(fullPath); + if (!currentValidate(card)) { + fail(`Current card failed schema validation: ${relativePath}`, currentValidate.errors); + continue; } + const verb = card.implements[0]; + const expectedId = `https://commandlayer.org/agent-cards/${relativePath}`; + if (card.$id !== expectedId) fail(`${relativePath}: $id mismatch.`); + if (card.id !== card.ens) fail(`${relativePath}: id must equal ens.`); + if (fileName !== `${card.ens}.json`) fail(`${relativePath}: filename mismatch.`); + if (card.class !== tier) fail(`${relativePath}: class mismatch.`); + if (card.entry !== `x402://${card.ens}/${verb}/v${card.version}`) fail(`${relativePath}: entry mismatch.`); + const rawRoot = tier === "commons" ? "protocol-commons" : "protocol-commercial"; + const rawPattern = new RegExp(`^https://raw\\.githubusercontent\\.com/commandlayer/${rawRoot}/refs/tags/v1\\.1\\.0/schemas/v1\\.1\\.0/${tier}/([^/]+)/\\1\\.(request|receipt)\\.schema\\.json$`); + const mirrorPattern = new RegExp(`^https://commandlayer\\.org/schemas/v1\\.1\\.0/${tier}/([^/]+)/\\1\\.(request|receipt)\\.schema\\.json$`); + if (!rawPattern.test(card.schemas.request) || !rawPattern.test(card.schemas.receipt)) fail(`${relativePath}: source schema URLs are invalid.`); + if (!mirrorPattern.test(card.schemas_mirror.request) || !mirrorPattern.test(card.schemas_mirror.receipt)) fail(`${relativePath}: mirror schema URLs are invalid.`); + + const entry = manifestById.get(card.id); + if (!entry) { + fail(`${relativePath}: missing manifest entry.`); + continue; + } + const expectedEntry = { + id: card.id, + class: card.class, + verb, + version: card.version, + agent_card: `https://commandlayer.org/agent-cards/${relativePath}`, + schema_request: card.schemas.request, + schema_receipt: card.schemas.receipt, + schema_request_mirror: card.schemas_mirror.request, + schema_receipt_mirror: card.schemas_mirror.receipt, + entry: card.entry, + status: card.status, + updated_at: card.updated_at + }; + for (const [key, value] of Object.entries(expectedEntry)) { + if (entry[key] !== value) fail(`${relativePath}: manifest field ${key} drifted.`); + } + } + for (const entry of manifest.entries) { + const expectedPath = `agents/v1.1.0/${entry.class}/${entry.verb}agent.eth.json`; + if (!actualPaths.includes(expectedPath)) fail(`Manifest contains extra entry ${entry.id}.`); } + ok("Current cards and manifest are aligned."); } -function validateCard(fullPath) { - const relativePath = path.relative(ROOT, fullPath).replace(/\\/g, "/"); - const [, folderVersion, tier, fileName] = relativePath.split("/"); - const card = readJson(fullPath); - const validate = folderVersion === "v1.1.0" ? v11Validate : v10Validate; - if (!validate(card)) { - fail(`Agent Card failed schema validation: ${relativePath}`, validate.errors); - return; +function validateDistPin() { + const pairs = [ + [".well-known/agent.json", "dist-pin/agent-cards/v1.1.0/.well-known/agent.json"], + [".well-known/agent-cards-v1.1.0.json", "dist-pin/agent-cards/v1.1.0/.well-known/agent-cards-v1.1.0.json"], + ["meta/manifest.json", "dist-pin/agent-cards/v1.1.0/meta/manifest.json"], + ["meta/commons-agent.json", "dist-pin/agent-cards/v1.1.0/meta/commons-agent.json"], + ["meta/commercial-agent.json", "dist-pin/agent-cards/v1.1.0/meta/commercial-agent.json"], + ["schemas/v1.1.0/agent.card.schema.json", "dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.card.schema.json"], + ["schemas/v1.1.0/agent.descriptor.schema.json", "dist-pin/agent-cards/v1.1.0/schemas/v1.1.0/agent.descriptor.schema.json"], + ["checksums-v1.1.0.txt", "dist-pin/agent-cards/v1.1.0/checksums-v1.1.0.txt"] + ]; + for (const { tier, verb } of EXPECTED) { + pairs.push([ + `agents/v1.1.0/${tier}/${verb}agent.eth.json`, + `dist-pin/agent-cards/v1.1.0/agents/v1.1.0/${tier}/${verb}agent.eth.json` + ]); } + for (const [source, target] of pairs) { + if (!fs.existsSync(path.join(ROOT, target))) fail(`Missing dist-pin artifact: ${target}`); + else if (readText(source) !== readText(target)) fail(`dist-pin drift detected: ${target}`); + } + ok("dist-pin v1.1.0 matches canonical root artifacts."); +} - const primaryVerb = card.implements[0]; - const expectedId = `https://commandlayer.org/agent-cards/${relativePath}`; - const expectedEntry = `x402://${card.ens}/${primaryVerb}/v${card.version}`; - const semverFolder = folderVersion.replace(/^v/, ""); - - if (card.version !== semverFolder) fail(`${relativePath}: version mismatch.`); - if (card.$id !== expectedId) fail(`${relativePath}: $id mismatch.`); - if (card.entry !== expectedEntry) fail(`${relativePath}: entry mismatch.`); - if (card.id !== card.ens) fail(`${relativePath}: id must equal ens.`); - if (card.class !== tier) fail(`${relativePath}: class mismatch.`); - if (fileName !== `${card.ens}.json`) fail(`${relativePath}: filename mismatch.`); - if (new Date(card.updated_at).getTime() < new Date(card.created_at).getTime()) fail(`${relativePath}: updated_at must be >= created_at.`); - - if (folderVersion === "v1.1.0") { - const expectedSchema = "https://commandlayer.org/agent-cards/schemas/v1.1.0/agent.card.schema.json"; - if (card.$schema !== expectedSchema) fail(`${relativePath}: stale or invalid $schema.`); - if (JSON.stringify(card).includes("_shared")) fail(`${relativePath}: current v1.1.0 card must not reference _shared.`); - - const rawCommons = /^https:\/\/raw\.githubusercontent\.com\/commandlayer\/protocol-commons\/refs\/tags\/v1\.1\.0\/schemas\/v1\.1\.0\/commons\/([^/]+)\/\1\.(request|receipt)\.schema\.json$/; - const rawCommercial = /^https:\/\/raw\.githubusercontent\.com\/commandlayer\/protocol-commercial\/refs\/tags\/v1\.1\.0\/schemas\/v1\.1\.0\/commercial\/([^/]+)\/\1\.(request|receipt)\.schema\.json$/; - const mirrorCommons = /^https:\/\/commandlayer\.org\/schemas\/v1\.1\.0\/commons\/([^/]+)\/\1\.(request|receipt)\.schema\.json$/; - const mirrorCommercial = /^https:\/\/commandlayer\.org\/schemas\/v1\.1\.0\/commercial\/([^/]+)\/\1\.(request|receipt)\.schema\.json$/; - - if (tier === "commons") { - if (!rawCommons.test(card.schemas.request) || !rawCommons.test(card.schemas.receipt)) fail(`${relativePath}: stale Commons source schema paths.`); - if (!mirrorCommons.test(card.schemas_mirror.request) || !mirrorCommons.test(card.schemas_mirror.receipt)) fail(`${relativePath}: stale Commons mirror schema paths.`); +function validateLegacy() { + for (const fullPath of collectJson("agents/v1.0.0")) { + const relativePath = path.relative(ROOT, fullPath).replace(/\\/g, "/"); + const card = readJson(fullPath); + if (!legacyValidate(card)) fail(`Legacy card failed schema validation: ${relativePath}`, legacyValidate.errors); + const mirrors = card.schemas_mirror || {}; + for (const value of Object.values(mirrors)) { + if (String(value).includes("COMMERCIAL_SCHEMAS_CID")) fail(`${relativePath}: placeholder mirror URL remains.`); } - if (tier === "commercial") { - if (!rawCommercial.test(card.schemas.request) || !rawCommercial.test(card.schemas.receipt)) fail(`${relativePath}: stale Commercial source schema paths.`); - if (!mirrorCommercial.test(card.schemas_mirror.request) || !mirrorCommercial.test(card.schemas_mirror.receipt)) fail(`${relativePath}: stale Commercial mirror schema paths.`); - } - if (!card.schemas.request.includes(`/${primaryVerb}/`) || !card.schemas.receipt.includes(`/${primaryVerb}/`)) fail(`${relativePath}: schema URLs must match implements[0].`); + if (JSON.stringify(card).includes("pgp_fingerprint")) fail(`${relativePath}: obsolete pgp_fingerprint remains.`); } + ok("Legacy v1.0.0 cards are explicitly archival and free of placeholders."); +} - console.log(`✅ Agent Card valid: ${relativePath}`); +async function checkUrl(target) { + const response = await fetch(target, { method: "GET", redirect: "follow" }); + if (!response.ok) throw new Error(`HTTP ${response.status}`); } -function main() { - validateDescriptor(".well-known/agent.json"); - validateDescriptor(".well-known/agent-cards-v1.1.0.json"); - validateExpectedV11Set(); - for (const file of collectJsonFiles("agents")) validateCard(file); - if (process.exitCode) process.exit(process.exitCode); - console.log("✅ All Agent Card validations completed successfully."); +async function validateRelease() { + const manifest = loadJson("meta/manifest.json"); + const urls = new Set(RELEASE_URLS); + for (const entry of manifest.entries) { + [entry.agent_card, entry.schema_request, entry.schema_receipt, entry.schema_request_mirror, entry.schema_receipt_mirror].forEach((value) => urls.add(value)); + } + for (const target of urls) { + try { + await checkUrl(target); + ok(`Resolved ${target}`); + } catch (error) { + fail(`Release URL check failed for ${target}.`, error.message); + } + } + for (const entry of manifest.entries) { + if (!/^x402:\/\/[a-z0-9-]+\.eth\/[a-z][a-z0-9-]*\/v1\.1\.0$/.test(entry.entry)) fail(`Release entry URI invalid: ${entry.entry}`); + } + if (!process.exitCode) ok("Release-time external bindings are reachable and well-formed."); } -main(); +const mode = process.argv.includes("--legacy") ? "legacy" : process.argv.includes("--release") ? "release" : "current"; + +if (mode === "current") { + validateCurrentDescriptors(); + validateCurrentCardsAndManifest(); + validateDistPin(); +} +if (mode === "legacy") validateLegacy(); +if (mode === "release") await validateRelease(); +if (process.exitCode) process.exit(process.exitCode); diff --git a/scripts/validate.ts b/scripts/validate.ts deleted file mode 100644 index 75cacf5..0000000 --- a/scripts/validate.ts +++ /dev/null @@ -1,220 +0,0 @@ -// scripts/validate.ts -// -// CI validation for Agent Cards: -// - Validates every card JSON against the base agent-card schema -// - Optionally validates per-file checksums if checksums/**/*.sha256 exists - -import fs from "node:fs"; -import path from "node:path"; -import crypto from "node:crypto"; -import { fileURLToPath } from "node:url"; -import { createRequire } from "node:module"; - -import { Glob } from "glob"; -import type { ErrorObject } from "ajv"; - -// ESM-safe repo root -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); -const repoRoot = path.resolve(__dirname, ".."); - -// CJS require inside ESM TS (fixes Ajv/addFormats typing on TS+ESM) -const require = createRequire(import.meta.url); -const Ajv = require("ajv") as typeof import("ajv"); -const addFormats = require("ajv-formats") as (ajv: any) => void; - -type Mode = "all" | "agents" | "checksums"; - -function getModeFromArgs(): Mode { - const arg = process.argv.find((a) => a.startsWith("--mode=")); - if (!arg) return "all"; - const value = arg.split("=")[1]; - if (value === "agents" || value === "checksums") return value; - return "all"; -} - -// Ajv setup -const ajv = new Ajv.default({ - strict: true, - strictTypes: true, - allErrors: true -}); -addFormats(ajv); - -// Base schema path -const baseSchemaPath = path.join( - repoRoot, - "schemas", - "v1.0.0", - "_shared", - "agent.card.base.schema.json" -); - -function loadBaseSchema(): string { - if (!fs.existsSync(baseSchemaPath)) { - throw new Error(`Base schema not found at: ${baseSchemaPath}`); - } - const raw = fs.readFileSync(baseSchemaPath, "utf8"); - const json = JSON.parse(raw); - - const id: string = json.$id || "agent-card-base"; - ajv.addSchema(json, id); - return id; -} - -async function validateAgentCards() { - console.log("▶ Validating Agent Cards..."); - - const baseId = loadBaseSchema(); - const validate = ajv.getSchema(baseId); - if (!validate) throw new Error("Ajv could not resolve base schema validator"); - - const glob = new Glob("agents/v1.0.0/**/*.json", { - cwd: repoRoot, - absolute: true - }); - - let count = 0; - const errors: string[] = []; - - for await (const file of glob) { - const rel = path.relative(repoRoot, file).replace(/\\/g, "/"); - const raw = fs.readFileSync(file, "utf8"); - - let json: unknown; - try { - json = JSON.parse(raw); - } catch (err) { - errors.push(`❌ ${rel}: invalid JSON: ${(err as Error).message}`); - continue; - } - - const ok = validate(json); - if (!ok) { - const details = (validate.errors || []) - .map((e: ErrorObject) => ` - ${e.instancePath || "/"} ${e.message}`) - .join("\n"); - errors.push(`❌ ${rel}: schema validation failed\n${details}`); - } else { - console.log(`✅ ${rel}`); - } - - count++; - } - - if (count === 0) console.warn("⚠ No agent cards found under agents/v1.0.0/"); - - if (errors.length) { - console.error("\nValidation errors:"); - console.error(errors.join("\n\n")); - process.exitCode = 1; - } else { - console.log("\n✔ All Agent Cards passed schema validation."); - } -} - -function normalizeChecksum(line: string): string { - const trimmed = line.trim(); - return trimmed.startsWith("sha256:") ? trimmed.slice("sha256:".length) : trimmed; -} - -function sha256File(filePath: string): string { - const buf = fs.readFileSync(filePath); - return crypto.createHash("sha256").update(buf).digest("hex"); -} - -function hasPerFileChecksums(): boolean { - const checksumsDir = path.join(repoRoot, "checksums"); - if (!fs.existsSync(checksumsDir)) return false; - - const stack = [checksumsDir]; - while (stack.length) { - const dir = stack.pop()!; - for (const ent of fs.readdirSync(dir, { withFileTypes: true })) { - const full = path.join(dir, ent.name); - if (ent.isDirectory()) stack.push(full); - else if (full.endsWith(".sha256")) return true; - } - } - return false; -} - -async function validateChecksums() { - console.log("▶ Validating per-file checksums..."); - - const glob = new Glob("checksums/**/*.sha256", { - cwd: repoRoot, - absolute: true - }); - - let count = 0; - const errors: string[] = []; - - for await (const checksumFile of glob) { - const relChecksum = path.relative(repoRoot, checksumFile).replace(/\\/g, "/"); - const contents = fs.readFileSync(checksumFile, "utf8").trim(); - - if (!contents) { - errors.push(`❌ ${relChecksum}: empty checksum file`); - continue; - } - - const expected = normalizeChecksum(contents); - - const baseName = path.basename(checksumFile, ".sha256"); - const parentDir = path.basename(path.dirname(checksumFile)); // commons / commercial - - const jsonPath = path.join( - repoRoot, - "agents", - "v1.0.0", - parentDir, - `${baseName}.json` - ); - - const relJson = path.relative(repoRoot, jsonPath).replace(/\\/g, "/"); - - if (!fs.existsSync(jsonPath)) { - errors.push(`❌ ${relChecksum}: matching agent JSON not found at ${relJson}`); - continue; - } - - const actual = sha256File(jsonPath); - if (actual !== expected) { - errors.push( - `❌ ${relChecksum}: checksum mismatch\n expected: ${expected}\n actual: ${actual}` - ); - } else { - console.log(`✅ ${relChecksum} ↔ ${relJson}`); - } - - count++; - } - - if (count === 0) console.warn("⚠ No checksum files found under checksums/**/*.sha256"); - - if (errors.length) { - console.error("\nChecksum errors:"); - console.error(errors.join("\n\n")); - process.exitCode = 1; - } else { - console.log("\n✔ All per-file checksums match their Agent Cards."); - } -} - -async function main() { - const mode = getModeFromArgs(); - - if (mode === "agents" || mode === "all") { - await validateAgentCards(); - } - - if ((mode === "checksums" || mode === "all") && hasPerFileChecksums()) { - await validateChecksums(); - } -} - -main().catch((err) => { - console.error("Fatal error in validation:", err); - process.exit(1); -}); diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 1d44e72..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "strict": true, - "noEmit": true, - "types": ["node"] - }, - "include": ["scripts/**/*.ts", "scripts/**/*.mts", "scripts/**/*.cts"] -}