### Local Manifest for Enterprise Development Source: https://github.com/ards-project/ard-spec/blob/main/spec/urn-naming-guide.md This local manifest example uses a verified FQDN for the URN identity, ensuring consistency between local development and production environments. ```json { "specVersion": "1.0", "host": { "displayName": "Acme Finance Local Dev", "identifier": "did:web:dev.acme.com" }, "entries": [ { "identifier": "urn:ai:acme.com:finance:tax-agent", "displayName": "Corporate Tax Assistant", "type": "application/a2a-agent-card+json", "url": "http://localhost:8000/agents/tax-assistant", "description": "Local development build of Corporate Tax Assistant." } ] } ``` -------------------------------- ### Production Manifest for Enterprise Development Source: https://github.com/ards-project/ard-spec/blob/main/spec/urn-naming-guide.md This production manifest example, hosted at a specific URL, uses a verified FQDN for the URN identity and includes trust manifest details. ```json { "specVersion": "1.0", "host": { "displayName": "Acme Corporation", "identifier": "did:web:acme.com" }, "entries": [ { "identifier": "urn:ai:acme.com:finance:tax-agent", "displayName": "Corporate Tax Assistant", "type": "application/a2a-agent-card+json", "url": "https://api.acme.com/finance/tax-assistant", "description": "Official Corporate Tax Assistant with production identity verification.", "trustManifest": { "identity": "spiffe://acme.com/finance/tax-agent", "identityType": "spiffe", "attestations": [ { "type": "SOC2-Type2", "uri": "https://trust.acme.com/soc2.pdf" } ] } } ] } ``` -------------------------------- ### Capability Manifest Example Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md This JSON object represents a capability manifest, listing various AI agents and services with their identifiers, types, URLs, and descriptions. It adheres to the AI Catalog specification. ```json { "specVersion": "1.0", "host": { "displayName": "Acme Enterprise AI", "identifier": "did:web:acme.com" }, "entries": [ { "identifier": "urn:ai:acme.com:agent:assistant", "displayName": "Corporate Assistant (A2A)", "type": "application/a2a-agent-card+json", "url": "https://api.acme.com/agents/assistant.json", "description": "General-purpose corporate A2A assistant.", "representativeQueries": [ "help me draft an email to the security working group", "summarize my unread messages from Todd" ] }, { "identifier": "urn:ai:acme.com:server:weather", "displayName": "Weather Data Node", "type": "application/mcp-server+json", "url": "https://api.acme.com/mcp/weather.json", "capabilities": ["WeatherTool", "ForecastTool"], "description": "Enterprise weather MCP server for live telemetry.", "representativeQueries": [ "what is the current wind speed in Chicago", "get the 5-day forecast for Seattle" ] }, { "identifier": "urn:ai:acme.com:plugin:finance-suite", "displayName": "Finance Tool Bundle", "type": "application/ai-catalog+json", "description": "A static nested bundle containing an A2A agent and its required market dataset.", "tags": ["finance", "bundle"], "data": { "specVersion": "1.0", "entries": [ { "identifier": "urn:ai:acme.com:finance:a2a", "displayName": "Finance Trading Agent", "type": "application/a2a-agent-card+json", "url": "https://api.acme.com/agents/finance-trader.json" }, { "identifier": "urn:ai:acme.com:market:2026", "displayName": "Market Dataset 2026", "type": "application/parquet", "url": "https://data.acme.com/market-2026.parquet" } ] } }, { "identifier": "urn:ai:acme.com:registry:global", "displayName": "Acme Global Agent Registry", "type": "application/ai-registry+json", "url": "https://registry.acme.com/api/v1/", "description": "Dynamic REST API search interface to discover all approved enterprise agents.", "tags": ["registry", "search", "dynamic"], "trustManifest": { "identity": "spiffe://acme.com/registry/global", "identityType": "spiffe", "attestations": [ { "type": "SPIFFE-X509", "uri": "https://acme.com/.well-known/spiffe/jwks" }, { "type": "SOC2-Type2", "uri": "https://trust.acme.com/reports/soc2.pdf" } ] } }, { "identifier": "urn:ai:acme.com:catalog:engineering", "displayName": "Engineering Department Catalogs", "type": "application/ai-catalog+json", "url": "https://acme.com/catalogs/engineering.json", "description": "Sub-catalogs containing CI/CD and internal deployment agents." } ] } ``` -------------------------------- ### Install jsonschema Validator Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Install the Python jsonschema validator to enable strict schema-level checking. The tool automatically activates JSON Schema checking if this library is present. ```bash pip install jsonschema ``` -------------------------------- ### Validate ai-catalog.json Manifest with AJV CLI Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Use the AJV CLI to validate local ai-catalog.json manifest files against its JSON Schema. Ensure AJV CLI is installed. ```bash npx ajv-cli validate -s spec/schemas/ai-catalog.schema.json -d path/to/ai-catalog.json ``` -------------------------------- ### ARD Federation Response Example (Referrals Mode) Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md This JSON snippet illustrates a response from the ARD API in 'referrals' mode. It includes local results and a list of 'referrals' to other registries that the client can query. ```json { "results": [ { "identifier": "urn:ai:acme.com:agent:expense", "displayName": "Corporate Expenses", "type": "application/a2a-agent-card+json", "url": "https://internal.corp/agents/expense.json", "score": 97, "source": "https://finder.internal.corp" } ], "referrals": [ { "identifier": "urn:ai:blweb.ai:registry:public", "displayName": "Public Agent Finder", "type": "application/ai-registry", "url": "https://finder.nlweb.ai/search" }, { "identifier": "urn:ai:example.com:registry:travel", "displayName": "Travel Agent Finder", "type": "application/ai-registry", "url": "https://travel.finder.example/search" } ] } ``` -------------------------------- ### A2A Agent Descriptor Media Type Source: https://github.com/ards-project/ard-spec/blob/main/adr/0008-mcp-media-type-renaming.md Example of a similar media type used for A2A agent descriptors, highlighting the '*-card+json' convention. ```text application/a2a-agent-card+json ``` -------------------------------- ### ARD Federation Request Example (Referrals Mode) Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md This JSON snippet shows a request to the ARD API with federation set to 'referrals'. This mode returns local results along with catalog entries for other registries the client may query. ```json { "query": { "text": "find me a flight booking agent" }, "federation": "referrals" } ``` -------------------------------- ### ARD Query Model Example Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md This JSON object represents a query to the ARD API, specifying both a natural language text search and structured filters for narrowing down results. Use this when you need to search for agents with specific criteria. ```json { "query": { "text": "find me a flight booking agent", "filter": { "type": ["application/a2a-agent-card+json"], "tags": ["finance"], "trustManifest.attestations.type": ["SOC2-Type2"] } } } ``` -------------------------------- ### Run One-Click Conformance Demo Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Execute the automated demo script for a complete end-to-end conformance verification. This includes manifest validation, mock registry launch, and live query testing. ```bash ./conformance/bin/run-conformance-demo ``` -------------------------------- ### Run Automated Conformance Demo Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Execute the automated demo to verify manifest validation and Registry API probing using pre-bundled mock assets. This script handles manifest validation, mock API server startup, live probes, and cleanup. ```bash ./bin/run-conformance-demo ``` -------------------------------- ### Run Manual CLI Checks Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Run the conformance tester directly without arguments to view its manual commands and options. ```bash ./bin/conformance-test ``` -------------------------------- ### Local Development Manifest with Placeholder FQDN Source: https://github.com/ards-project/ard-spec/blob/main/spec/urn-naming-guide.md Use this manifest for local development and testing when the agent will only run locally. It employs a placeholder FQDN to satisfy syntax validators. ```json { "specVersion": "1.0", "host": { "displayName": "Local Test Environment" }, "entries": [ { "identifier": "urn:ai:agent.localhost:weather:telemetry", "displayName": "Local Weather Node", "type": "application/mcp-server-card+json", "url": "http://localhost:8080/mcp", "description": "Local test instance of the weather capability." } ] } ``` -------------------------------- ### Discovery Manifest via GitHub Pages Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Manifest for discovering agents and skills hosted on GitHub Pages, combining Hugging Face Spaces and GitHub. ```json { "specVersion": "1.0", "host": { "displayName": "Alice's AI Tools" }, "entries": [ { "identifier": "urn:ai:hf.co:alice-dev:weather-agent", "displayName": "Weather Agent", "type": "application/mcp-server+json", "url": "https://alice-dev.github.io/weather-agent/entry.json" }, { "identifier": "urn:ai:github.com:alice-dev:pptx-creator", "displayName": "pptx-creator", "type": "application/ai-skill+md", "url": "https://github.com/alice-dev/pptx-creator" } ] } ``` -------------------------------- ### Make Scripts Executable Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Ensure the test and demo runner scripts have execution permissions before running them. ```bash chmod +x bin/conformance-test bin/run-conformance-demo ``` -------------------------------- ### Validate Local Manifest File Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Use the CLI to validate a local ai-catalog.json capability manifest file. ```bash ./bin/conformance-test manifest examples/ai-catalog.json ``` -------------------------------- ### Validate Local ai-catalog.json Manifest with Conformance Tool Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Validate a local ai-catalog.json manifest file using the official conformance testing tool. This checks schema and custom semantic rules. ```bash ./conformance/bin/conformance-test manifest path/to/ai-catalog.json ``` -------------------------------- ### Explore Response Schema Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Illustrates the structure of an Explore response, detailing facet breakdowns with bucket values and counts. ```json { "resultType": "facets", "facets": { "type": { "buckets": [ { "value": "application/mcp-server+json", "count": 1247 }, { "value": "application/a2a-agent-card+json", "count": 389 } ], "otherCount": 23 }, "publisher": { "buckets": [ { "value": "acme.com", "count": 412 } ] } } } ``` -------------------------------- ### GitHub Hosted Skill Manifest Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Manifest for an AI skill hosted on GitHub. ```json { "specVersion": "1.0", "host": { "displayName": "Alice's AI Tools" }, "entries": [ { "identifier": "urn:ai:github.com:alice-dev:pptx-creator", "displayName": "pptx-creator", "type": "application/ai-skill", "url": "https://github.com/alice-dev/pptx-creator", "description": "Create professional PowerPoint presentations following brand guidelines." } ] } ``` -------------------------------- ### Validate Registry API Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Use the CLI to probe and validate a live running Agent Registry REST API server. ```bash ./bin/conformance-test registry http://localhost:9010/api ``` -------------------------------- ### Validate Remote ai-catalog.json Manifest with Conformance Tool Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Validate a remote ai-catalog.json manifest file hosted at a URL using the official conformance testing tool. Ensure the URL is accessible. ```bash ./conformance/bin/conformance-test manifest https://example.com/.well-known/ai-catalog.json ``` -------------------------------- ### Hugging Face Spaces Agent Manifest Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Manifest for an AI agent hosted on Hugging Face Spaces. ```json { "specVersion": "1.0", "host": { "displayName": "Alice's AI Tools" }, "entries": [ { "identifier": "urn:ai:hf.co:alice-dev:weather-agent", "displayName": "Weather Agent", "type": "application/mcp-server+json", "inline": { "name": "Weather Agent", "description": "Simple weather lookup using open data", "tools": [ { "name": "get_weather", "description": "Get current weather for a city", "inputSchema": { "type": "object", "properties": { "city": { "type": "string" } }, "required": ["city"] } } ] } } ] } ``` -------------------------------- ### Search Response Schema Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Illustrates the structure of a search response, containing ranked catalog entries, optional referrals, and pagination tokens. ```json { "results": [ { "identifier": "urn:ai:acme.com:agent:assistant", "displayName": "Corporate Assistant (A2A)", "type": "application/a2a-agent-card+json", "url": "https://api.acme.com/agents/assistant.json", "score": 95, "source": "https://registry.acme.com/api/v1/" }, { "identifier": "urn:ai:example.com:weather-server", "displayName": "Global Weather Service", "type": "application/mcp-server+json", "url": "https://weather.example.com/mcp", "capabilities": ["WeatherTool"], "score": 88, "source": "https://finder.external.org/api/" } ], "referrals": [ { "identifier": "urn:ai:nlweb.ai:registry:public", "displayName": "Public Agent Finder", "type": "application/ai-registry", "url": "https://finder.nlweb.ai/search" } ], "pageToken": "eyJwYWdlIjogMn0=" } ``` -------------------------------- ### Validate Agent Registry REST API with Conformance Tool Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Validate a running Agent Registry REST API against the OpenAPI specification using the official conformance testing tool. Provide the base URL of the API. ```bash ./conformance/bin/conformance-test registry http://localhost:9010/api ``` -------------------------------- ### List Agents Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Provides deterministic browsing of agents, designed for developer portals. This endpoint is highly cacheable and relies on strict database filtering. ```APIDOC ## GET /agents ### Description Deterministic browsing, designed for developer portals. Highly cacheable, relies on strict database filtering, and does not support relevance-based sorting. ### Method GET ### Endpoint /agents ### Parameters #### Query Parameters - **filter** (String) - EBNF filter expression. - **orderBy** (String) - Sorting fields (e.g., name, created_at DESC). - **pageSize** (Integer) - Max results (default: 20, max: 100). - **pageToken** (String) - Pagination token. ``` -------------------------------- ### Search Catalog Entries Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Accepts a query and returns catalog entries ranked by relevance. For Search, 'text' is required; 'filter' is optional. ```APIDOC ## POST /search ### Description Searches for catalog entries ranked by relevance based on a provided query. The 'text' field within the query is mandatory, while 'filter' is optional. ### Method POST ### Endpoint /search ### Parameters #### Request Body - **query** (object) - Required - The search query object, which must contain a 'text' field and can optionally include a 'filter' object. - **query.text** (string) - Required - The natural language search query. - **query.filter** (object) - Optional - Filters to refine the search results. - **federation** (string) - Optional - Specifies the federation mode. Defaults to 'auto'. Can be 'auto', 'referrals', or 'none'. - **pageSize** (integer) - Optional - The maximum number of results to return per page. Defaults to 10, with a maximum of 100. - **pageToken** (string) - Optional - A token to retrieve the next page of results for pagination. ### Request Example ```json { "query": { "text": "find me a flight booking agent", "filter": { "type": ["application/a2a-agent-card+json"] } }, "federation": "referrals", "pageSize": 5 } ``` ### Response #### Success Response (200) - **results** (array) - A list of catalog entries ranked by relevance. - **identifier** (string) - Unique identifier for the entry. - **displayName** (string) - The display name of the entry. - **type** (string) - The MIME type of the entry. - **url** (string) - The URL to access the entry. - **score** (integer) - Semantic relevance score (0-100). - **source** (string) - The source of the catalog entry. - **capabilities** (array) - Optional. List of capabilities offered by the entry. - **referrals** (array) - Optional. A list of referrals to other registries or services. - **identifier** (string) - Unique identifier for the referral. - **displayName** (string) - The display name of the referral. - **type** (string) - The MIME type of the referral. - **url** (string) - The URL for the referral. - **pageToken** (string) - A token for retrieving the next page of results. #### Response Example ```json { "results": [ { "identifier": "urn:ai:acme.com:agent:assistant", "displayName": "Corporate Assistant (A2A)", "type": "application/a2a-agent-card+json", "url": "https://api.acme.com/agents/assistant.json", "score": 95, "source": "https://registry.acme.com/api/v1/" }, { "identifier": "urn:ai:example.com:weather-server", "displayName": "Global Weather Service", "type": "application/mcp-server+json", "url": "https://weather.example.com/mcp", "capabilities": ["WeatherTool"], "score": 88, "source": "https://finder.external.org/api/" } ], "referrals": [ { "identifier": "urn:ai:nlweb.ai:registry:public", "displayName": "Public Agent Finder", "type": "application/ai-registry", "url": "https://finder.nlweb.ai/search" } ], "pageToken": "eyJwYWdlIjogMn0=" } ``` ``` -------------------------------- ### Explore Request Schema Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Defines the structure for an Explore request, including query parameters and desired result types like facets. ```json { "query": { "text": "currency conversion", "filter": { "trustManifest.attestations.type": ["SOC2-Type2"] } }, "resultType": { "facets": [ { "field": "type" }, { "field": "publisher", "limit": 50 } ] } } ``` -------------------------------- ### Search Request Schema Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Defines the structure for a search request, including the query text, optional filters, federation settings, and page size. ```json { "query": { "text": "find me a flight booking agent", "filter": { "type": ["application/a2a-agent-card+json"] } }, "federation": "referrals", "pageSize": 5 } ``` -------------------------------- ### Validate Remote Manifest URL Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Use the CLI to validate a remote ai-catalog.json capability manifest hosted on a web server. ```bash ./bin/conformance-test manifest https://example.com/.well-known/ai-catalog.json ``` -------------------------------- ### Explore Registry Data Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Accepts a query and returns an aggregation over the matched set rather than ranked entries. This allows clients to introspect a registry and obtain facet breakdowns. ```APIDOC ## POST /explore ### Description Accepts a `query` and returns an aggregation over the matched set rather than ranked entries. Explore lets clients introspect a registry — for example, "which media types are available?" — and obtain facet breakdowns narrowed by the same `text` and `filter` as Search. For Explore, `text` and `filter` are both optional; when both are absent, the aggregation covers the entire registry. ### Method POST ### Endpoint /explore ### Parameters #### Request Body - **query** (Object) - Required. The query object, including optional `text` and `filter` fields. - **resultType** (Object) - Required. The shape of result to compute. The only defined shape is facets. - **facets** (Array) - Required. An array of facet definitions. - **field** (String) - Required. Field path to aggregate (same syntax as filter keys). - **limit** (Integer) - Optional. Maximum number of buckets returned. Default: 20. - **minCount** (Integer) - Optional. Suppress buckets with counts below this threshold. ### Request Example ```json { "query": { "text": "currency conversion", "filter": { "trustManifest.attestations.type": ["SOC2-Type2"] } }, "resultType": { "facets": [ { "field": "type" }, { "field": "publisher", "limit": 50 } ] } } ``` ### Response #### Success Response (200) - **resultType** (String) - The type of result returned, e.g., "facets". - **facets** (Object) - An object containing the aggregated facets. - **field** (Object) - An object representing a facet aggregation for a specific field. - **buckets** (Array) - An array of buckets, where each bucket contains a `value` and `count`. - **otherCount** (Integer) - The number of matching entries in buckets beyond the `limit`. #### Response Example ```json { "resultType": "facets", "facets": { "type": { "buckets": [ { "value": "application/mcp-server+json", "count": 1247 }, { "value": "application/a2a-agent-card+json", "count": 389 } ], "otherCount": 23 }, "publisher": { "buckets": [ { "value": "acme.com", "count": 412 } ] } } } ``` ``` -------------------------------- ### Explore Agent Registry Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md The Agent Registry also exposes an explore endpoint, which accepts a common query object with text and filter members. ```APIDOC ## POST /explore ### Description Explores the Agent Registry using the provided text and filter criteria. This endpoint is similar to `/search` but may have different presence requirements for `text` and `filter`. ### Method POST ### Endpoint /explore ### Parameters #### Query Parameters None #### Request Body - **query** (object) - Required - An object containing the search query. - **text** (string) - Optional - Natural-language description of the need. Narrows the result set by semantic relevance. - **filter** (object) - Optional - Structured constraints. Keys are field paths into the catalog entry; values are arrays (a bare scalar is accepted as a single-element array). ### Request Example ```json { "query": { "text": "find me a flight booking agent", "filter": { "type": ["application/a2a-agent-card+json"], "tags": ["finance"], "trustManifest.attestations.type": ["SOC2-Type2"] } } } ``` ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### Standard URN Structure Source: https://github.com/ards-project/ard-spec/blob/main/spec/urn-naming-guide.md The URN represents the permanent, abstract logical identity of the agent, establishing a stable primary key for search indexes and clients. It does not change based on where the agent is running or deployed. ```text urn:ai::: ``` -------------------------------- ### Enterprise Agent Manifest with Trust Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md Manifest for an enterprise AI agent, including trustManifest for compliance and attestations. ```json { "specVersion": "1.0", "host": { "displayName": "Acme Enterprise AI", "identifier": "did:web:acme.com" }, "entries": [ { "identifier": "urn:ai:acme.com:travel:concierge", "displayName": "Travel Concierge", "type": "application/a2a-agent-card+json", "url": "https://api.acme.com/travel/concierge.json", "description": "AI-powered travel planning", "trustManifest": { "identity": "spiffe://acme.com/travel/concierge", "identityType": "spiffe", "attestations": [ { "type": "SPIFFE-X509", "uri": "https://acme.com/.well-known/spiffe/jwks" }, { "type": "SOC2-Type2", "uri": "https://trust.acme.com/reports/soc2.pdf" }, { "type": "GDPR", "uri": "https://trust.acme.com/compliance/gdpr" } ] } } ] } ``` -------------------------------- ### Search Agent Registry Source: https://github.com/ards-project/ard-spec/blob/main/spec/ard.md The Agent Registry MUST expose a standard HTTP REST search interface. This endpoint allows clients to search for agents based on a text query and structured filters. ```APIDOC ## POST /search ### Description Searches the Agent Registry for agents matching the provided text and filter criteria. ### Method POST ### Endpoint /search ### Parameters #### Query Parameters None #### Request Body - **query** (object) - Required - An object containing the search query. - **text** (string) - Optional - Natural-language description of the need. Narrows the result set by semantic relevance. - **filter** (object) - Optional - Structured constraints. Keys are field paths into the catalog entry; values are arrays (a bare scalar is accepted as a single-element array). ### Request Example ```json { "query": { "text": "find me a flight booking agent", "filter": { "type": ["application/a2a-agent-card+json"], "tags": ["finance"], "trustManifest.attestations.type": ["SOC2-Type2"] } } } ``` ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### Previous MCP Media Type Source: https://github.com/ards-project/ard-spec/blob/main/adr/0008-mcp-media-type-renaming.md The former media type used for MCP capabilities before the renaming. ```text application/mcp-server+json ``` -------------------------------- ### Registry API Validation Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Validations performed when checking a live Agent Registry server. This includes probes for the `/agents` listing, `/search` endpoint, and `/explore` introspection. ```APIDOC ## Registry API Validation ### Description Probes and validates the API endpoints of a live Agent Registry server, including optional listing, mandated search, and optional introspection capabilities. ### Probes - **GET `/agents` (Optional Listing Probe)**: - Checks if the registry supports deterministic browsing. - If `200 OK`, validates the response contains the paginated `items` structure. - Compliant if `404` or `501` is returned (listing is optional). - **POST `/search` (Mandated Search Probe)**: - Probes the search route required for dynamic capability discovery. - Sends a mock payload with `query` and optional `filter`/`limit`. - Verifies a `200 OK` response with a `results` array. - Validates nested payload structure conforms to `CatalogEntry`. - **POST `/explore` (Optional Introspection Probe)**: - Probes the dynamic introspection route for facet generation. - Sends a mock request for facet counts grouped by `type`. - Verifies a `200 OK` response with valid `resultType` and `facets` Object. - Compliant if `404` or `501` is returned (explore is optional). ``` -------------------------------- ### New MCP Media Type Source: https://github.com/ards-project/ard-spec/blob/main/adr/0008-mcp-media-type-renaming.md The updated media type for MCP discovery descriptor cards, ensuring consistency with other agent descriptors. ```text application/mcp-server-card+json ``` -------------------------------- ### Python Conformance Tool Regex Adjustment Source: https://github.com/ards-project/ard-spec/blob/main/adr/0007-urn-naming-pattern-flexibility.md The adjusted regex pattern used in the Python conformance checking tool to safely handle character ranges and support underscores. ```python r"^urn:ai:([a-zA-Z0-9.-]+)(?::([a-zA-Z0-9._:-]+))?:([a-zA-Z0-9._-]+)$" ``` -------------------------------- ### Initial URN Validation Pattern Source: https://github.com/ards-project/ard-spec/blob/main/adr/0007-urn-naming-pattern-flexibility.md The original regex pattern used for validating URNs, which had limitations regarding character sets and segment structure. ```regex ^urn:ai:[a-zA-Z0-9.-]+:[a-zA-Z0-9.-:]+:[a-zA-Z0-9.-]+$ ``` -------------------------------- ### Manifest Validation Source: https://github.com/ards-project/ard-spec/blob/main/conformance/README.md Validations performed when checking an AI Catalog manifest (ai-catalog.json). This includes structural integrity, schema conformance, URN pattern matching, value-or-reference constraints, ecosystem attribute checks, and deprecated field detection. ```APIDOC ## Manifest Validation ### Description Validates the structural integrity, schema conformance, URN patterns, value-or-reference constraints, ecosystem attributes, and deprecated fields within an AI Catalog manifest file. ### Validations - **JSON Structural Integrity**: Ensures the manifest payload is valid JSON. - **JSON Schema Draft 2020-12 Conformance**: Validates against the official `ai-catalog.schema.json` if `jsonschema` library is installed. - **Strict URN Pattern Matching**: Enforces the `urn:ai:::` format for entry identifiers. - **Value-or-Reference Delivery**: Ensures each entry has exactly one of `url` or `data`. - **Ecosystem Attributes Validation**: Checks `representativeQueries` count (2-5) and standard properties (`specVersion`, `entries`, `displayName`, `type`). - **Deprecated Field Detection**: Detects usage of the deprecated `collections` root property. ``` -------------------------------- ### Refined URN Validation Pattern Source: https://github.com/ards-project/ard-spec/blob/main/adr/0007-urn-naming-pattern-flexibility.md The updated regex pattern that allows for more flexible namespace structures and supports underscores in non-domain segments. ```regex ^urn:ai:[a-zA-Z0-9.-]+(:[a-zA-Z0-9._-]+)+$ ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.