{"openapi":"3.1.0","info":{"title":"Registry Broker API","version":"0.1.0","description":"Public HTTP endpoints exposed by the Registry Broker for health monitoring and agent discovery.","contact":{"name":"Hashgraph Online","url":"https:\/\/hol.org"}},"servers":[{"url":"\/","description":"Relative to the current host"},{"url":"http:\/\/127.0.0.1:4000","description":"Local development default"}],"tags":[{"name":"Health","description":"Service readiness probes"},{"name":"Search","description":"Agent discovery endpoints"},{"name":"Agents","description":"Agent detail and related information"},{"name":"Registry","description":"Platform level statistics and registries"},{"name":"Chat","description":"Chat session management and messaging"},{"name":"Credits","description":"Purchase and account credit management endpoints"},{"name":"Routing","description":"Universal Agent Identifier (UAID) resolution and message routing"},{"name":"Registration","description":"Agent self-registration, updates and lifecycle management"},{"name":"Federation","description":"Cross-registry discovery and synchronization"},{"name":"Encryption","description":"Encryption key registration and status endpoints"},{"name":"Content","description":"Content inscription using registry credits"},{"name":"Plugins","description":"Codex plugin catalog, import, and trust surfaces"},{"name":"Programmable Secrets","description":"Encrypted content policy publication, indexing, and key retrieval"},{"name":"Verification","description":"Ownership and DNS TXT verification endpoints"}],"paths":{"\/health":{"get":{"tags":["Health"],"summary":"Health probe","description":"Lightweight readiness check used by deployment infrastructure.","responses":{"200":{"description":"Service is healthy","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/HealthResponse"}}}}}}},"\/api\/v1\/health":{"get":{"tags":["Health"],"summary":"Health probe","description":"Lightweight readiness check used by deployment infrastructure.","responses":{"200":{"description":"Service is healthy","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/HealthResponse"}}}}}}},"\/api\/v1\/search":{"get":{"tags":["Search"],"summary":"Keyword search","description":"Perform a keyword search across every indexed agent. Results are ranked by relevance and include pagination metadata.","parameters":[{"name":"q","in":"query","description":"Optional free-text query applied to agent name, description and metadata.","schema":{"type":"string","example":"babylon prediction markets"}},{"name":"page","in":"query","description":"Page number to return (1-indexed). Defaults to 1.","schema":{"type":"integer","minimum":1,"default":1,"example":1}},{"name":"limit","in":"query","description":"Maximum number of agents to return per page. Defaults to 20. Maximum 500.","schema":{"type":"integer","minimum":1,"maximum":500,"default":20,"example":10}},{"name":"registries","in":"query","description":"Optional comma separated list of registry namespaces used to filter results (for example `openrouter,virtuals`).","schema":{"type":"string","example":"erc-8004"}},{"name":"adapters","in":"query","description":"Optional comma separated list of adapter identifiers to include (for example `openrouter-adapter,agentverse-adapter`).","schema":{"type":"string","example":"erc8004-adapter"}},{"name":"adapter","in":"query","description":"Optional adapter identifier used to filter results. Prefer the `adapters` parameter when specifying multiple adapters.","schema":{"type":"string","example":"erc8004-adapter"}},{"name":"capabilities","in":"query","description":"Optional comma separated list of capability identifiers to match (for example `messaging,search`).","schema":{"type":"string","example":"financial-services,analytics"}},{"name":"protocols","in":"query","description":"Optional comma separated list of protocol identifiers to match (for example `erc-8004,a2a`).","schema":{"type":"string","example":"erc-8004"}},{"name":"minTrust","in":"query","description":"Minimum trust score (0-100) required for returned agents.","schema":{"type":"number","minimum":0,"maximum":100,"example":70}},{"name":"minSignals","in":"query","description":"Optional comma separated list of trust score signal thresholds formatted as `<signalKey>:<min>` (for example `simple-math.score:1,simple-science.score:1`).","schema":{"type":"string","example":"simple-science.score:1"}},{"name":"includeAggregations","in":"query","description":"When `false`, omits facets\/filter aggregations to reduce latency and payload size (recommended for SSR and lightweight callers).","schema":{"type":"string","enum":["true","false"],"example":"false"}},{"name":"verificationStatus","in":"query","description":"Filter results by verification state reported in the agent metadata.","schema":{"type":"string","enum":["registered","indexed","pending"],"example":"indexed"}},{"name":"type","in":"query","description":"Filter by logical agent type. Supported values: `ai-agents`, `mcp-servers`.","schema":{"type":"string","enum":["ai-agents","mcp-servers"],"example":"ai-agents"}},{"name":"verified","in":"query","description":"Set to `true` to return only agents marked as verified.","schema":{"type":"string","enum":["true","false"],"example":"true"}},{"name":"online","in":"query","description":"Set to `true` to return only agents currently reporting availability.","schema":{"type":"string","enum":["true","false"],"example":"true"}},{"name":"sortBy","in":"query","description":"Sort order for results. Supported values: `most-recent` (default), `oldest`, `name`, `most-available` (prioritises agents that recently responded with low latency), `trust-score`.","schema":{"type":"string","enum":["most-recent","oldest","name","most-available","trust-score"],"example":"most-available"}},{"name":"sortOrder","in":"query","description":"Override sort direction. Applies to the chosen `sortBy` value. Supported values: `asc`, `desc`.","schema":{"type":"string","enum":["asc","desc"],"example":"desc"}},{"name":"metadata.isFree","in":"query","description":"Optional metadata filter. Setting `metadata.isFree=true` returns only free-tier models. Additional metadata filters follow the `metadata.<key>=value` pattern and accept repeated parameters.","schema":{"type":"string","enum":["true","false"],"example":"true"}},{"name":"metadata.<key>","in":"query","description":"Wildcard metadata filters. Replace `<key>` with any metadata path (for example `metadata.provider=ledger-labs`, `metadata.payments.supported=x402`). Parameters may be repeated to match multiple values.","schema":{"type":"string","example":"metadata.nativeNetwork=ethereum-sepolia"}}],"responses":{"200":{"description":"Search completed successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SearchResponse"}}}},"500":{"description":"Search backend failure","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"post":{"tags":["Search"],"summary":"Semantic vector search","description":"Run a hybrid semantic\/vector search. This endpoint is available when the broker is configured with hybrid storage support.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VectorSearchRequest"}}}},"responses":{"200":{"description":"Semantic search results","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VectorSearchResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ValidationErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"501":{"description":"Vector search not supported on this deployment","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/search\/capabilities":{"post":{"tags":["Search"],"summary":"Capability search","description":"Return agents that advertise every requested capability.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CapabilitySearchRequest"}}}},"responses":{"200":{"description":"Matching agents returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SearchResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ValidationErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/search\/facets":{"get":{"tags":["Search"],"summary":"List available search facets","description":"Returns the metadata facets that can be used to filter search results. Facets may be scoped to a particular adapter.","parameters":[{"name":"adapter","in":"query","description":"Optional adapter identifier used to scope the facets.","schema":{"type":"string"}}],"responses":{"200":{"description":"Facets returned successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SearchFacetsResponse"}}}}}}},"\/api\/v1\/search\/status":{"get":{"tags":["Search"],"summary":"Search backend status","description":"Returns whether hybrid\/vector search is currently active along with diagnostic metadata for the vector storage pipeline.","responses":{"200":{"description":"Status payload returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SearchStatusResponse"}}}}}}},"\/api\/v1\/registries\/{registry}\/search":{"get":{"tags":["Search"],"summary":"Registry scoped search","description":"Search for agents inside a specific registry namespace.","parameters":[{"name":"registry","in":"path","required":true,"schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Optional keyword to filter results."}],"responses":{"200":{"description":"Search completed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SearchResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/agents\/badge":{"get":{"tags":["Agents"],"summary":"Shields.io badge endpoint for an agent UAID","description":"Returns a Shields-compatible JSON payload for an agent badge. Supports status\/trust\/registry\/protocol\/availability metrics and optional custom labels.","parameters":[{"in":"query","name":"uaid","required":true,"schema":{"type":"string"}},{"in":"query","name":"metric","required":false,"schema":{"type":"string","enum":["status","trust","registry","protocol","availability"],"default":"status"}},{"in":"query","name":"label","required":false,"schema":{"type":"string","example":"agent"}},{"in":"query","name":"style","required":false,"schema":{"type":"string","enum":["flat","flat-square","for-the-badge","plastic","social"]}}],"responses":{"200":{"description":"Badge payload returned","content":{"application\/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"integer","example":1},"label":{"type":"string","example":"agent"},"message":{"type":"string","example":"verified"},"color":{"type":"string","example":"brightgreen"},"style":{"type":"string","example":"flat"},"isError":{"type":"boolean"},"cacheSeconds":{"type":"integer","example":900}}}}}}}}},"\/api\/v1\/agents\/{uaid}":{"get":{"tags":["Agents"],"summary":"Agent detail","description":"Retrieve the indexed profile for a specific agent. Includes trust metadata when available.","parameters":[{"name":"uaid","in":"path","required":true,"description":"Universal Agent Identifier returned by search results.","schema":{"type":"string"}}],"responses":{"200":{"description":"Agent found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentDetail"}}}},"404":{"description":"Agent not indexed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/agents\/{uaid}\/feedback":{"get":{"tags":["Agents"],"summary":"Agent feedback","description":"List ERC-8004 feedback entries for a specific agent.","parameters":[{"name":"uaid","in":"path","required":true,"description":"Universal Agent Identifier returned by search results.","schema":{"type":"string"}},{"name":"includeRevoked","in":"query","required":false,"description":"Include revoked feedback entries when true.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Agent feedback returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentFeedbackResponse"}}}},"400":{"description":"Agent does not support feedback","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Agent not indexed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"post":{"tags":["Agents"],"summary":"Submit agent feedback","description":"Submit ERC-8004 feedback for a specific agent. Requires an eligible chat session.","parameters":[{"name":"uaid","in":"path","required":true,"description":"Universal Agent Identifier returned by search results.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentFeedbackSubmissionRequest"}}}},"responses":{"200":{"description":"Feedback accepted","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentFeedbackSubmissionResponse"}}}},"400":{"description":"Invalid feedback payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Feedback not eligible for this session","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Agent not indexed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Feedback submission not available","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/agents\/{uaid}\/feedback\/eligibility":{"post":{"tags":["Agents"],"summary":"Check feedback eligibility","description":"Verify that a chat session has enough history to submit feedback.","parameters":[{"name":"uaid","in":"path","required":true,"description":"Universal Agent Identifier returned by search results.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentFeedbackEligibilityRequest"}}}},"responses":{"200":{"description":"Feedback eligibility status","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentFeedbackEligibilityResponse"}}}},"400":{"description":"Invalid eligibility payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Agent not indexed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/agents\/{uaid}\/similar":{"get":{"tags":["Agents"],"summary":"Similar agents","description":"Find agents that share capabilities with the referenced agent.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Similar agents returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SimilarAgentsResponse"}}}},"404":{"description":"Agent not indexed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/stats":{"get":{"tags":["Registry"],"summary":"Platform statistics","description":"Aggregate counters for indexed agents, registries and capabilities.","responses":{"200":{"description":"Statistics returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StatsResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/registries":{"get":{"tags":["Registry"],"summary":"Known registries","description":"Return the list of registry namespaces currently indexed by the broker.","responses":{"200":{"description":"Registries returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegistriesResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/adapters":{"get":{"tags":["Registry"],"summary":"Available adapters","description":"Return the union of adapters discovered in the search backend and those registered in the broker configuration.","responses":{"200":{"description":"Adapters returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdaptersResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/adapters\/details":{"get":{"tags":["Registry"],"summary":"Adapter descriptors","description":"Return metadata about every adapter registered with the broker including chat capabilities, supported protocols and runtime status.","responses":{"200":{"description":"Adapter descriptors returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdapterDetailsResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/adapters\/registry\/categories":{"get":{"tags":["Registry"],"summary":"Adapter registry categories","description":"List the categories registered in the HCS-21 adapter registry.","responses":{"200":{"description":"Categories returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdapterRegistryCategoriesResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"post":{"tags":["Registry"],"summary":"Create adapter registry category","description":"Create a new HCS-21 adapter registry category and register it on-chain.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateAdapterRegistryCategoryRequest"}}}},"responses":{"201":{"description":"Category created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdapterRegistryCreateCategoryResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/adapters\/registry\/adapters":{"get":{"tags":["Registry"],"summary":"Adapter registry entries","description":"Search adapters registered in the HCS-21 adapter registry with optional filtering.","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"}},{"name":"entity","in":"query","required":false,"schema":{"type":"string"}},{"name":"keywords","in":"query","required":false,"schema":{"type":"string"}},{"name":"query","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"number"}},{"name":"offset","in":"query","required":false,"schema":{"type":"number"}}],"responses":{"200":{"description":"Adapter registry entries returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdapterRegistryAdaptersResponse"}}}},"400":{"description":"Invalid search parameters","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"post":{"tags":["Registry"],"summary":"Submit adapter registry entry","description":"Queue an HCS-21 adapter submission for on-chain publication. Poll the submission status endpoint to obtain the final registry entry.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SubmitAdapterRegistryAdapterRequest"}}}},"responses":{"202":{"description":"Submission accepted","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdapterRegistrySubmissionAcceptedResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/adapters\/registry\/submissions\/{submissionId}":{"get":{"tags":["Registry"],"summary":"Adapter submission status","description":"Retrieve the status and result of a queued HCS-21 adapter submission.","parameters":[{"name":"submissionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Submission status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdapterRegistrySubmissionStatusResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Submission not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/providers":{"get":{"tags":["Registry"],"summary":"Provider catalog","description":"List the adapters currently registered with the broker alongside the communication protocols that can be routed through the platform.","responses":{"200":{"description":"Provider catalog returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ProviderCatalogResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/popular":{"get":{"tags":["Registry"],"summary":"Popular searches","description":"Frequently executed search queries collected by the broker cache.","responses":{"200":{"description":"Popular searches returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PopularSearchResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session":{"post":{"tags":["Chat"],"summary":"Create a chat session","operationId":"createChatSession","description":"Establishes a chat session with an agent using either a direct agent URL or a UAID. Optional authentication metadata can be supplied to forward API keys or custom headers to downstream providers (including OpenRouter). Extended chat history and HCS-10\/OpenConvAI sessions debit credits from the authenticated ledger account before the session is returned.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionRequest"}}}},"responses":{"200":{"description":"Session created successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Ledger authentication required for extended history or credit-backed sessions","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits (e.g., extended history retention or HCS-10 chat session fee)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"UAID not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Unable to connect to the agent","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/message":{"post":{"tags":["Chat"],"summary":"Send a chat message","operationId":"sendChatMessage","description":"Sends a user message to an agent using an existing session or by providing the agent URL directly. Streaming responses are delivered as server-sent events when `streaming` is true. HCS-10 (OpenConvAI) traffic and OpenRouter adapters debit credits based on the configured per-message pricing and OpenRouter usage metadata.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatMessageRequest"}}}},"responses":{"200":{"description":"Message processed successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatMessageResponse"}},"text\/event-stream":{"schema":{"type":"string","description":"Server-sent events stream delivering incremental updates when `streaming` is enabled.","example":"data: {\"type\":\"event\",\"content\":{\"kind\":\"message\"}}\\n\\n"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Ledger authentication required (OpenRouter requests require an authenticated payer)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits for the requested message (HCS-10 fee or metered OpenRouter usage)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Agent interaction failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}":{"delete":{"tags":["Chat"],"summary":"End a chat session","operationId":"endChatSession","description":"Terminates a previously established chat session and clears cached authentication metadata.","parameters":[{"name":"sessionId","in":"path","required":true,"description":"Identifier returned when the chat session was created.","schema":{"type":"string"}}],"responses":{"200":{"description":"Session terminated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionEndResponse"}}}}}},"patch":{"tags":["Chat"],"summary":"Update chat session visibility","operationId":"updateChatSessionVisibility","description":"Updates a chat session visibility to public or private. Requires the sender agent to be a session member and to be verified as owned by the authenticated principal.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionVisibilityUpdateRequest"}}}},"parameters":[{"name":"sessionId","in":"path","required":true,"description":"Identifier returned when the chat session was created.","schema":{"type":"string"}}],"responses":{"200":{"description":"Session updated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionMetadataResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Not authorized to update this session","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Chat session not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}\/history":{"get":{"tags":["Chat"],"summary":"Retrieve chat history snapshot","operationId":"getChatSessionHistory","description":"Returns the currently stored chat history for a session, including the applied TTL window.","parameters":[{"name":"sessionId","in":"path","required":true,"description":"Identifier returned when the chat session was created.","schema":{"type":"string"}}],"responses":{"200":{"description":"History snapshot returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatHistorySnapshotResponse"}}}},"400":{"description":"sessionId missing or invalid","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"History persistence disabled on this deployment","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}\/meta":{"get":{"tags":["Chat"],"summary":"Retrieve chat session metadata","operationId":"getChatSessionMetadata","description":"Returns session metadata including members and visibility. Public sessions are readable without authentication; private sessions require the senderUaid query param plus authentication and ownership verification.","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"senderUaid","in":"query","required":false,"schema":{"type":"string"},"description":"Sender UAID used to authorize access to private session metadata."}],"responses":{"200":{"description":"Session metadata returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionMetadataResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Chat session not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}\/invite":{"post":{"tags":["Chat"],"summary":"Invite an agent into a chat session","operationId":"inviteChatSessionMember","description":"Adds an agent UAID as a chat session member. The invite can optionally restrict whether the invitee receives full history or only messages since the invite.","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionInviteRequest"}}}},"responses":{"200":{"description":"Invite recorded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatSessionMetadataResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Not authorized to invite for this session","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Chat session not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/public":{"get":{"tags":["Chat"],"summary":"List public chat sessions","operationId":"listPublicChatSessions","description":"Returns a paginated list of public chat sessions visible to any viewer.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Search query applied to sessionId, member UAIDs, and title."}],"responses":{"200":{"description":"Public chat sessions returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatPublicSessionsResponse"}}}},"500":{"description":"Failed to list public sessions","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}\/encryption":{"get":{"tags":["Chat"],"summary":"Get chat encryption status","operationId":"getChatSessionEncryption","description":"Returns the negotiated encryption metadata for a session. Requires chat encryption to be enabled on the broker.","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Encryption summary returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SessionEncryptionStatusResponse"}}}},"400":{"description":"sessionId missing or invalid","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Chat encryption disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}\/encryption-handshake":{"post":{"tags":["Chat"],"summary":"Submit encryption handshake payload","operationId":"submitChatEncryptionHandshake","description":"Registers an ephemeral key for the requester or responder when establishing an encrypted session.","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EncryptionHandshakeSubmission"}}}},"responses":{"200":{"description":"Handshake submission recorded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EncryptionHandshakeResponse"}}}},"400":{"description":"Validation error (missing role\/keyType\/ephemeralPublicKey)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Encrypted session not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Chat encryption disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/chat\/session\/{sessionId}\/compact":{"post":{"tags":["Chat"],"summary":"Compact chat history","operationId":"compactChatHistory","description":"Summarizes older entries in the chat history, keeps the most recent entries intact, and debits credits for the summarization cost.","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatHistoryCompactionRequest"}}}},"responses":{"200":{"description":"History compacted successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ChatHistoryCompactionResponse"}}}},"400":{"description":"Validation error (missing sessionId or no history to summarize)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required to run compaction","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits to run compaction","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"502":{"description":"Summarization provider failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Compaction disabled or credit system unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/route\/{uaid}":{"post":{"tags":["Routing"],"summary":"Send a routed message","description":"Routes a message to the agent referenced by the supplied UAID. The broker will select the correct adapter and translate the payload as required.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UaidRouteRequest"}}}},"responses":{"200":{"description":"Message routed successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UaidRouteResponse"}}}},"400":{"description":"Validation error. Returns code `message_required` or `invalid_uaid`.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"UAID not known to the broker (code `uaid_not_found`).","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"422":{"description":"The target agent is known but does not support routing (code `routing_not_supported`).","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Routing failure (code `routing_failed`).","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/resolve\/{uaid}":{"get":{"tags":["Routing"],"summary":"Resolve UAID to agent metadata","description":"Returns the cached agent profile associated with a UAID when available.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent resolved","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ResolveUaidResponse"}}}},"404":{"description":"UAID not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Lookup failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/uaids\/validate\/{uaid}":{"get":{"tags":["Routing"],"summary":"Validate UAID format","description":"Checks if a UAID is syntactically valid for any adapter configured on the broker and returns supported formatting options.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Validation completed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UaidValidationResponse"}}}},"500":{"description":"Validation failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/uaids\/connections\/{uaid}\/status":{"get":{"tags":["Routing"],"summary":"Retrieve connection status","description":"Returns connection metadata for a UAID, including adapter and connection identifiers when online.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UaidConnectionStatusResponse"}}}},"500":{"description":"Failed to load status","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/uaids\/connections\/{uaid}":{"delete":{"tags":["Routing"],"summary":"Close an active UAID connection","description":"Closes the cached connection for the UAID when one exists.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Connection closed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UaidConnectionCloseResponse"}}}},"500":{"description":"Failed to close connection","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/bridge\/federation\/registries":{"get":{"tags":["Federation"],"summary":"Federation registries known to the bridge","description":"Lists registries announced through the protocol bridge federation channel when the feature is enabled.","responses":{"200":{"description":"Registries returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/FederationRegistriesResponse"}}}},"500":{"description":"Failed to load registries","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register\/additional-registries":{"get":{"tags":["Registration"],"summary":"List available additional registries","description":"Returns the catalog of optional registries (and associated networks) that can be selected during agent registration.","responses":{"200":{"description":"Available registries returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AdditionalRegistriesResponse"}}}},"500":{"description":"Failed to enumerate registries","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Additional registries are temporarily unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register\/quote":{"post":{"tags":["Registration"],"summary":"Estimate registration credits","description":"Returns credit requirements for registering an agent using the supplied HCS-11 profile. When credit tracking is enabled the response includes balance details.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentRegistrationRequest"}}}},"responses":{"200":{"description":"Quote calculated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegistrationQuoteResponse"}}}},"400":{"description":"Invalid registration payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to generate quote","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register":{"post":{"tags":["Registration"],"summary":"Register a new agent","description":"Registers an agent profile with the broker and optional Hedera registries. Requires a valid HCS-11 profile document.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentRegistrationRequest"}}}},"responses":{"200":{"description":"Agent registered","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentRegistrationResponse"}}}},"202":{"description":"Primary registry published; additional registries are being processed asynchronously. Use the returned `attemptId` with `\/api\/v1\/register\/progress\/{attemptId}` to poll for completion.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentRegistrationResponse"}}}},"207":{"description":"Primary registry completed, but one or more additional registries failed during this attempt.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentRegistrationResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits to complete registration","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Registration failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register\/{uaid}":{"put":{"tags":["Registration"],"summary":"Update a registered agent","description":"Updates the metadata for a previously registered agent while preserving UAID-defining fields.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}},{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentRegistrationRequest"}}}},"responses":{"200":{"description":"Agent updated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentUpdateResponse"}}}},"202":{"description":"Primary registry update accepted; additional registries are being processed asynchronously. Use the returned `attemptId` with `\/api\/v1\/register\/progress\/{attemptId}` to poll for completion.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentUpdateResponse"}}}},"207":{"description":"Primary registry update completed, but one or more additional registries failed.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentUpdateResponse"}}}},"400":{"description":"Validation error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits to apply the update","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Agent not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Update failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Profile update service unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"delete":{"tags":["Registration"],"summary":"Unregister an agent","description":"Removes a self-registered agent from the broker index.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}},{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent removed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AgentDeleteResponse"}}}},"403":{"description":"Agent not eligible for deletion","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Agent not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Deletion failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register\/status\/{uaid}":{"get":{"tags":["Registration"],"summary":"Check registration status","description":"Returns registration metadata for the UAID including profile details when indexed.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegistrationStatusResponse"}}}},"404":{"description":"Agent not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Status lookup failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register\/progress\/{attemptId}":{"get":{"tags":["Registration"],"summary":"Retrieve registration attempt progress","description":"Returns the latest status for a registration or update attempt that supplied an attempt identifier in its response.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}},{"name":"attemptId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Progress record returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegistrationProgressResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"The authenticated caller does not have access to this registration attempt","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Progress record not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to retrieve progress information","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Progress tracking is not enabled for this deployment","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/register\/{uaid}\/openconvai":{"post":{"tags":["Registration"],"summary":"Prepare OpenConvAI registration data","description":"Returns helper instructions and profile data required to onboard a registered agent into OpenConvAI.","parameters":[{"name":"uaid","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/OpenConvaiBridgeRequest"}}}},"responses":{"200":{"description":"Bridge data prepared","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/OpenConvaiBridgeResponse"}}}},"400":{"description":"Missing operator identifier","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Agent not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to prepare OpenConvAI registration","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/providers":{"get":{"tags":["Credits"],"summary":"List configured credit purchase providers","description":"Returns metadata for every payment provider that can be used to purchase registry credits.","responses":{"200":{"description":"Provider metadata returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreditProvidersResponse"}}}},"500":{"description":"Failed to load provider information","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/balance":{"get":{"tags":["Credits"],"summary":"Fetch the current credit balance for an account","description":"Looks up the credit balance associated with the authenticated user or the optional Hedera account identifier supplied as a query parameter.","parameters":[{"in":"query","name":"accountId","required":false,"description":"Hedera account ID to resolve. Defaults to the authenticated session account when omitted.","schema":{"type":"string","example":"0.0.123456"}}],"responses":{"200":{"description":"Balance lookup succeeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreditBalanceResponse"}}}},"400":{"description":"Missing or invalid account identifier","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Balance lookup failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/redeem-points\/quote":{"get":{"tags":["Credits"],"summary":"Quote a skill-points-to-credits redemption","description":"Returns how many registry credits can currently be redeemed from approved skill-related HOL points for the authenticated Hedera account. The accountId query parameter is optional only when the authenticated principal already resolves to a Hedera account ID.","parameters":[{"in":"query","name":"accountId","required":false,"description":"Optional Hedera account ID override. Defaults to the authenticated session account when omitted.","schema":{"type":"string","example":"0.0.123456"}}],"responses":{"200":{"description":"Redemption quote returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPointsRedemptionQuoteResponse"}}}},"400":{"description":"The request did not resolve to a Hedera account ID. Returns code `account_id_required` or `hedera_account_required`.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"The requested account does not match the authenticated principal","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to compute redemption quote","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill points redemption is not configured on this broker","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/redeem-points":{"post":{"tags":["Credits"],"summary":"Redeem approved skill points into registry credits","description":"Converts the caller\u2019s currently redeemable skill-related HOL points into registry credits and returns the updated balance.","requestBody":{"required":false,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPointsRedemptionRequest"}}}},"responses":{"200":{"description":"Skill points redeemed successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPointsRedemptionResponse"}}}},"400":{"description":"No redeemable skill points are available, or the request did not resolve to a Hedera account ID. Returns code `account_id_required` or `hedera_account_required` when account resolution fails.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"The requested account does not match the authenticated principal","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to redeem skill points","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill points redemption is not configured on this broker","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/transactions":{"get":{"tags":["Credits"],"summary":"Fetch credit transaction history for an account","description":"Returns recent credit transactions associated with the authenticated user or the optional Hedera account identifier supplied as a query parameter.","parameters":[{"in":"query","name":"accountId","required":false,"description":"Hedera account ID to resolve. Defaults to the authenticated session account when omitted.","schema":{"type":"string","example":"0.0.123456"}},{"in":"query","name":"limit","required":false,"description":"Maximum number of transactions to return (max 200).","schema":{"type":"integer","example":50}},{"in":"query","name":"offset","required":false,"description":"Number of matching transactions to skip.","schema":{"type":"integer","example":0}},{"in":"query","name":"type","required":false,"description":"Optional transaction type filter.","schema":{"type":"string","example":"debit"}},{"in":"query","name":"status","required":false,"description":"Optional transaction status filter.","schema":{"type":"string","example":"completed"}},{"in":"query","name":"startDate","required":false,"description":"Optional ISO timestamp lower bound (inclusive).","schema":{"type":"string","example":"2026-02-08T00:00:00.000Z"}},{"in":"query","name":"endDate","required":false,"description":"Optional ISO timestamp upper bound (inclusive).","schema":{"type":"string","example":"2026-02-09T00:00:00.000Z"}}],"responses":{"200":{"description":"Transaction history returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreditTransactionListResponse"}}}},"400":{"description":"Invalid request parameters","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"The requested account does not match the authenticated principal","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Transaction lookup failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/payments\/hbar\/intent":{"post":{"tags":["Credits"],"summary":"Create a Hedera (HBAR) purchase intent","description":"Returns a pre-signed Hedera transfer transaction that moves HBAR from the purchaser to the broker treasury and records the credit amount that will be issued once submitted.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/HbarPurchaseIntentRequest"}}}},"responses":{"200":{"description":"HBAR purchase intent created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/HbarPurchaseIntentResponse"}}}},"400":{"description":"Missing Hedera account or purchase amounts","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to prepare Hedera transaction","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"HBAR purchase support is not configured","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/credits\/payments\/intent":{"post":{"tags":["Credits"],"summary":"Request a Stripe payment intent for credit purchases","description":"Creates or reuses a Stripe payment intent for purchasing registry credits with a traditional payment method.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StripePurchaseIntentRequest"}}}},"responses":{"200":{"description":"Stripe payment intent created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/StripePurchaseIntentResponse"}}}},"400":{"description":"Invalid payment intent payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Stripe payment intent creation failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Stripe is not configured for this broker","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/encryption\/keys":{"post":{"tags":["Encryption"],"summary":"Register an encryption key","operationId":"registerEncryptionKey","description":"Registers a long-term public key that may be referenced when establishing encrypted chat sessions. Requires ledger authentication or an API key tied to the target UAID\/account.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegisterEncryptionKeyRequest"}}}},"responses":{"201":{"description":"Encryption key registered","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegisterEncryptionKeyResponse"}}}},"400":{"description":"Validation or normalization error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/verification\/status\/{uaid}":{"get":{"tags":["Verification"],"summary":"Get ownership verification status for a UAID","operationId":"getVerificationStatus","description":"Returns whether a UAID currently has a verified ownership record. This endpoint is public and used for UI gating.","parameters":[{"in":"path","name":"uaid","required":true,"description":"UAID to inspect.","schema":{"type":"string"}}],"responses":{"200":{"description":"Verification status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VerificationStatusResponse"}}}},"400":{"description":"Missing or invalid UAID","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to check verification status","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/verification\/dns\/verify":{"post":{"tags":["Verification"],"summary":"Verify UAID DNS TXT binding","operationId":"verifyUaidDnsTxt","description":"Performs live HCS-14 UAID DNS TXT verification for the provided UAID and optionally persists the verification signal.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VerificationDnsVerifyRequest"}}}},"responses":{"200":{"description":"DNS verification evaluated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VerificationDnsStatusResponse"}}}},"400":{"description":"Missing or invalid request payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"DNS verification failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/verification\/dns\/status\/{uaid}":{"get":{"tags":["Verification"],"summary":"Get UAID DNS TXT verification status","operationId":"getVerificationDnsStatus","description":"Returns the stored DNS verification state for a UAID, or a fresh live verification result when refresh=true.","parameters":[{"in":"path","name":"uaid","required":true,"description":"UAID to verify against DNS.","schema":{"type":"string"}},{"in":"query","name":"refresh","required":false,"description":"When true, forces a live DNS lookup instead of returning stored metadata when available.","schema":{"type":"boolean"}},{"in":"query","name":"persist","required":false,"description":"When true, persists the current verification result into agent metadata.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"DNS verification status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/VerificationDnsStatusResponse"}}}},"400":{"description":"Missing or invalid UAID","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"500":{"description":"Failed to fetch DNS verification status","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/protocols":{"get":{"tags":["Registry"],"summary":"Known communication protocols","description":"Return the list of communication protocol identifiers currently supported by the broker routing layer.","responses":{"200":{"description":"Protocols returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ProtocolsResponse"}}}},"500":{"description":"Unexpected server error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/inscribe\/content\/config":{"get":{"tags":["Content"],"summary":"Get content inscription service configuration","description":"Returns the current configuration for the content inscription service, including whether the service is enabled, maximum file size limits, and allowed MIME types. Requires ledger authentication (Hedera or EVM wallet).","responses":{"200":{"description":"Service configuration returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionConfigResponse"}}}},"503":{"description":"Content inscription service is disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/inscribe\/content\/quote":{"post":{"tags":["Content"],"summary":"Get a cost quote for inscribing content","description":"Calculates the credit cost for inscribing content on HCS. The quote includes the number of credits required, HBAR equivalent, and an expiration time. Use the returned quoteId when creating an inscription job to lock in the quoted price. Requires ledger authentication (Hedera or EVM wallet).","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionQuoteRequest"}}}},"responses":{"200":{"description":"Quote calculated successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionQuoteResponse"}}}},"400":{"description":"Invalid request (missing content, unsupported MIME type, or file too large)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Content inscription service is disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/inscribe\/content":{"post":{"tags":["Content"],"summary":"Create a content inscription job","description":"Submits content for inscription on HCS using registry credits. Credits can be purchased with HBAR or via x402 (EVM wallet). The content is processed asynchronously and inscribed to a new topic. Poll the job status endpoint to track progress. Optionally provide a quoteId to use a previously obtained quote.","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionCreateRequest"}}}},"responses":{"202":{"description":"Job created and queued for processing","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionJobStatusResponse"}}}},"400":{"description":"Invalid request (missing content, unsupported MIME type, or file too large)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits for inscription","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Content inscription service is disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"get":{"tags":["Content"],"summary":"List user content inscriptions","description":"Returns a paginated list of content inscription jobs for the authenticated user. Results are ordered by creation date (newest first).","parameters":[{"name":"x-account-id","in":"header","required":false,"description":"Optional ledger account override for credit billing and ownership checks. Defaults to the authenticated account.","schema":{"type":"string","example":"0.0.123456"}},{"in":"query","name":"limit","required":false,"description":"Maximum number of results to return (default 20, max 100)","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"in":"query","name":"offset","required":false,"description":"Number of results to skip for pagination","schema":{"type":"integer","minimum":0,"default":0}},{"in":"query","name":"status","required":false,"description":"Filter by job status","schema":{"type":"string","enum":["pending","in_progress","completed","failed"]}}],"responses":{"200":{"description":"List of inscription jobs","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionListResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/inscribe\/content\/{jobId}":{"get":{"tags":["Content"],"summary":"Get content inscription job status","description":"Returns the current status and details of a content inscription job. Once completed, the response includes the HRL (HCS Resource Locator) for the inscribed content.","parameters":[{"in":"path","name":"jobId","required":true,"description":"Unique identifier of the inscription job","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Job status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ContentInscriptionJobStatusResponse"}}}},"404":{"description":"Job not found or not owned by authenticated user","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/badge":{"get":{"tags":["Skills"],"summary":"Shields.io badge endpoint for a skill name","description":"Returns a Shields-compatible JSON payload for a skill badge. Supports version\/version_verification\/status\/verification\/repo_commit\/manifest\/domain\/trust\/tier\/safety\/upvotes\/updated metrics and custom labels.","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"version","required":false,"description":"Resolve the badge for an explicit published version instead of the broker-selected recommended stable release.","schema":{"type":"string","example":"1.5.2"}},{"in":"query","name":"metric","required":false,"schema":{"type":"string","enum":["version","version_verification","status","verification","repo_commit","manifest","domain","trust","tier","safety","upvotes","updated"],"default":"version"}},{"in":"query","name":"label","required":false,"schema":{"type":"string","example":"hcs-26-skill"}},{"in":"query","name":"style","required":false,"schema":{"type":"string","enum":["flat","flat-square","for-the-badge","plastic","social"]}}],"responses":{"200":{"description":"Badge payload returned","content":{"application\/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"integer","example":1},"label":{"type":"string","example":"skill"},"message":{"type":"string","example":"v1.2.3 \u00b7 verified"},"color":{"type":"string","example":"blue"},"style":{"type":"string","example":"flat"},"isError":{"type":"boolean"},"cacheSeconds":{"type":"integer","example":900}}}}}}}}},"\/api\/v1\/skills\/config":{"get":{"tags":["Skills"],"summary":"Get skill registry configuration","description":"Returns the current configuration for the skill registry, including whether it is enabled, the network, and registry limits.","responses":{"200":{"description":"Skill registry configuration returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryConfigResponse"}}}},"500":{"description":"Failed to load configuration","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/status":{"get":{"tags":["Skills"],"summary":"Get skill publication and trust-tier status","description":"Returns whether a skill release exists, which trust tier it has reached, and the next recommended upgrade steps for the maintainer funnel.","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"version","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Skill status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillStatusResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is disabled or temporarily unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/status\/by-repo":{"get":{"tags":["Skills"],"summary":"Get skill status by repository identity","description":"Resolves lifecycle state from repo URL, skill directory, and optional ref so agents can poll preview or published state before canonical name@version is known.","parameters":[{"in":"query","name":"repo","required":true,"schema":{"type":"string","format":"uri"}},{"in":"query","name":"skillDir","required":true,"schema":{"type":"string"}},{"in":"query","name":"ref","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repo-based skill status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillStatusResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is disabled or temporarily unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/preview":{"get":{"tags":["Skills"],"summary":"Get the latest preview artifact for a skill","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"version","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Skill preview returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPreviewLookupResponse"}}}}}}},"\/api\/v1\/skills\/preview\/by-repo":{"get":{"tags":["Skills"],"summary":"Get preview metadata by repository identity","parameters":[{"in":"query","name":"repo","required":true,"schema":{"type":"string","format":"uri"}},{"in":"query","name":"skillDir","required":true,"schema":{"type":"string"}},{"in":"query","name":"ref","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Repo-based skill preview returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPreviewLookupResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/preview\/{previewId}":{"get":{"tags":["Skills"],"summary":"Get preview metadata by preview identity","parameters":[{"in":"path","name":"previewId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preview metadata returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPreviewLookupResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/preview\/github-oidc":{"post":{"tags":["Skills"],"summary":"Upload a GitHub OIDC-backed skill preview artifact","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPreviewReport"}}}},"responses":{"200":{"description":"Skill preview uploaded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillPreviewRecord"}}}},"400":{"description":"Invalid preview payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Missing GitHub OIDC bearer token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/quote":{"post":{"tags":["Skills"],"summary":"Get a cost quote for publishing a skill package","description":"Calculates the credit cost for publishing a skill package. The package is stored on-chain using HCS-1 for file content and HCS-2 for directory\/package indexing. To publish a new version of an existing skill, include its existing directory topic id in the request body.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryQuoteRequest"}}}},"responses":{"200":{"description":"Quote calculated successfully","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryQuoteResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Forbidden (not skill owner)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/publish":{"post":{"tags":["Skills"],"summary":"Publish a skill package","description":"Publishes a skill package using registry credits. The request is processed asynchronously; poll the job status endpoint for completion details. To publish a new version of an existing skill, include its existing directory topic id in the request body (ownership is enforced).","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryPublishRequest"}}}},"responses":{"201":{"description":"Publish job created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryPublishJobResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Forbidden (not skill owner)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/jobs\/{jobId}":{"get":{"tags":["Skills"],"summary":"Get skill publish job status","description":"Returns the current status and result of a skill publish job. Once completed, the response includes the directory\/topic ids and file HRLs.","parameters":[{"in":"path","name":"jobId","required":true,"description":"Unique identifier of the publish job","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"accountId","required":false,"description":"Optional account id used to authorize status checks when using static API keys.","schema":{"type":"string","example":"0.0.123456"}}],"responses":{"200":{"description":"Job status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryJobStatusResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Job not found or not owned by requester","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills":{"get":{"tags":["Skills"],"summary":"Query published skills","description":"Queries the broker index of published skills. Use query parameters for filtering; this endpoint does not use name\/version path params.","parameters":[{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"version","required":false,"schema":{"type":"string"}},{"in":"query","name":"view","required":false,"description":"Release view mode. `latest` returns one canonical release per skill name (default). `all` returns all releases.","schema":{"type":"string","enum":["latest","all"],"default":"latest"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"includeFiles","required":false,"schema":{"type":"boolean","default":false}},{"in":"query","name":"tag","required":false,"description":"Filter by a tag value (string label or OASF numeric id as a string).","schema":{"type":"string"}},{"in":"query","name":"category","required":false,"description":"Filter by a skill category value.","schema":{"type":"string"}},{"in":"query","name":"featured","required":false,"description":"Filter to featured skills only.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Published skills returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryListResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/catalog":{"get":{"tags":["Skills"],"summary":"Query grouped skills catalog","description":"Returns one grouped catalog item per skill name with recommended version, trust, safety, and popularity metadata.","parameters":[{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"category","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":false,"description":"Repeat to filter by multiple tags.","schema":{"type":"string"}},{"in":"query","name":"featured","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"verified","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"channel","required":false,"schema":{"type":"string","enum":["stable","prerelease","all"]}},{"in":"query","name":"sortBy","required":false,"schema":{"type":"string","enum":["trust-score","trending","upvotes","updated","name"]}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Skill catalog returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillCatalogResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill catalog is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/{jobId}\/security-breakdown":{"get":{"tags":["Skills"],"summary":"Get skill scanner security breakdown","description":"Returns Cisco scanner summary and findings for a specific skill release job id.","parameters":[{"in":"path","name":"jobId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Security breakdown returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillSecurityBreakdownResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill release not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/{skillRef}\/install":{"get":{"tags":["Skills"],"summary":"Resolve install metadata for a pinned or latest release","description":"Returns canonical install snippets, pinned\/latest resolver URLs, share links, artifact URLs, pointers, and checksums for a skill reference (`name@version` or `name@latest`).","parameters":[{"in":"path","name":"skillRef","required":true,"description":"Skill reference in the form `name@version` or `name@latest`.","schema":{"type":"string","example":"registry-broker@latest"}}],"responses":{"200":{"description":"Install metadata returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillInstallResponse"}}}},"404":{"description":"Skill release not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/{skillRef}\/telemetry\/install-copy":{"post":{"tags":["Skills"],"summary":"Record a copied install snippet event for a skill release","description":"Records a lightweight install copy event for analytics and catalog ranking. Accepts optional source and installType hints.","parameters":[{"in":"path","name":"skillRef","required":true,"description":"Skill reference in the form `name@version` or `name@latest`.","schema":{"type":"string","example":"registry-broker@latest"}}],"requestBody":{"required":false,"content":{"application\/json":{"schema":{"type":"object","properties":{"source":{"type":"string","maxLength":64},"installType":{"type":"string","enum":["cli","skillmd","manifest","claude","cursor","codex","openclaw"]}},"additionalProperties":false}}}},"responses":{"202":{"description":"Telemetry event accepted","content":{"application\/json":{"schema":{"type":"object","required":["accepted"],"properties":{"accepted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill release not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/{skillRef}\/SKILL.md":{"get":{"tags":["Skills"],"summary":"Resolve SKILL.md URL for a pinned or latest release","description":"Resolves a human-friendly skill reference (`name@version` or `name@latest`) to the underlying inscribed SKILL.md artifact and returns the markdown payload directly.","parameters":[{"in":"path","name":"skillRef","required":true,"description":"Skill reference in the form `name@version` or `name@latest`.","schema":{"type":"string","example":"registry-broker@latest"}}],"responses":{"200":{"description":"Resolved SKILL.md content","content":{"text\/markdown":{"schema":{"type":"string"}}}},"400":{"description":"Invalid resolver path","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill release or artifact not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"502":{"description":"Upstream artifact fetch failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/{skillRef}\/manifest":{"get":{"tags":["Skills"],"summary":"Resolve SKILL.json manifest URL for a pinned or latest release","description":"Resolves a human-friendly skill reference (`name@version` or `name@latest`) to the inscribed SKILL.json manifest and returns the manifest payload directly.","parameters":[{"in":"path","name":"skillRef","required":true,"description":"Skill reference in the form `name@version` or `name@latest`.","schema":{"type":"string","example":"registry-broker@1.0.0"}}],"responses":{"200":{"description":"Resolved SKILL.json manifest payload","content":{"application\/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid resolver path","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill release or artifact not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"502":{"description":"Upstream artifact fetch failed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/versions":{"get":{"tags":["Skills"],"summary":"List all versions for a skill","description":"Returns all published versions for the given skill name, newest first. Use this to build version selectors and history views.","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"version","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Skill versions returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryVersionsResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/vote":{"get":{"tags":["Skills"],"summary":"Get skill vote status (authenticated)","description":"Returns the current upvote count for a skill plus whether the authenticated user has upvoted it.","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Vote status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryVoteStatusResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill votes are unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"post":{"tags":["Skills"],"summary":"Set skill vote (authenticated)","description":"Upvotes or removes an upvote for a skill on behalf of the authenticated user.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryVoteRequest"}}}},"responses":{"200":{"description":"Vote updated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryVoteStatusResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill votes are unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/verification\/request":{"post":{"tags":["Skills"],"summary":"Request skill verification (authenticated)","description":"Requests paid verification for a skill version using credits. Admins are notified and the request appears in the admin verification queue.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationRequestCreateRequest"}}}},"responses":{"201":{"description":"Verification request created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationRequestCreateResponse"}}}},"400":{"description":"Invalid request or insufficient credits","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"402":{"description":"Insufficient credits for verification fee","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Requester is not the skill owner","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"409":{"description":"Skill already verified or a verification request is already pending","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill verification is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/verification\/status":{"get":{"tags":["Skills"],"summary":"Get skill verification status (authenticated)","description":"Returns current verification status for the skill, including pending verification requests for the owner.","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"version","required":false,"description":"Specific skill version to inspect. Defaults to the latest version when omitted.","schema":{"type":"string"}}],"responses":{"200":{"description":"Verification status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationStatusResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Requester is not the skill owner","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill verification is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/verification\/domain\/challenge":{"post":{"tags":["Skills"],"summary":"Create DNS TXT domain proof challenge (authenticated)","description":"Creates a signed DNS TXT challenge for proving control of the skill website domain. The caller must be the skill owner.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationDomainProofChallengeRequest"}}}},"responses":{"201":{"description":"Domain challenge created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationDomainProofChallengeResponse"}}}},"400":{"description":"Invalid request payload","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Requester is not the skill owner","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill verification is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/verification\/domain\/verify":{"post":{"tags":["Skills"],"summary":"Verify DNS TXT domain proof (authenticated)","description":"Verifies a DNS TXT challenge and persists the domain proof signal for the target skill version.","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationDomainProofVerifyRequest"}}}},"responses":{"200":{"description":"Domain proof verification evaluated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillVerificationDomainProofVerifyResponse"}}}},"400":{"description":"Invalid request payload or challenge token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Requester is not the skill owner","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"404":{"description":"Skill not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill verification is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/mine":{"get":{"tags":["Skills"],"summary":"List owned skills (authenticated)","description":"Returns the skills owned by the authenticated user, including available versions.","parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":200}}],"responses":{"200":{"description":"Owned skills returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryMineResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/my-list":{"get":{"tags":["Skills"],"summary":"List owned + upvoted skills (authenticated)","description":"Returns the authenticated user\u2019s owned skills plus their upvoted skills list (paginated).","parameters":[{"in":"query","name":"limit","required":false,"description":"Max number of upvoted skills to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"in":"query","name":"cursor","required":false,"description":"Pagination cursor for the upvoted skills list.","schema":{"type":"string"}}],"responses":{"200":{"description":"My skills list returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryMyListResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/ownership":{"get":{"tags":["Skills"],"summary":"Check skill ownership (authenticated)","description":"Returns whether the requested skill exists and whether the requester is the owner.","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}},{"in":"query","name":"accountId","required":false,"description":"Optional account id used to authorize ownership checks when using static API keys.","schema":{"type":"string","example":"0.0.123456"}}],"responses":{"200":{"description":"Ownership status returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryOwnershipResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill registry is disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/recommended":{"get":{"tags":["Skills"],"summary":"Get recommended version metadata for a skill","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recommended version metadata returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRecommendedVersionResponse"}}}},"404":{"description":"Recommended version not found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill recommended version metadata is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}},"post":{"tags":["Skills"],"summary":"Set recommended version metadata (authenticated)","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRecommendedVersionSetRequest"}}}},"responses":{"200":{"description":"Recommended version updated","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRecommendedVersionResponse"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Requester is not the owner or admin","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"503":{"description":"Skill recommended version metadata is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/deprecations":{"get":{"tags":["Skills"],"summary":"Get deprecations for a skill name","parameters":[{"in":"query","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deprecations returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillDeprecationsResponse"}}}},"400":{"description":"Invalid request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/deprecate":{"post":{"tags":["Skills"],"summary":"Deprecate a skill or version (authenticated)","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillDeprecationSetRequest"}}}},"responses":{"200":{"description":"Deprecation saved","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillDeprecationRecord"}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Requester is not the owner or admin","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/tags":{"get":{"tags":["Skills"],"summary":"List skill tags","responses":{"200":{"description":"Tags returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryTagsResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/categories":{"get":{"tags":["Skills"],"summary":"List skill categories","responses":{"200":{"description":"Categories returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SkillRegistryCategoriesResponse"}}}},"503":{"description":"Skill registry is unavailable","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/skills\/featured":{"put":{"tags":["Skills"],"summary":"Set featured status for a skill (authenticated)","requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["name","featured"],"properties":{"name":{"type":"string"},"featured":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Featured status updated","content":{"application\/json":{"schema":{"type":"object","required":["name","featured"],"properties":{"name":{"type":"string"},"featured":{"type":"boolean"}},"additionalProperties":false}}}},"401":{"description":"Authentication required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}},"403":{"description":"Admin role required","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ErrorResponse"}}}}}}},"\/api\/v1\/plugins":{"get":{"tags":["Plugins"],"summary":"List imported Codex plugins","responses":{"200":{"description":"Plugin list returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryCatalogResponse"}}}}}}},"\/api\/v1\/plugins\/catalog":{"get":{"tags":["Plugins"],"summary":"List plugin catalog entries","responses":{"200":{"description":"Plugin catalog returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryCatalogResponse"}}}}}}},"\/api\/v1\/plugins\/tags":{"get":{"tags":["Plugins"],"summary":"List plugin tags","responses":{"200":{"description":"Plugin tags returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryTagsResponse"}}}}}}},"\/api\/v1\/plugins\/categories":{"get":{"tags":["Plugins"],"summary":"List plugin categories","responses":{"200":{"description":"Plugin categories returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryCategoriesResponse"}}}}}}},"\/api\/v1\/plugins\/badge":{"get":{"tags":["Plugins"],"summary":"Build a plugin badge payload","responses":{"200":{"description":"Badge payload returned","content":{"application\/json":{"schema":{"type":"object","required":["schemaVersion","label","message","color"],"properties":{"schemaVersion":{"type":"integer","example":1},"label":{"type":"string","example":"trust"},"message":{"type":"string","example":"84"},"color":{"type":"string","example":"16A34A"},"imageUrl":{"type":"string","format":"uri"},"svg":{"type":"string"}}}}}}}}},"\/api\/v1\/plugins\/{slug}":{"get":{"tags":["Plugins"],"summary":"Get plugin detail","responses":{"200":{"description":"Plugin detail returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryDetail"}}}}}}},"\/api\/v1\/plugins\/{slug}\/security-breakdown":{"get":{"tags":["Plugins"],"summary":"Get plugin security breakdown","responses":{"200":{"description":"Plugin security breakdown returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginSecurityBreakdownResponse"}}}}}}},"\/api\/v1\/plugins\/{slug}\/install":{"get":{"tags":["Plugins"],"summary":"Get plugin install guidance","responses":{"200":{"description":"Plugin install metadata returned","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginInstallResponse"}}}}}}},"\/api\/v1\/plugins\/import\/github":{"post":{"tags":["Plugins"],"summary":"Import a plugin from GitHub","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginImportGithubRequest"}}}},"responses":{"201":{"description":"Plugin import completed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryDetail"}}}}}}},"\/api\/v1\/plugins\/import\/marketplace":{"post":{"tags":["Plugins"],"summary":"Import a plugin from a marketplace entry","requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginImportMarketplaceRequest"}}}},"responses":{"201":{"description":"Plugin marketplace import completed","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/PluginRegistryDetail"}}}}}}}},"components":{"schemas":{"HealthResponse":{"type":"object","required":["status","timestamp"],"properties":{"status":{"type":"string","example":"ok"},"timestamp":{"type":"string","format":"date-time"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"code":{"type":"string"},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#\/components\/schemas\/ValidationError"}}},"additionalProperties":false},"PluginInventoryCounts":{"type":"object","required":["skills","mcpServers","apps","screenshots"],"properties":{"skills":{"type":"integer"},"mcpServers":{"type":"integer"},"apps":{"type":"integer"},"screenshots":{"type":"integer"}}},"PluginBadge":{"type":"object","required":["id","label","description"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"}}},"PluginRegistryBadgeLink":{"type":"object","required":["metric","endpointUrl","shieldsUrl","markdown","html"],"properties":{"metric":{"type":"string"},"endpointUrl":{"type":"string"},"shieldsUrl":{"type":"string"},"markdown":{"type":"string"},"html":{"type":"string"}}},"PluginScannerRegistryLinks":{"type":"object","required":["slug","baseUrl","canonicalUrl","embedUrl","badgeEndpointUrl","badges"],"properties":{"slug":{"type":"string"},"baseUrl":{"type":"string"},"canonicalUrl":{"type":"string"},"embedUrl":{"type":"string"},"badgeEndpointUrl":{"type":"string"},"badges":{"type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/PluginRegistryBadgeLink"}}}},"PluginFinding":{"type":"object","required":["ruleId","category","severity","message"],"properties":{"ruleId":{"type":"string"},"category":{"type":"string"},"severity":{"type":"string","enum":["critical","high","medium","low","info"]},"path":{"type":"string","nullable":true},"message":{"type":"string"},"fix":{"type":"string","nullable":true}}},"PluginScannerCheck":{"type":"object","required":["name","passed","points","maxPoints","message","findings"],"properties":{"name":{"type":"string"},"passed":{"type":"boolean"},"points":{"type":"integer"},"maxPoints":{"type":"integer"},"message":{"type":"string"},"findings":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginFinding"}}}},"PluginScannerCategory":{"type":"object","required":["id","name","score","max","applicable","checks"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"score":{"type":"integer"},"max":{"type":"integer"},"applicable":{"type":"boolean"},"checks":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginScannerCheck"}}}},"PluginScannerIntegration":{"type":"object","required":["name","status","message","findingsCount","metadata"],"properties":{"name":{"type":"string"},"status":{"type":"string"},"message":{"type":"string"},"findingsCount":{"type":"integer"},"metadata":{"type":"object","additionalProperties":{"type":"string"}}}},"PluginScannerSummary":{"type":"object","required":["provider","score","grade","severityCounts","categories","integrations"],"properties":{"provider":{"type":"string","enum":["codex-plugin-scanner","registry-broker-fallback"]},"version":{"type":"string","nullable":true},"score":{"type":"integer"},"grade":{"type":"string"},"gradeLabel":{"type":"string","nullable":true},"severityCounts":{"type":"object","additionalProperties":{"type":"integer"}},"categories":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginScannerCategory"}},"integrations":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginScannerIntegration"}},"registry":{"$ref":"#\/components\/schemas\/PluginScannerRegistryLinks"}}},"PluginSafetySummary":{"type":"object","required":["score","label","findingsTotal","highFindings","categories"],"properties":{"score":{"type":"integer"},"label":{"type":"string","enum":["safe","review","caution","unsafe"]},"findingsTotal":{"type":"integer"},"highFindings":{"type":"integer"},"categories":{"type":"object","additionalProperties":{"type":"integer"}},"notApplicable":{"type":"array","items":{"type":"string"}}}},"PluginVerificationSignals":{"type":"object","properties":{"publisherVerified":{"type":"boolean"},"repoCommitPinned":{"type":"boolean"},"manifestDigestVerified":{"type":"boolean"},"domainProof":{"type":"boolean"}}},"PluginRegistrySummary":{"type":"object","required":["slug","manifestName","displayName","version","inventory","updatedAt"],"properties":{"slug":{"type":"string"},"manifestName":{"type":"string"},"displayName":{"type":"string"},"version":{"type":"string"},"description":{"type":"string","nullable":true},"developerName":{"type":"string","nullable":true},"repository":{"type":"string","nullable":true},"homepage":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"featured":{"type":"boolean"},"verified":{"type":"boolean"},"trustScore":{"type":"number","nullable":true},"trustScores":{"type":"object","additionalProperties":{"type":"number"}},"safety":{"$ref":"#\/components\/schemas\/PluginSafetySummary"},"scanner":{"$ref":"#\/components\/schemas\/PluginScannerSummary"},"badges":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginBadge"}},"inventory":{"$ref":"#\/components\/schemas\/PluginInventoryCounts"},"githubMetrics":{"$ref":"#\/components\/schemas\/PluginRegistryGithubMetrics"},"sourceRepo":{"type":"string","nullable":true},"sourceCommit":{"type":"string","nullable":true},"updatedAt":{"type":"string","format":"date-time"}}},"PluginRegistryGithubMetrics":{"type":"object","required":["stars","forks","watchers","openIssues","fetchedAt"],"properties":{"stars":{"type":"integer"},"forks":{"type":"integer"},"watchers":{"type":"integer"},"openIssues":{"type":"integer"},"createdAt":{"type":"string","format":"date-time","nullable":true},"pushedAt":{"type":"string","format":"date-time","nullable":true},"fetchedAt":{"type":"string","format":"date-time"}}},"PluginRegistryDetail":{"allOf":[{"$ref":"#\/components\/schemas\/PluginRegistrySummary"},{"type":"object","required":["pluginRoot","manifest"],"properties":{"pluginRoot":{"type":"string"},"manifest":{"type":"object","additionalProperties":true},"marketplaceSource":{"type":"object","properties":{"repoUrl":{"type":"string","nullable":true},"marketplacePath":{"type":"string","nullable":true},"sourcePath":{"type":"string","nullable":true},"installationPolicy":{"type":"string","nullable":true},"authenticationPolicy":{"type":"string","nullable":true}}},"findings":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginFinding"}},"verificationSignals":{"$ref":"#\/components\/schemas\/PluginVerificationSignals"},"files":{"type":"array","items":{"type":"object","required":["path","role"],"properties":{"path":{"type":"string"},"role":{"type":"string"},"sha256":{"type":"string","nullable":true},"sizeBytes":{"type":"integer","nullable":true}}}}}}]},"PluginRegistryCatalogResponse":{"type":"object","required":["items","nextCursor","totalCount"],"properties":{"items":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginRegistrySummary"}},"nextCursor":{"type":"string","nullable":true},"totalCount":{"type":"integer","minimum":0}}},"PluginRegistryTagsResponse":{"type":"object","required":["tags"],"properties":{"tags":{"type":"array","items":{"type":"string"}}}},"PluginRegistryCategoriesResponse":{"type":"object","required":["categories"],"properties":{"categories":{"type":"array","items":{"type":"string"}}}},"PluginSecurityBreakdownResponse":{"type":"object","required":["slug","safety","findings"],"properties":{"slug":{"type":"string"},"safety":{"$ref":"#\/components\/schemas\/PluginSafetySummary"},"findings":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginFinding"}}}},"PluginInstallResponse":{"type":"object","required":["slug","marketplaceFile","snippet"],"properties":{"slug":{"type":"string"},"marketplaceFile":{"type":"object","required":["repoPath","personalPath"],"properties":{"repoPath":{"type":"string"},"personalPath":{"type":"string"}}},"snippet":{"type":"string"}}},"PluginImportSnapshotFile":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}}},"PluginImportGithubRequest":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","format":"uri"},"ref":{"type":"string","nullable":true},"pluginRoot":{"type":"string","nullable":true},"files":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginImportSnapshotFile"}}}},"PluginImportMarketplaceRequest":{"type":"object","required":["repoUrl","marketplaceEntries"],"properties":{"repoUrl":{"type":"string","format":"uri"},"ref":{"type":"string","nullable":true},"marketplaceEntries":{"type":"array","items":{"type":"object","required":["source"],"properties":{"source":{"type":"object","required":["path"],"properties":{"path":{"type":"string"}}},"category":{"type":"string","nullable":true},"policy":{"type":"object","properties":{"installation":{"type":"string","nullable":true},"authentication":{"type":"string","nullable":true}}}}}},"files":{"type":"array","items":{"$ref":"#\/components\/schemas\/PluginImportSnapshotFile"}}}},"ProgrammableSecretsMetadata":{"type":"object","additionalProperties":true,"example":{"title":"Encrypted dataset","mimeType":"application\/octet-stream","plaintextHash":"0xabc123"}},"ProgrammableSecretsUaidCache":{"type":"object","required":["id","uaid","status","cachedAt"],"properties":{"id":{"type":"string","format":"uuid"},"uaid":{"type":"string"},"status":{"type":"string","enum":["pending","fresh","stale","error"]},"validationResult":{"type":"object","nullable":true,"additionalProperties":true},"resolutionResult":{"type":"object","nullable":true,"additionalProperties":true},"agentDetailResult":{"type":"object","nullable":true,"additionalProperties":true},"verificationResult":{"type":"object","nullable":true,"additionalProperties":true},"errorMessage":{"type":"string","nullable":true},"cachedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time","nullable":true}}},"ProgrammableSecretsPolicy":{"type":"object","required":["id","network","chainId","contractAddress","status","providerAddress","payoutAddress","paymentToken","priceWei","active","ciphertextHash","keyCommitment","metadataHash","providerUaidHash","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"network":{"type":"string","example":"testnet"},"chainId":{"type":"integer","example":46630},"contractAddress":{"type":"string"},"policyId":{"type":"integer","nullable":true},"datasetId":{"type":"integer","nullable":true},"policyType":{"type":"string","nullable":true},"status":{"type":"string","enum":["staged","prepared","finalized","indexed","failed"]},"providerAddress":{"type":"string"},"payoutAddress":{"type":"string"},"paymentToken":{"type":"string"},"priceWei":{"type":"string"},"expiresAt":{"type":"string","format":"date-time","nullable":true},"expiresAtUnix":{"type":"integer","nullable":true},"active":{"type":"boolean"},"ciphertextHash":{"type":"string"},"keyCommitment":{"type":"string"},"metadataHash":{"type":"string"},"providerUaid":{"type":"string","nullable":true},"providerUaidHash":{"type":"string"},"metadataJson":{"$ref":"#\/components\/schemas\/ProgrammableSecretsMetadata"},"createdTxHash":{"type":"string","nullable":true},"createdBlockNumber":{"type":"integer","nullable":true},"policyCreatedAt":{"type":"string","format":"date-time","nullable":true},"confirmedAt":{"type":"string","format":"date-time","nullable":true},"indexedAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ProgrammableSecretsHealthResponse":{"type":"object","required":["enabled","network","chainId","rpcUrl","ciphertextStorageRoot","pollingIntervalMs","indexer"],"properties":{"enabled":{"type":"boolean"},"network":{"type":"string","example":"testnet"},"chainId":{"type":"integer","example":46630},"rpcUrl":{"type":"string","format":"uri"},"contractAddress":{"type":"string","nullable":true},"ciphertextStorageRoot":{"type":"string"},"pollingIntervalMs":{"type":"integer"},"currentBlockNumber":{"type":"integer","nullable":true},"indexer":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["idle","running","error"]},"latestIndexedBlock":{"type":"integer","nullable":true},"latestIndexedAt":{"type":"string","format":"date-time","nullable":true},"lastSeenHeadBlock":{"type":"integer","nullable":true},"lagBlocks":{"type":"integer","nullable":true},"lastError":{"type":"string","nullable":true}}}}},"ProgrammableSecretsPolicyListResponse":{"type":"object","required":["policies"],"properties":{"policies":{"type":"array","items":{"$ref":"#\/components\/schemas\/ProgrammableSecretsPolicy"}}}},"ProgrammableSecretsPolicyDetailResponse":{"type":"object","required":["policy"],"properties":{"policy":{"$ref":"#\/components\/schemas\/ProgrammableSecretsPolicy"},"providerIdentity":{"anyOf":[{"$ref":"#\/components\/schemas\/ProgrammableSecretsUaidCache"},{"type":"null"}]}}},"ProgrammableSecretsNonceRequest":{"type":"object","required":["policyId","buyerAddress"],"properties":{"policyId":{"type":"integer","minimum":1},"buyerAddress":{"type":"string"}}},"ProgrammableSecretsNonceResponse":{"type":"object","required":["requestId","policyId","buyerAddress","nonce","challengeMessage","expiresAt"],"properties":{"requestId":{"type":"string","format":"uuid"},"policyId":{"type":"integer"},"buyerAddress":{"type":"string"},"nonce":{"type":"string"},"challengeMessage":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}}},"ProgrammableSecretsPreparePolicyRequest":{"type":"object","required":["providerAddress","providerUaid","payoutAddress","priceWei","contentKeyB64","ciphertextBase64","metadata"],"properties":{"providerAddress":{"type":"string"},"providerUaid":{"type":"string"},"payoutAddress":{"type":"string"},"paymentToken":{"type":"string","nullable":true},"priceWei":{"type":"string"},"expiresAtUnix":{"type":"integer","nullable":true},"contentKeyB64":{"type":"string"},"ciphertextBase64":{"type":"string"},"mimeType":{"type":"string","nullable":true},"metadata":{"$ref":"#\/components\/schemas\/ProgrammableSecretsMetadata"}}},"ProgrammableSecretsPreparePolicyMultipartRequest":{"type":"object","required":["providerAddress","providerUaid","payoutAddress","priceWei","contentKeyB64","metadata","ciphertext"],"properties":{"providerAddress":{"type":"string"},"providerUaid":{"type":"string"},"payoutAddress":{"type":"string"},"paymentToken":{"type":"string","nullable":true},"priceWei":{"type":"string"},"expiresAtUnix":{"type":"integer","nullable":true},"contentKeyB64":{"type":"string"},"mimeType":{"type":"string","nullable":true},"metadata":{"type":"string","description":"Canonical metadata JSON serialized as a string field."},"ciphertext":{"type":"string","format":"binary"}}},"ProgrammableSecretsPreparePolicyResponse":{"type":"object","required":["stagedPolicyId","contractAddress","chainId","network","onchainInputs"],"properties":{"stagedPolicyId":{"type":"string","format":"uuid"},"policyId":{"type":"integer","nullable":true},"contractAddress":{"type":"string","nullable":true},"chainId":{"type":"integer"},"network":{"type":"string"},"onchainInputs":{"type":"object","required":["payoutAddress","paymentToken","priceWei","expiresAt","ciphertextHash","keyCommitment","metadataHash","providerUaidHash"],"properties":{"payoutAddress":{"type":"string"},"paymentToken":{"type":"string"},"priceWei":{"type":"string"},"expiresAt":{"type":"integer"},"ciphertextHash":{"type":"string"},"keyCommitment":{"type":"string"},"metadataHash":{"type":"string"},"providerUaidHash":{"type":"string"}}}}},"ProgrammableSecretsConfirmPolicyRequest":{"type":"object","required":["stagedPolicyId","policyId","createdTxHash"],"properties":{"stagedPolicyId":{"type":"string","format":"uuid"},"policyId":{"type":"integer","minimum":1},"createdTxHash":{"type":"string"},"createdBlockNumber":{"type":"integer","nullable":true},"createdBlockHash":{"type":"string","nullable":true},"createdLogIndex":{"type":"integer","nullable":true},"policyCreatedAt":{"type":"string","format":"date-time","nullable":true}}},"ProgrammableSecretsPolicyConfirmResponse":{"type":"object","required":["policy"],"properties":{"policy":{"$ref":"#\/components\/schemas\/ProgrammableSecretsPolicy"}}},"ProgrammableSecretsKeyRequest":{"type":"object","required":["requestId","policyId","buyerAddress","nonce","signature","buyerRsaPublicKeyPem","buyerPublicKeyFingerprint"],"properties":{"requestId":{"type":"string","format":"uuid"},"policyId":{"type":"integer","minimum":1},"buyerAddress":{"type":"string"},"nonce":{"type":"string"},"signature":{"type":"string"},"buyerRsaPublicKeyPem":{"type":"string"},"buyerPublicKeyFingerprint":{"type":"string"}}},"ProgrammableSecretsKeyRequestResponse":{"type":"object","required":["id","policyId","buyerAddress","status","challengeMessage","nonceIssuedAt","nonceExpiresAt"],"properties":{"id":{"type":"string","format":"uuid"},"policyId":{"type":"integer"},"buyerAddress":{"type":"string"},"status":{"type":"string","enum":["nonce-issued","pending","issued","denied","expired"]},"challengeMessage":{"type":"string"},"nonceIssuedAt":{"type":"string","format":"date-time"},"nonceExpiresAt":{"type":"string","format":"date-time"},"nonceConsumedAt":{"type":"string","format":"date-time","nullable":true},"buyerPublicKeyFingerprint":{"type":"string","nullable":true},"encryptedKey":{"type":"string","nullable":true},"ciphertextUrl":{"type":"string","nullable":true},"ciphertextHash":{"type":"string","nullable":true},"keyCommitment":{"type":"string","nullable":true},"metadataJson":{"anyOf":[{"$ref":"#\/components\/schemas\/ProgrammableSecretsMetadata"},{"type":"null"}]},"completedAt":{"type":"string","format":"date-time","nullable":true},"errorCode":{"type":"string","nullable":true},"errorMessage":{"type":"string","nullable":true}}},"ValidationError":{"type":"object","required":["message"],"properties":{"field":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false},"ValidationErrorResponse":{"allOf":[{"$ref":"#\/components\/schemas\/ErrorResponse"},{"properties":{"error":{"example":"Validation failed"}}}]},"AgentSummary":{"type":"object","required":["uaid","name","registry"],"properties":{"id":{"type":"string","description":"Internal identifier for the agent."},"uaid":{"type":"string","description":"Universal Agent Identifier."},"registry":{"type":"string","description":"Registry namespace the agent originated from."},"name":{"type":"string"},"description":{"type":"string"},"capabilities":{"type":"array","description":"Capabilities advertised by the agent.","items":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"protocols":{"type":"array","items":{"type":"string"}},"endpoints":{"type":"object","description":"Known endpoints for interacting with the agent.","properties":{"primary":{"type":"string","format":"uri"},"api":{"type":"string","format":"uri"},"websocket":{"type":"string","format":"uri"},"grpc":{"type":"string","format":"uri"},"rest":{"type":"string","format":"uri"}},"additionalProperties":true},"metadata":{"type":"object","additionalProperties":true},"lastSeen":{"type":"string","format":"date-time"}},"additionalProperties":true,"example":{"id":"erc8004-11155111-1538","uaid":"uaid:aid:7uGHL6U2GYw95VbZ3jvy5P11qW52MrojpFXozmBy8cFuHk8T1jRw6trVpx1zwS4Y78;uid=11155111:1538;registry=erc-8004;proto=erc-8004;nativeId=11155111:1538","registry":"erc-8004","name":"Babylon Prediction Markets","description":"Indexes Babylon\u2019s ERC-8004 prediction market agents registered on Ethereum Sepolia.","capabilities":["financial-services","analytics"],"protocols":["erc-8004"],"endpoints":{"primary":"https:\/\/agents.babylon.markets\/.well-known\/agent.json","rest":"https:\/\/api.babylon.markets\/v1"},"metadata":{"nativeId":"11155111:1538","nativeNetwork":"ethereum-sepolia","payments":{"supported":["x402"],"protocols":{"x402":{"paymentNetwork":"base","paymentToken":"USDC","priceUsdc":0.05}}},"availabilityStatus":"online","availabilityLatencyMs":420},"lastSeen":"2025-03-14T12:32:11.000Z"}},"AgentDetail":{"allOf":[{"$ref":"#\/components\/schemas\/AgentSummary"},{"properties":{"profile":{"type":"object","description":"HCS-11 profile document recorded for the agent.","additionalProperties":true}}}]},"AgentFeedbackSummary":{"type":"object","required":["averageScore","totalFeedbacks"],"properties":{"averageScore":{"type":"number","example":87.5},"totalFeedbacks":{"type":"integer","example":12},"registry":{"type":"string","example":"erc-8004"},"network":{"type":"string","example":"eip155:11155111"},"updatedAt":{"type":"string","format":"date-time"}}},"AgentFeedbackEntry":{"type":"object","required":["registry","agentId","client","score","revoked"],"properties":{"registry":{"type":"string","example":"erc-8004"},"network":{"type":"string","example":"eip155:11155111"},"agentId":{"type":"integer","example":114},"client":{"type":"string","example":"0x1234...abcd"},"score":{"type":"number","example":90},"tag1":{"type":"string","nullable":true},"tag2":{"type":"string","nullable":true},"revoked":{"type":"boolean","example":false},"feedbackIndex":{"type":"integer","nullable":true},"fileUri":{"type":"string","format":"uri","nullable":true},"fileHash":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time","nullable":true}}},"AgentFeedbackResponse":{"type":"object","required":["uaid","summary","entries"],"properties":{"uaid":{"type":"string"},"summary":{"$ref":"#\/components\/schemas\/AgentFeedbackSummary"},"entries":{"type":"array","items":{"$ref":"#\/components\/schemas\/AgentFeedbackEntry"}}}},"AgentFeedbackEligibilityRequest":{"type":"object","required":["sessionId"],"properties":{"sessionId":{"type":"string","example":"session-123"}}},"AgentFeedbackEligibilityResponse":{"type":"object","required":["uaid","sessionId","eligible","messageCount","minimumMessages"],"properties":{"uaid":{"type":"string"},"sessionId":{"type":"string"},"eligible":{"type":"boolean","example":true},"messageCount":{"type":"integer","example":4},"minimumMessages":{"type":"integer","example":3},"reason":{"type":"string","nullable":true},"onchain":{"type":"object","nullable":true,"required":["eligible"],"properties":{"eligible":{"type":"boolean"},"reason":{"type":"string","nullable":true},"estimatedCredits":{"type":"number","nullable":true},"usdEstimate":{"type":"number","nullable":true},"nativeFeeEstimate":{"type":"number","nullable":true}}}}},"AgentFeedbackSubmissionRequest":{"type":"object","required":["sessionId","score"],"properties":{"sessionId":{"type":"string"},"score":{"type":"number","example":92},"tag1":{"type":"string","nullable":true},"tag2":{"type":"string","nullable":true},"fileUri":{"type":"string","format":"uri","nullable":true},"fileHash":{"type":"string","nullable":true}}},"AgentFeedbackSubmissionResponse":{"type":"object","required":["uaid","registry","agentId","score","submittedAt"],"properties":{"uaid":{"type":"string"},"registry":{"type":"string","example":"erc-8004"},"network":{"type":"string","nullable":true},"agentId":{"type":"integer","example":114},"score":{"type":"number","example":92},"tag1":{"type":"string","nullable":true},"tag2":{"type":"string","nullable":true},"fileUri":{"type":"string","format":"uri","nullable":true},"fileHash":{"type":"string","nullable":true},"feedbackIndex":{"type":"integer","nullable":true},"transactionHash":{"type":"string","nullable":true},"signature":{"type":"string","nullable":true},"submittedAt":{"type":"string","format":"date-time"}}},"SearchResponse":{"type":"object","required":["hits","total"],"properties":{"hits":{"type":"array","items":{"$ref":"#\/components\/schemas\/AgentSummary"}},"total":{"type":"integer","minimum":0},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1}},"example":{"hits":[{"id":"erc8004-11155111-1538","uaid":"uaid:aid:7uGHL6U2GYw95VbZ3jvy5P11qW52MrojpFXozmBy8cFuHk8T1jRw6trVpx1zwS4Y78;uid=11155111:1538;registry=erc-8004;proto=erc-8004;nativeId=11155111:1538","registry":"erc-8004","name":"Babylon Prediction Markets","description":"Indexes Babylon\u2019s ERC-8004 prediction market agents registered on Ethereum Sepolia.","capabilities":["financial-services","analytics"],"protocols":["erc-8004"],"endpoints":{"primary":"https:\/\/agents.babylon.markets\/.well-known\/agent.json","rest":"https:\/\/api.babylon.markets\/v1"},"metadata":{"nativeId":"11155111:1538","nativeNetwork":"ethereum-sepolia","payments":{"supported":["x402"],"protocols":{"x402":{"paymentNetwork":"base","paymentToken":"USDC","priceUsdc":0.05}}},"availabilityStatus":"online","availabilityLatencyMs":420},"lastSeen":"2025-03-14T12:32:11.000Z"}],"total":128,"page":1,"limit":10}},"SearchFacet":{"type":"object","required":["key","label","type"],"properties":{"key":{"type":"string","description":"Metadata key that can be supplied as `metadata.<key>=value` when filtering."},"label":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["string","boolean","number"]},"adapters":{"type":"array","items":{"type":"string"},"description":"Adapters that expose this facet. When omitted the facet is global."},"options":{"type":"array","items":{"type":"object","required":["value","label"],"properties":{"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"label":{"type":"string"}}},"description":"Optional predefined values that may be presented to end users."}},"additionalProperties":false},"SearchFacetsResponse":{"type":"object","required":["facets"],"properties":{"facets":{"type":"array","items":{"$ref":"#\/components\/schemas\/SearchFacet"}}},"additionalProperties":false},"CapabilitySearchRequest":{"type":"object","required":["capabilities"],"properties":{"capabilities":{"type":"array","description":"List of capabilities required in the result set.","items":{"type":"string"},"minItems":1}},"additionalProperties":false},"VectorSearchFilter":{"type":"object","properties":{"capabilities":{"type":"array","items":{"type":"string"},"example":["financial-services"]},"type":{"type":"string","enum":["ai-agents","mcp-servers"]},"registry":{"type":"string","example":"erc-8004"},"protocols":{"type":"array","items":{"type":"string"},"example":["erc-8004"]},"adapter":{"type":"array","items":{"type":"string"},"example":["erc8004-adapter"]}},"additionalProperties":false},"VectorSearchRequest":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"User provided search text.","example":"Prediction market monitor for Ethereum Sepolia"},"filter":{"$ref":"#\/components\/schemas\/VectorSearchFilter"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":5},"offset":{"type":"integer","minimum":0,"default":0,"example":0}},"additionalProperties":false,"example":{"query":"Babylon prediction market alerts","limit":5,"filter":{"registry":"erc-8004","protocols":["erc-8004","a2a"],"capabilities":["financial-services"],"adapter":["erc8004-adapter"],"type":"ai-agents"}}},"VectorSearchHit":{"type":"object","required":["agent"],"properties":{"agent":{"$ref":"#\/components\/schemas\/AgentSummary"},"score":{"type":"number","description":"Similarity score supplied by the vector store."},"highlights":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"VectorSearchResponse":{"type":"object","required":["hits","total","took"],"properties":{"hits":{"type":"array","items":{"$ref":"#\/components\/schemas\/VectorSearchHit"}},"total":{"type":"integer","minimum":0},"took":{"type":"number","description":"Time spent servicing the request in milliseconds."},"credits_used":{"type":"integer","minimum":0,"description":"Credits consumed when credit tracking is enabled."}},"example":{"hits":[{"agent":{"id":"erc8004-11155111-1538","uaid":"uaid:aid:7uGHL6U2GYw95VbZ3jvy5P11qW52MrojpFXozmBy8cFuHk8T1jRw6trVpx1zwS4Y78;uid=11155111:1538;registry=erc-8004;proto=erc-8004;nativeId=11155111:1538","registry":"erc-8004","name":"Babylon Prediction Markets","description":"Indexes Babylon\u2019s ERC-8004 prediction market agents registered on Ethereum Sepolia.","capabilities":["financial-services","analytics"],"protocols":["erc-8004"],"endpoints":{"primary":"https:\/\/agents.babylon.markets\/.well-known\/agent.json","rest":"https:\/\/api.babylon.markets\/v1"},"metadata":{"nativeId":"11155111:1538","nativeNetwork":"ethereum-sepolia","payments":{"supported":["x402"],"protocols":{"x402":{"paymentNetwork":"base","paymentToken":"USDC","priceUsdc":0.05}}},"availabilityStatus":"online","availabilityLatencyMs":420},"lastSeen":"2025-03-14T12:32:11.000Z"},"score":0.8739,"highlights":{"description":["Babylon Prediction Markets indexes ERC-8004 agents registered on Ethereum Sepolia."]}}],"total":42,"took":18,"credits_used":0}},"VectorStatus":{"type":"object","required":["enabled","healthy","mode","lastUpdated"],"properties":{"enabled":{"type":"boolean"},"healthy":{"type":"boolean"},"mode":{"type":"string","enum":["disabled","initializing","healthy","degraded","error"]},"lastUpdated":{"type":"string","format":"date-time"},"details":{"type":"object","additionalProperties":true,"description":"Diagnostic metadata such as Qdrant and RocksDB endpoints."},"lastError":{"type":"object","properties":{"message":{"type":"string"},"stack":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false,"example":{"enabled":true,"healthy":false,"mode":"degraded","lastUpdated":"2025-11-25T17:42:11.201Z","details":{"qdrantUrl":"http:\/\/qdrant:6333","rocksdbUrl":"rocksdb-sidecar:50051","vectorSize":768},"lastError":{"message":"Vector DB health check returned unhealthy status","timestamp":"2025-11-25T17:42:11.198Z"}}},"SearchStatusResponse":{"type":"object","required":["storageMode","vectorStatus"],"properties":{"storageMode":{"type":"string","enum":["hybrid","fallback"],"description":"Indicates whether the broker is currently serving hybrid (vector-enabled) or fallback (RocksDB-only) search."},"vectorStatus":{"$ref":"#\/components\/schemas\/VectorStatus"}},"additionalProperties":false},"SimilarAgentsResponse":{"type":"object","required":["agents"],"properties":{"agents":{"type":"array","items":{"$ref":"#\/components\/schemas\/AgentSummary"}}}},"TrustScore":{"type":"object","required":["score","attestationCount","lastUpdated"],"properties":{"score":{"type":"number"},"weightedScore":{"type":"number"},"rawScore":{"type":"number"},"attestationCount":{"type":"integer","minimum":0},"lastUpdated":{"type":"string","format":"date-time"}}},"StatsResponse":{"type":"object","required":["totalAgents","registries","capabilities","status","lastUpdate"],"properties":{"totalAgents":{"type":"integer","minimum":0},"registries":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"capabilities":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"status":{"type":"string"},"lastUpdate":{"type":"string","format":"date-time"}}},"RegistriesResponse":{"type":"object","required":["registries"],"properties":{"registries":{"type":"array","items":{"type":"string"}}}},"ProtocolsResponse":{"type":"object","required":["protocols"],"properties":{"protocols":{"type":"array","items":{"type":"string"}}}},"PopularSearchResponse":{"type":"object","required":["searches"],"properties":{"searches":{"type":"array","items":{"type":"object","required":["query","count"],"properties":{"query":{"type":"string"},"count":{"type":"integer","minimum":0}}}}}},"ChatSessionAuth":{"type":"object","description":"Authentication metadata that can be forwarded to downstream chat providers.","properties":{"type":{"type":"string","enum":["bearer","basic","header","apiKey"],"description":"Helper used to derive standard Authorization headers."},"token":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"headerName":{"type":"string"},"headerValue":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Arbitrary headers to merge into each downstream request."}},"additionalProperties":false},"ChatSessionRequest":{"type":"object","properties":{"agentUrl":{"type":"string","description":"Direct URL to an agent endpoint (A2A, NANDA, or OpenRouter)."},"uaid":{"type":"string","description":"Universal Agent Identifier to resolve before starting a session."},"auth":{"$ref":"#\/components\/schemas\/ChatSessionAuth"},"historyTtlSeconds":{"type":"number","description":"Desired retention period for chat history in seconds (must be within configured limits)."},"senderUaid":{"type":"string","description":"Optional UAID of the requesting agent (used for encrypted session negotiation and UAID-derived transports like XMTP)."},"transport":{"type":"string","description":"Optional transport hint for UAID-based routing (for example: xmtp).","enum":["xmtp","moltbook","http","a2a","acp"]},"encryptionRequested":{"type":"boolean","description":"When true the broker attempts to establish an encrypted session if both parties registered keys."}},"additionalProperties":false,"anyOf":[{"required":["agentUrl"]},{"required":["uaid"]}]},"ChatAgentProfile":{"type":"object","required":["name","description","capabilities"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"capabilities":{"type":"object","additionalProperties":true},"skills":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":true,"description":"Additional metadata returned by the downstream provider."}}},"ChatHistoryEntry":{"type":"object","required":["messageId","role","content","timestamp"],"properties":{"messageId":{"type":"string"},"role":{"type":"string","enum":["user","agent"]},"content":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"metadata":{"type":"object","additionalProperties":true,"description":"Optional metadata associated with the entry."},"cipherEnvelope":{"description":"Opaque ciphertext payload persisted when the session is encrypted.","$ref":"#\/components\/schemas\/CipherEnvelope"}}},"ChatInviteHistoryScope":{"type":"string","enum":["all","since_invite"],"description":"History scope applied to an invited agent. 'since_invite' restricts the invitee to only messages created after the invite timestamp."},"ChatSessionVisibility":{"type":"string","enum":["private","public"],"description":"Chat session visibility. Public sessions are discoverable and readable by anyone; private sessions are not listed."},"ChatSessionMember":{"type":"object","required":["uaid","invitedAt","historyScope"],"properties":{"uaid":{"type":"string"},"invitedAt":{"type":"string","format":"date-time"},"historyScope":{"$ref":"#\/components\/schemas\/ChatInviteHistoryScope"}}},"ChatSessionMetadataResponse":{"type":"object","required":["sessionId","visibility","members","createdAt","updatedAt","lastActivityAt"],"properties":{"sessionId":{"type":"string"},"visibility":{"$ref":"#\/components\/schemas\/ChatSessionVisibility"},"members":{"type":"array","items":{"$ref":"#\/components\/schemas\/ChatSessionMember"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastActivityAt":{"type":"string","format":"date-time"},"title":{"type":"string"},"lastMessagePreview":{"type":"string"}}},"ChatSessionVisibilityUpdateRequest":{"type":"object","required":["senderUaid","visibility"],"properties":{"senderUaid":{"type":"string","description":"Sender UAID that must be a member of the session."},"visibility":{"$ref":"#\/components\/schemas\/ChatSessionVisibility"}},"additionalProperties":false},"ChatSessionInviteRequest":{"type":"object","required":["senderUaid","uaid"],"properties":{"senderUaid":{"type":"string","description":"Sender UAID that must be a member of the session."},"uaid":{"type":"string","description":"UAID of the agent being invited."},"historyScope":{"$ref":"#\/components\/schemas\/ChatInviteHistoryScope"}},"additionalProperties":false},"ChatPublicSessionSummary":{"type":"object","required":["sessionId","createdAt","lastActivityAt","memberUaids"],"properties":{"sessionId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastActivityAt":{"type":"string","format":"date-time"},"memberUaids":{"type":"array","items":{"type":"string"}},"title":{"type":"string"},"lastMessagePreview":{"type":"string"}}},"ChatPublicSessionsResponse":{"type":"object","required":["sessions"],"properties":{"sessions":{"type":"array","items":{"$ref":"#\/components\/schemas\/ChatPublicSessionSummary"}},"nextCursor":{"type":"string","description":"Cursor token to request the next page of public sessions."}}},"ChatSessionResponse":{"type":"object","required":["sessionId","agent","history"],"properties":{"sessionId":{"type":"string"},"uaid":{"type":"string","nullable":true},"agent":{"$ref":"#\/components\/schemas\/ChatAgentProfile"},"history":{"type":"array","description":"Chronological conversation entries associated with the session.","items":{"$ref":"#\/components\/schemas\/ChatHistoryEntry"}},"historyTtlSeconds":{"type":"number","nullable":true,"description":"Number of seconds chat history will be retained for this session."},"encryption":{"description":"Encryption capabilities negotiated for this session when chat encryption is enabled.","$ref":"#\/components\/schemas\/SessionEncryptionSummary"}}},"ChatHistorySnapshotResponse":{"type":"object","required":["sessionId","history"],"properties":{"sessionId":{"type":"string"},"history":{"type":"array","items":{"$ref":"#\/components\/schemas\/ChatHistoryEntry"}},"historyTtlSeconds":{"type":"number","description":"Current retention window in seconds for this session."}}},"ChatHistoryCompactionRequest":{"type":"object","properties":{"preserveEntries":{"type":"number","minimum":0,"description":"Number of most recent entries to leave unmodified when compacting history."}}},"ChatHistoryCompactionResponse":{"type":"object","required":["sessionId","history","summaryEntry"],"properties":{"sessionId":{"type":"string"},"history":{"type":"array","items":{"$ref":"#\/components\/schemas\/ChatHistoryEntry"}},"summaryEntry":{"$ref":"#\/components\/schemas\/ChatHistoryEntry"},"preservedEntries":{"type":"array","items":{"$ref":"#\/components\/schemas\/ChatHistoryEntry"},"description":"Entries that were kept verbatim after compaction."},"historyTtlSeconds":{"type":"number","description":"Current retention window in seconds for this session."},"creditsDebited":{"type":"number","description":"Credits charged for the compaction operation."},"metadata":{"type":"object","additionalProperties":true,"description":"Additional details such as summarized entry counts or token usage."}}},"ChatMessageRequest":{"type":"object","required":["message"],"properties":{"sessionId":{"type":"string","description":"Existing chat session identifier. Required when agentUrl is omitted."},"agentUrl":{"type":"string","description":"Agent endpoint to contact when no session is provided."},"uaid":{"type":"string","description":"UAID to route through when message should leverage registry routing."},"message":{"type":"string"},"streaming":{"type":"boolean","default":false,"description":"When true the response will be streamed via server-sent events."},"auth":{"$ref":"#\/components\/schemas\/ChatSessionAuth"},"senderUaid":{"type":"string","description":"Optional UAID of the requesting agent (used for encrypted sessions and UAID-derived transports like XMTP)."},"transport":{"type":"string","description":"Optional transport hint for UAID-based routing (for example: xmtp).","enum":["xmtp","moltbook","http","a2a","acp"]},"cipherEnvelope":{"description":"Envelope containing ciphertext and encrypted key shares for end-to-end encrypted chats.","$ref":"#\/components\/schemas\/CipherEnvelope"}},"additionalProperties":false,"anyOf":[{"required":["sessionId"]},{"required":["agentUrl"]},{"required":["uaid"]}]},"ChatMessageResponse":{"type":"object","required":["sessionId","message","timestamp"],"properties":{"sessionId":{"type":"string"},"uaid":{"type":"string","nullable":true},"message":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"rawResponse":{"description":"Raw response payload returned by routed UAID providers when available.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"object","additionalProperties":true},{"type":"array","items":{}}]},"history":{"type":"array","description":"Updated session history when the request is associated with a managed session.","items":{"$ref":"#\/components\/schemas\/ChatHistoryEntry"}},"historyTtlSeconds":{"type":"number","nullable":true,"description":"Current retention window in seconds for the session history."},"encrypted":{"type":"boolean","description":"Indicates the broker stored ciphertext rather than plaintext content for this call."}}},"ChatSessionEndResponse":{"type":"object","required":["message","sessionId"],"properties":{"message":{"type":"string","example":"Session ended"},"sessionId":{"type":"string"}}},"CipherEnvelopeRecipient":{"type":"object","required":["encryptedShare"],"properties":{"uaid":{"type":"string"},"ledgerAccountId":{"type":"string"},"userId":{"type":"string"},"email":{"type":"string","format":"email"},"encryptedShare":{"type":"string","description":"Opaque, implementation-reserved per-recipient field. No usable encryption key material is stored here."}},"additionalProperties":false},"CipherEnvelope":{"type":"object","required":["algorithm","ciphertext","nonce","recipients"],"properties":{"algorithm":{"type":"string","example":"aes-256-gcm"},"ciphertext":{"type":"string","description":"Base64-encoded ciphertext (may include the auth tag)."},"nonce":{"type":"string","description":"Base64-encoded IV\/nonce used for encryption."},"associatedData":{"type":"string","nullable":true,"description":"Optional base64-encoded AAD bound to the ciphertext."},"keyLocator":{"type":"object","properties":{"sessionId":{"type":"string"},"revision":{"type":"integer"}}},"recipients":{"type":"array","minItems":1,"items":{"$ref":"#\/components\/schemas\/CipherEnvelopeRecipient"}}},"additionalProperties":false},"SessionEncryptionPeerSummary":{"type":"object","required":["keyType","publicKey"],"properties":{"keyType":{"type":"string","example":"secp256k1"},"publicKey":{"type":"string","description":"Hex-encoded compressed public key."},"uaid":{"type":"string"},"ledgerAccountId":{"type":"string"},"userId":{"type":"string"},"email":{"type":"string","format":"email"}}},"SessionEncryptionSummary":{"type":"object","required":["enabled","algorithm","requireCiphertext"],"properties":{"enabled":{"type":"boolean"},"algorithm":{"type":"string","example":"aes-gcm"},"requireCiphertext":{"type":"boolean","description":"Indicates whether plaintext submissions are rejected for this session."},"requester":{"$ref":"#\/components\/schemas\/SessionEncryptionPeerSummary","nullable":true},"responder":{"$ref":"#\/components\/schemas\/SessionEncryptionPeerSummary","nullable":true},"handshake":{"$ref":"#\/components\/schemas\/EncryptionHandshakeRecord","nullable":true}}},"SessionEncryptionStatusResponse":{"type":"object","required":["sessionId"],"properties":{"sessionId":{"type":"string"},"encryption":{"$ref":"#\/components\/schemas\/SessionEncryptionSummary","nullable":true}}},"EncryptionHandshakeSubmission":{"type":"object","required":["role","keyType","ephemeralPublicKey"],"properties":{"role":{"type":"string","enum":["requester","responder"]},"keyType":{"type":"string","example":"secp256k1"},"ephemeralPublicKey":{"type":"string","description":"Hex-encoded compressed ephemeral public key."},"longTermPublicKey":{"type":"string","description":"Optional hex-encoded long-term key when not pre-registered."},"uaid":{"type":"string"},"userId":{"type":"string"},"ledgerAccountId":{"type":"string"},"signature":{"type":"string","description":"Optional proof binding the ephemeral key to an authenticated identity."},"metadata":{"type":"object","additionalProperties":true}},"additionalProperties":false},"EncryptionHandshakeRecord":{"type":"object","required":["sessionId","algorithm","status","createdAt","expiresAt"],"properties":{"sessionId":{"type":"string"},"algorithm":{"type":"string"},"status":{"type":"string","enum":["pending","complete"]},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"number","description":"Unix timestamp (ms) when the record expires."},"requester":{"type":"object","properties":{"submittedAt":{"type":"string","format":"date-time"}},"allOf":[{"$ref":"#\/components\/schemas\/EncryptionHandshakeSubmission"}],"nullable":true},"responder":{"type":"object","properties":{"submittedAt":{"type":"string","format":"date-time"}},"allOf":[{"$ref":"#\/components\/schemas\/EncryptionHandshakeSubmission"}],"nullable":true}}},"EncryptionHandshakeResponse":{"type":"object","required":["sessionId","handshake"],"properties":{"sessionId":{"type":"string"},"handshake":{"$ref":"#\/components\/schemas\/EncryptionHandshakeRecord"}}},"RegisterEncryptionKeyRequest":{"type":"object","required":["keyType","publicKey"],"properties":{"keyType":{"type":"string","enum":["secp256k1","ed25519","x25519"]},"publicKey":{"type":"string","description":"Hex-encoded public key."},"uaid":{"type":"string","description":"UAID that should be associated with the encryption key."},"ledgerAccountId":{"type":"string"},"ledgerNetwork":{"type":"string"},"email":{"type":"string","format":"email"}},"additionalProperties":false},"RegisterEncryptionKeyResponse":{"type":"object","required":["id","keyType","publicKey","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"keyType":{"type":"string"},"publicKey":{"type":"string"},"uaid":{"type":"string","nullable":true},"ledgerAccountId":{"type":"string","nullable":true},"ledgerNetwork":{"type":"string","nullable":true},"userId":{"type":"string","nullable":true},"email":{"type":"string","format":"email","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"AdaptersResponse":{"type":"object","required":["adapters"],"properties":{"adapters":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"AdapterChatProfile":{"type":"object","required":["supportsChat"],"properties":{"supportsChat":{"type":"boolean","description":"Whether the adapter can relay chat messages through the broker."},"delivery":{"type":"string","description":"Delivery pattern used by the adapter.","enum":["relay","mailbox","direct","discovery"]},"transport":{"type":"string","description":"Transport or protocol used for chat delivery (for example `https`, `websocket`)."},"streaming":{"type":"boolean","description":"Indicates whether the adapter supports streaming responses."},"requiresAuth":{"type":"array","description":"List of downstream authentication schemes required by the adapter.","items":{"type":"string"}},"notes":{"type":"string","description":"Additional notes about the chat integration."}},"additionalProperties":false},"AdapterCapabilities":{"type":"object","required":["discovery","routing","communication","translation","protocols"],"properties":{"discovery":{"type":"boolean","description":"Adapter can discover or index agents from the upstream registry."},"routing":{"type":"boolean","description":"Adapter can route incoming UAID messages to downstream agents."},"communication":{"type":"boolean","description":"Adapter supports two-way communication with downstream agents."},"translation":{"type":"boolean","description":"Adapter translates between downstream protocols and ASI chat."},"protocols":{"type":"array","description":"Protocols implemented by the adapter (for example `erc-8004`, `mcp`).","items":{"type":"string"}}},"additionalProperties":false},"AdapterDescriptor":{"type":"object","required":["id","name","version","author","description","supportedProtocols","registryType","capabilities","enabled","priority","status"],"properties":{"id":{"type":"string","description":"Adapter identifier used in configuration."},"name":{"type":"string","description":"Human readable adapter name."},"version":{"type":"string","description":"Adapter version."},"author":{"type":"string","description":"Adapter author or maintainer."},"description":{"type":"string","description":"Short adapter description."},"supportedProtocols":{"type":"array","items":{"type":"string"},"description":"List of protocols supported by the adapter."},"registryType":{"type":"string","description":"Registry topology served by the adapter.","enum":["web2","web3","hybrid"]},"chatProfile":{"$ref":"#\/components\/schemas\/AdapterChatProfile"},"capabilities":{"$ref":"#\/components\/schemas\/AdapterCapabilities"},"enabled":{"type":"boolean","description":"Whether the adapter is enabled in the running deployment."},"priority":{"type":"number","description":"Priority value used when routing messages across multiple adapters."},"status":{"type":"string","enum":["running","stopped"],"description":"Current runtime state of the adapter."}},"additionalProperties":false},"AdapterDetailsResponse":{"type":"object","required":["adapters"],"properties":{"adapters":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdapterDescriptor"}}},"additionalProperties":false},"AdapterRegistryCategory":{"type":"object","required":["id","network","type","slug","name","topicId","versionTopicId","createdAt","updatedAt"],"properties":{"id":{"type":"number"},"network":{"type":"string"},"type":{"type":"string","enum":["adapter-type","custom"]},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"topicId":{"type":"string"},"versionTopicId":{"type":"string"},"registryTransactionId":{"type":"string","nullable":true},"versionTransactionId":{"type":"string","nullable":true},"metadataPointer":{"type":"string","nullable":true},"metadataSequence":{"type":"number","nullable":true},"metadata":{"type":"object","additionalProperties":true,"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"AdapterRegistryCategoriesResponse":{"type":"object","required":["categories"],"properties":{"categories":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdapterRegistryCategory"}}},"additionalProperties":false},"AdapterRegistryCreateCategoryResponse":{"type":"object","required":["category"],"properties":{"category":{"$ref":"#\/components\/schemas\/AdapterRegistryCategory"}},"additionalProperties":false},"AdapterRegistryAdapter":{"type":"object","required":["adapterId","entity"],"properties":{"id":{"type":"number"},"network":{"type":"string"},"categoryId":{"type":"number","nullable":true},"operation":{"type":"string"},"adapterId":{"type":"string"},"adapterName":{"type":"string","nullable":true},"entity":{"type":"string"},"manifestPointer":{"type":"string","nullable":true},"manifestSequence":{"type":"number","nullable":true},"packageRegistry":{"type":"string","nullable":true},"packageName":{"type":"string","nullable":true},"packageVersion":{"type":"string","nullable":true},"packageIntegrity":{"type":"string","nullable":true},"stateModel":{"type":"string","nullable":true},"config":{"type":"object","additionalProperties":true,"nullable":true},"signature":{"type":"string","nullable":true},"manifest":{"type":"object","additionalProperties":true,"nullable":true},"keywords":{"type":"array","items":{"type":"string"},"nullable":true},"transactionId":{"type":"string","nullable":true},"declarationTopicId":{"type":"string","nullable":true},"versionTopicId":{"type":"string","nullable":true},"categoryEntryTransactionId":{"type":"string","nullable":true},"versionPointerTransactionId":{"type":"string","nullable":true},"totalCostHbar":{"type":"number","nullable":true},"totalCostCredits":{"type":"number","nullable":true},"createdAt":{"type":"string","format":"date-time"},"category":{"$ref":"#\/components\/schemas\/AdapterRegistryCategory"}},"additionalProperties":true},"AdapterRegistryAdaptersResponse":{"type":"object","required":["network","adapters"],"properties":{"network":{"type":"string"},"adapters":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdapterRegistryAdapter"}}},"additionalProperties":false},"CreateAdapterRegistryCategoryRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["adapter-type","custom"]},"slug":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}},"additionalProperties":false},"SubmitAdapterRegistryAdapterRequest":{"type":"object","required":["adapterId","adapterName","entity","package","config","manifest"],"properties":{"adapterId":{"type":"string"},"adapterName":{"type":"string"},"entity":{"type":"string"},"package":{"type":"object","required":["registry","name","version","integrity"],"properties":{"registry":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"integrity":{"type":"string"}},"additionalProperties":false},"config":{"type":"object","additionalProperties":true},"stateModel":{"type":"string"},"signature":{"type":"string"},"manifest":{"type":"object","additionalProperties":true},"manifestPointer":{"type":"string"},"manifestSequence":{"type":"number"},"keywords":{"type":"array","items":{"type":"string"}},"categorySlug":{"type":"string"},"newCategory":{"$ref":"#\/components\/schemas\/CreateAdapterRegistryCategoryRequest"}},"additionalProperties":false},"AdapterRegistrySubmissionAcceptedResponse":{"type":"object","required":["submissionId","status"],"properties":{"submissionId":{"type":"string"},"status":{"type":"string"},"network":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false},"AdapterRegistrySubmissionRecord":{"type":"object","required":["id","network","status","adapterId","createdAt"],"properties":{"id":{"type":"string"},"network":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"adapterId":{"type":"string"},"categorySlug":{"type":"string","nullable":true},"creditAccountId":{"type":"string","nullable":true},"registeredByUserId":{"type":"string","nullable":true},"registeredByEmail":{"type":"string","nullable":true},"resultPayload":{"type":"object","additionalProperties":true,"nullable":true},"error":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"startedAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"AdapterRegistrySubmissionStatusResponse":{"type":"object","required":["submission"],"properties":{"submission":{"$ref":"#\/components\/schemas\/AdapterRegistrySubmissionRecord"}},"additionalProperties":false},"ProviderCatalogResponse":{"type":"object","required":["adapters","communicationProtocols"],"properties":{"adapters":{"type":"array","description":"Adapter descriptors registered with the broker.","items":{"$ref":"#\/components\/schemas\/AdapterDescriptor"}},"communicationProtocols":{"type":"array","description":"Communication protocols supported by the broker routing layer.","items":{"type":"string"}}},"additionalProperties":false},"TrustAttestationEntry":{"type":"object","required":["uaid","type"],"properties":{"uaid":{"type":"string"},"type":{"type":"string"},"rating":{"type":"number","nullable":true},"evidence":{"type":"object","additionalProperties":true,"nullable":true},"issuer":{"type":"string","nullable":true},"timestamp":{"type":"string","format":"date-time","nullable":true},"protocol":{"type":"string","nullable":true},"claims":{"type":"object","additionalProperties":true,"nullable":true}},"additionalProperties":true},"TrustAttestationListResponse":{"type":"object","required":["attestations"],"properties":{"attestations":{"type":"array","items":{"$ref":"#\/components\/schemas\/TrustAttestationEntry"}}}},"TrustAttestationRequest":{"type":"object","required":["uaid","type"],"properties":{"uaid":{"type":"string"},"type":{"type":"string"},"rating":{"type":"number","nullable":true},"evidence":{"type":"object","additionalProperties":true,"nullable":true},"issuerId":{"type":"string","nullable":true}},"additionalProperties":true},"TrustAttestationSubmitResponse":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"transactionId":{"type":"string","nullable":true},"error":{"type":"string","nullable":true}}},"LatestTrustAttestationResponse":{"type":"object","required":["attestation"],"properties":{"attestation":{"type":"object","required":["floraId","timestamp","agents","stateRoot","consensus","metrics"],"properties":{"floraId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"agents":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"byRegistry":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"byCapability":{"type":"object","additionalProperties":{"type":"integer","minimum":0}}}},"stateRoot":{"type":"string"},"consensus":{"type":"object","required":["achieved","threshold","petalCount"],"properties":{"achieved":{"type":"number"},"threshold":{"type":"number"},"petalCount":{"type":"integer","minimum":0}}},"metrics":{"type":"object","additionalProperties":true}}}}},"TrustAttestationVerificationResponse":{"type":"object","required":["valid"],"properties":{"valid":{"type":"boolean"},"error":{"type":"string","nullable":true},"verifiedAt":{"type":"string","format":"date-time","nullable":true},"attestation":{"type":"object","nullable":true,"properties":{"floraId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"agentCount":{"type":"integer","minimum":0}}}}},"TrustAttestationQueryResponse":{"type":"object","required":["attestations","count"],"properties":{"attestations":{"type":"array","items":{"$ref":"#\/components\/schemas\/TrustAttestationEntry"}},"count":{"type":"integer","minimum":0}}},"TrustScoreResponse":{"type":"object","required":["uaid","trustScore","trustScores","timestamp"],"properties":{"uaid":{"type":"string"},"trustScore":{"type":"number"},"trustScores":{"type":"object","additionalProperties":{"type":"number"}},"timestamp":{"type":"string","format":"date-time"}}},"TrustMetricsResponse":{"type":"object","additionalProperties":true,"description":"Implementation specific trust attestation metrics."},"UaidRouteRequest":{"type":"object","required":["message"],"properties":{"message":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true},{"type":"array","items":{}}]}},"additionalProperties":true},"UaidRouteResponse":{"type":"object","required":["response"],"properties":{"response":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"object","additionalProperties":true},{"type":"array","items":{}}]}}},"ResolveUaidResponse":{"type":"object","required":["agent"],"properties":{"agent":{"$ref":"#\/components\/schemas\/AgentDetail"}}},"UaidValidationResponse":{"type":"object","required":["uaid","valid","formats"],"properties":{"uaid":{"type":"string"},"valid":{"type":"boolean"},"formats":{"type":"array","items":{"type":"string"}}}},"UaidConnectionStatusResponse":{"type":"object","required":["connected"],"properties":{"connected":{"type":"boolean"},"adapter":{"type":"string","nullable":true},"agentId":{"type":"string","nullable":true},"connection":{"type":"object","nullable":true,"additionalProperties":true}},"additionalProperties":true},"UaidConnectionCloseResponse":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"FederationRegistry":{"type":"object","required":["id","name","endpoint","protocols","trustLevel"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"endpoint":{"type":"string","format":"uri"},"protocols":{"type":"array","items":{"type":"string"}},"trustLevel":{"type":"number"},"lastSeen":{"type":"string","format":"date-time","nullable":true},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"nullable":true}}},"FederationRegistriesResponse":{"type":"object","required":["registries"],"properties":{"registries":{"type":"array","items":{"$ref":"#\/components\/schemas\/FederationRegistry"}}}},"FederationDiscoverRequest":{"type":"object","properties":{"capabilities":{"type":"array","items":{"type":"string"}},"registries":{"type":"array","items":{"type":"string"}},"maxResults":{"type":"integer","minimum":1}},"additionalProperties":false},"FederationAgentDiscovery":{"type":"object","required":["registry","agents"],"properties":{"registry":{"type":"string"},"agents":{"type":"array","items":{"type":"object","required":["uaid","name"],"properties":{"uaid":{"type":"string"},"id":{"type":"string","nullable":true},"name":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"}},"protocols":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"nullable":true}}}},"totalCount":{"type":"integer","minimum":0,"nullable":true},"hasMore":{"type":"boolean","nullable":true}}},"FederationDiscoverResponse":{"type":"object","required":["discoveries"],"properties":{"discoveries":{"type":"array","items":{"$ref":"#\/components\/schemas\/FederationAgentDiscovery"}}}},"FederationCapabilityQueryRequest":{"type":"object","required":["requiredCapabilities"],"properties":{"requiredCapabilities":{"type":"array","minItems":1,"items":{"type":"string"}},"excludedCapabilities":{"type":"array","items":{"type":"string"}},"maxResults":{"type":"integer","minimum":1}},"additionalProperties":false},"FederationCapabilityQueryResponse":{"type":"object","required":["results"],"properties":{"results":{"type":"array","items":{"$ref":"#\/components\/schemas\/FederationAgentDiscovery"}}}},"FederationSyncRequest":{"type":"object","properties":{"requestedData":{"type":"array","items":{"type":"string","enum":["agents","capabilities","metadata"]}}},"additionalProperties":false},"FederationSyncResponse":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"FederationRegistryRequest":{"type":"object","required":["id","name","endpoint","protocols"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"endpoint":{"type":"string","format":"uri"},"protocols":{"type":"array","minItems":1,"items":{"type":"string"}},"trustLevel":{"type":"number","default":0.5},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"nullable":true}}},"FederationRegistryResponse":{"type":"object","required":["success","registry"],"properties":{"success":{"type":"boolean"},"registry":{"$ref":"#\/components\/schemas\/FederationRegistry"}}},"FederationRegistryRemoveResponse":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"FederationStatusResponse":{"type":"object","required":["isRunning","knownRegistries","activeSyncs"],"properties":{"isRunning":{"type":"boolean"},"knownRegistries":{"type":"integer","minimum":0},"activeSyncs":{"type":"integer","minimum":0},"lastHeartbeat":{"type":"string","format":"date-time","nullable":true}}},"AdditionalRegistryNetwork":{"type":"object","required":["key","registryId","networkId","name","chainId","label","estimatedCredits","baseCredits","gasPortionCredits","gasPortionUsd","gasEstimateCredits","gasEstimateUsd","creditMode"],"properties":{"key":{"type":"string","description":"Unique identifier for the registry network (registryId:networkId)."},"registryId":{"type":"string","description":"Canonical registry identifier (e.g. erc-8004)."},"networkId":{"type":"string","description":"Network identifier used to disambiguate registry deployments."},"name":{"type":"string","description":"Human readable network name."},"chainId":{"type":"number","description":"EVM chain id for the registry network."},"label":{"type":"string","description":"Display label combining registry and network context."},"estimatedCredits":{"type":"number","description":"Total estimated credits (base + gas)."},"baseCredits":{"type":"number","description":"Base credits charged before gas usage is calculated."},"gasPortionCredits":{"type":"number","description":"Estimated gas portion in credits."},"gasPortionUsd":{"type":"number","description":"Estimated gas portion converted to USD."},"gasEstimateCredits":{"type":"number","description":"Raw gas estimate prior to rounding."},"gasEstimateUsd":{"type":"number","description":"Gas estimate converted to USD."},"gasPriceGwei":{"type":"number","nullable":true,"description":"Gas price snapshot in gwei."},"gasLimit":{"type":"number","nullable":true,"description":"Gas limit used for the estimate."},"minCredits":{"type":"number","nullable":true,"description":"Minimum credits that will be charged regardless of gas usage."},"creditMode":{"type":"string","enum":["fixed","gas"],"description":"Pricing mode for the registry network."}},"additionalProperties":false},"AdditionalRegistryGroup":{"type":"object","required":["id","label","networks"],"properties":{"id":{"type":"string","description":"Registry identifier shared by all networks in the group."},"label":{"type":"string","description":"Display label for the registry."},"networks":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdditionalRegistryNetwork"}}},"additionalProperties":false},"AdditionalRegistriesResponse":{"type":"object","required":["registries"],"properties":{"registries":{"type":"array","description":"Catalog of optional registries that can be selected during registration.","items":{"$ref":"#\/components\/schemas\/AdditionalRegistryGroup"}}},"additionalProperties":false},"AdditionalRegistryQuoteNetwork":{"type":"object","required":["key","registry","networkId","networkName","estimatedCredits","baseCredits","gasPortionCredits","gasPortionUsd","gasEstimateCredits","gasEstimateUsd","creditMode"],"properties":{"key":{"type":"string"},"registry":{"type":"string"},"networkId":{"type":"string"},"networkName":{"type":"string"},"estimatedCredits":{"type":"number"},"baseCredits":{"type":"number"},"gasPortionCredits":{"type":"number"},"gasPortionUsd":{"type":"number"},"gasEstimateCredits":{"type":"number"},"gasEstimateUsd":{"type":"number"},"gasPriceGwei":{"type":"number","nullable":true},"gasLimit":{"type":"number","nullable":true},"creditMode":{"type":"string","enum":["fixed","gas"]},"minCredits":{"type":"number","nullable":true}},"additionalProperties":false},"AdditionalRegistryTransaction":{"type":"object","required":["hash","gasUsedWei","costWei"],"properties":{"hash":{"type":"string"},"gasUsedWei":{"type":"string"},"effectiveGasPriceWei":{"type":"string","nullable":true},"costWei":{"type":"string"}},"additionalProperties":false},"AdditionalRegistryCost":{"type":"object","required":["credits","usd","eth"],"properties":{"credits":{"type":"number"},"usd":{"type":"number"},"eth":{"type":"number"},"gasUsedWei":{"type":"string","nullable":true},"effectiveGasPriceWei":{"type":"string","nullable":true},"transactions":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdditionalRegistryTransaction"}},"baseCredits":{"type":"number","nullable":true},"gasCredits":{"type":"number","nullable":true},"gasCreditsRaw":{"type":"number","nullable":true},"usdBase":{"type":"number","nullable":true},"usdGas":{"type":"number","nullable":true},"creditUnitUsd":{"type":"number","nullable":true}},"additionalProperties":false},"AdditionalRegistryResult":{"type":"object","required":["registry","status"],"properties":{"registry":{"type":"string"},"registryKey":{"type":"string","nullable":true},"status":{"type":"string","enum":["created","updated","duplicate","skipped","pending","error"]},"agentId":{"type":"string","nullable":true},"agentUri":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"metadata":{"type":"object","nullable":true,"additionalProperties":true},"networkId":{"type":"string","nullable":true},"networkName":{"type":"string","nullable":true},"chainId":{"type":"number","nullable":true},"estimatedCredits":{"type":"number","nullable":true},"baseCredits":{"type":"number","nullable":true},"gasCredits":{"type":"number","nullable":true},"gasCreditsRaw":{"type":"number","nullable":true},"gasPortionCredits":{"type":"number","nullable":true},"gasPortionUsd":{"type":"number","nullable":true},"creditMode":{"type":"string","enum":["fixed","gas"],"nullable":true},"minCredits":{"type":"number","nullable":true},"gasEstimateCredits":{"type":"number","nullable":true},"gasEstimateUsd":{"type":"number","nullable":true},"gasPriceGwei":{"type":"number","nullable":true},"gasLimit":{"type":"number","nullable":true},"consumedCredits":{"type":"number","nullable":true},"cost":{"$ref":"#\/components\/schemas\/AdditionalRegistryCost","nullable":true}},"additionalProperties":false},"AdditionalRegistrySummary":{"type":"object","required":["registry"],"properties":{"registry":{"type":"string"},"registryKey":{"type":"string","nullable":true},"networkId":{"type":"string","nullable":true},"networkName":{"type":"string","nullable":true},"chainId":{"type":"number","nullable":true},"status":{"type":"string","enum":["created","updated","duplicate","skipped","pending","error"],"nullable":true},"estimatedCredits":{"type":"number","nullable":true},"baseCredits":{"type":"number","nullable":true},"gasCredits":{"type":"number","nullable":true},"gasCreditsRaw":{"type":"number","nullable":true},"gasPortionCredits":{"type":"number","nullable":true},"gasPortionUsd":{"type":"number","nullable":true},"gasEstimateCredits":{"type":"number","nullable":true},"gasEstimateUsd":{"type":"number","nullable":true},"gasPriceGwei":{"type":"number","nullable":true},"gasLimit":{"type":"number","nullable":true},"creditMode":{"type":"string","enum":["fixed","gas"],"nullable":true},"minCredits":{"type":"number","nullable":true},"consumedCredits":{"type":"number","nullable":true},"cost":{"$ref":"#\/components\/schemas\/AdditionalRegistryCost","nullable":true}},"additionalProperties":false},"RegistrationCredits":{"type":"object","required":["base","additional","total"],"properties":{"base":{"type":"number"},"additional":{"type":"number"},"total":{"type":"number"}},"additionalProperties":false},"AgentRegistrationRequest":{"type":"object","required":["profile"],"properties":{"profile":{"type":"object","description":"HCS-11 profile document to register.","additionalProperties":true},"registry":{"type":"string"},"endpoint":{"type":"string"},"communicationProtocol":{"type":"string"},"metadata":{"type":"object","additionalProperties":true},"additionalRegistries":{"type":"array","description":"Optional list of additional registries to publish the agent to. Entries may be registry keys (e.g. `erc-8004` or `erc-8004:ethereum-sepolia`) or structured objects that specify the target network.","items":{"oneOf":[{"type":"string"},{"type":"object","properties":{"registry":{"type":"string"},"networkId":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false}]}}},"additionalProperties":true},"RegistrationQuoteResponse":{"type":"object","required":["creditAccountId","registry","protocol","requiredCredits","baseCredits","additionalCredits","additionalRegistryCount","additionalRegistries","shortfallCredits"],"properties":{"accountId":{"type":"string","nullable":true},"creditAccountId":{"type":"string"},"registry":{"type":"string"},"protocol":{"type":"string"},"requiredCredits":{"type":"number"},"baseCredits":{"type":"number"},"additionalCredits":{"type":"number"},"additionalRegistryCount":{"type":"integer","minimum":0},"additionalRegistries":{"type":"array","description":"Detailed credit estimates for each requested additional registry.","items":{"$ref":"#\/components\/schemas\/AdditionalRegistryQuoteNetwork"}},"availableCredits":{"type":"number","nullable":true},"shortfallCredits":{"type":"number"},"creditsPerHbar":{"type":"number","nullable":true},"estimatedHbar":{"type":"number","nullable":true}}},"AgentRegistrationResponse":{"type":"object","required":["success","status","uaid","agentId","agent"],"properties":{"success":{"type":"boolean"},"status":{"type":"string","description":"Registration outcome (created, pending, partial, duplicate, failed)."},"uaid":{"type":"string"},"agentId":{"type":"string"},"message":{"type":"string"},"agent":{"type":"object","required":["id","name","registry","protocol","profile"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"endpoint":{"type":"string","nullable":true},"capabilities":{"type":"array","items":{"type":"string"}},"registry":{"type":"string"},"protocol":{"type":"string"},"profile":{"type":"object","additionalProperties":true},"nativeId":{"type":"string"}}},"openConvAI":{"type":"object","properties":{"compatible":{"type":"boolean"},"hcs11Profile":{"type":"object","additionalProperties":true},"bridgeEndpoint":{"type":"string"}}},"profile":{"type":"object","nullable":true,"properties":{"tId":{"type":"string"},"sizeBytes":{"type":"number"}}},"profileRegistry":{"type":"object","nullable":true,"additionalProperties":true},"hcs10Registry":{"type":"object","nullable":true,"additionalProperties":true},"additionalRegistries":{"type":"array","description":"Results for each additional registry publish attempt.","items":{"$ref":"#\/components\/schemas\/AdditionalRegistryResult"}},"additionalRegistryCredits":{"type":"array","description":"Summary of estimated and consumed credits for each additional registry.","items":{"$ref":"#\/components\/schemas\/AdditionalRegistrySummary"}},"credits":{"$ref":"#\/components\/schemas\/RegistrationCredits"},"registryPublish":{"type":"object","nullable":true,"additionalProperties":true},"errors":{"type":"array","nullable":true,"description":"Additional registry failures encountered during this attempt.","items":{"type":"object","required":["registry","registryKey","error"],"properties":{"registry":{"type":"string"},"registryKey":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true}},"attemptId":{"type":"string","nullable":true,"description":"Identifier that can be polled via `\/register\/progress\/{attemptId}`."}}},"AgentUpdateResponse":{"type":"object","required":["success","uaid","agent"],"properties":{"success":{"type":"boolean"},"status":{"type":"string","description":"Outcome of the update (created, pending, partial, failed)."},"uaid":{"type":"string"},"message":{"type":"string"},"agent":{"type":"object","additionalProperties":true},"profile":{"type":"object","nullable":true,"properties":{"tId":{"type":"string","nullable":true},"sizeBytes":{"type":"number","nullable":true}}},"profileRegistry":{"type":"object","nullable":true,"additionalProperties":true},"additionalRegistries":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdditionalRegistryResult"}},"additionalRegistryCredits":{"type":"array","items":{"$ref":"#\/components\/schemas\/AdditionalRegistrySummary"}},"credits":{"$ref":"#\/components\/schemas\/RegistrationCredits"},"errors":{"type":"array","nullable":true,"description":"Additional registry failures encountered during this update.","items":{"type":"object","required":["registry","registryKey","error"],"properties":{"registry":{"type":"string"},"registryKey":{"type":"string"},"error":{"type":"string"}},"additionalProperties":true}},"attemptId":{"type":"string","nullable":true,"description":"Identifier that can be polled via `\/register\/progress\/{attemptId}`."}}},"RegistrationProgressAdditionalEntry":{"type":"object","required":["registryId","registryKey","status","lastUpdated"],"properties":{"registryId":{"type":"string"},"registryKey":{"type":"string"},"networkId":{"type":"string","nullable":true},"networkName":{"type":"string","nullable":true},"chainId":{"type":"integer","nullable":true},"label":{"type":"string","nullable":true},"status":{"type":"string","enum":["pending","in_progress","completed","failed"]},"error":{"type":"string","nullable":true},"credits":{"type":"number","nullable":true},"lastUpdated":{"type":"string","format":"date-time"}},"additionalProperties":false},"RegistrationProgressRecord":{"type":"object","required":["attemptId","mode","status","registryNamespace","startedAt","primary","additionalRegistries"],"properties":{"attemptId":{"type":"string"},"mode":{"type":"string","enum":["register","update"]},"status":{"type":"string","enum":["pending","partial","completed","failed"]},"uaid":{"type":"string","nullable":true},"agentId":{"type":"string","nullable":true},"registryNamespace":{"type":"string"},"accountId":{"type":"string","nullable":true},"startedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true},"primary":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending","completed","failed"]},"finishedAt":{"type":"string","format":"date-time","nullable":true},"error":{"type":"string","nullable":true}}},"additionalRegistries":{"type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/RegistrationProgressAdditionalEntry"}},"errors":{"type":"array","items":{"type":"string"},"nullable":true}}},"RegistrationProgressResponse":{"type":"object","required":["progress"],"properties":{"progress":{"$ref":"#\/components\/schemas\/RegistrationProgressRecord"}},"additionalProperties":false},"AgentDeleteResponse":{"type":"object","required":["success","uaid","message"],"properties":{"success":{"type":"boolean"},"uaid":{"type":"string"},"message":{"type":"string"}}},"RegistrationStatusResponse":{"type":"object","required":["registered"],"properties":{"registered":{"type":"boolean"},"error":{"type":"string","nullable":true},"agent":{"type":"object","nullable":true,"properties":{"uaid":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"registry":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"}},"profile":{"type":"object","additionalProperties":true},"metadata":{"type":"object","additionalProperties":true}}}}},"OpenConvaiBridgeRequest":{"type":"object","required":["operatorId"],"properties":{"operatorId":{"type":"string"},"submitToHCS":{"type":"boolean","default":false}},"additionalProperties":false},"OpenConvaiBridgeResponse":{"type":"object","required":["success","message","openConvAIData"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"},"openConvAIData":{"type":"object","required":["operatorId","profile","registrationSource"],"properties":{"operatorId":{"type":"string"},"profile":{"type":"object","additionalProperties":true},"submitToHCS":{"type":"boolean"},"registrationSource":{"type":"string"},"originalVirtualTopic":{"type":"string"},"instructions":{"type":"object","additionalProperties":true}}}}},"WebsocketStatsResponse":{"type":"object","required":["clients","stats"],"properties":{"clients":{"type":"integer","minimum":0},"stats":{"type":"object","additionalProperties":true}}},"MetricsSummary":{"type":"object","properties":{"http":{"type":"object","additionalProperties":true},"search":{"type":"object","additionalProperties":true},"indexing":{"type":"object","additionalProperties":true},"registration":{"type":"object","additionalProperties":true},"cache":{"type":"object","additionalProperties":true},"websocket":{"type":"object","additionalProperties":true}},"additionalProperties":true},"CreditProvider":{"type":"object","required":["name","publishableKey"],"properties":{"name":{"type":"string","description":"Unique identifier for the payment provider.","example":"stripe"},"publishableKey":{"type":"string","description":"Client-side key used to initialize the provider SDK."},"currency":{"type":"string","description":"Default settlement currency for the provider.","example":"usd"},"centsPerHbar":{"type":"number","nullable":true,"description":"Dynamic conversion rate mapping one HBAR to USD cents when available."}},"additionalProperties":false},"CreditProvidersResponse":{"type":"object","required":["providers"],"properties":{"providers":{"type":"array","items":{"$ref":"#\/components\/schemas\/CreditProvider"}}},"additionalProperties":false},"CreditBalanceResponse":{"type":"object","required":["accountId","balance","timestamp"],"properties":{"accountId":{"type":"string","description":"Hedera account ID the balance applies to.","example":"0.0.123456"},"balance":{"type":"integer","minimum":0,"description":"Total available credits.","example":1200},"timestamp":{"type":"string","format":"date-time","description":"Timestamp when the balance was fetched."}},"additionalProperties":false},"SkillPointsRedemptionQuoteResponse":{"type":"object","required":["accountId","network","eligiblePoints","redeemedPoints","availablePoints","pointsPerCredit","creditsAvailable","creditUnitUsd","maxCreditsPerRedemption"],"properties":{"accountId":{"type":"string","example":"0.0.123456"},"network":{"type":"string","enum":["mainnet","testnet"]},"eligiblePoints":{"type":"integer","minimum":0},"redeemedPoints":{"type":"integer","minimum":0},"availablePoints":{"type":"integer","minimum":0},"pointsPerCredit":{"type":"integer","minimum":1},"creditsAvailable":{"type":"integer","minimum":0},"creditUnitUsd":{"type":"number","minimum":0},"maxCreditsPerRedemption":{"type":"integer","minimum":1}},"additionalProperties":false},"SkillPointsRedemptionRequest":{"type":"object","properties":{"accountId":{"type":"string","description":"Optional Hedera account ID override. Defaults to the authenticated session account when omitted.","example":"0.0.123456"}},"additionalProperties":false},"SkillPointsRedemptionResponse":{"allOf":[{"$ref":"#\/components\/schemas\/SkillPointsRedemptionQuoteResponse"},{"type":"object","required":["creditsGranted","pointsRedeemed","balance","externalReference","redeemedAt"],"properties":{"creditsGranted":{"type":"integer","minimum":1},"pointsRedeemed":{"type":"integer","minimum":1},"balance":{"type":"integer","minimum":0},"externalReference":{"type":"string"},"redeemedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}]},"CreditTransaction":{"type":"object","required":["id","accountId","type","amount","balance","description","status","timestamp"],"properties":{"id":{"type":"string"},"accountId":{"type":"string","example":"0.0.123456"},"type":{"type":"string","enum":["credit","debit","transfer_in","transfer_out","reserve","release"]},"amount":{"type":"integer","minimum":0,"example":1000},"balance":{"type":"integer","example":5000},"description":{"type":"string"},"relatedAccountId":{"type":"string","nullable":true},"reservationId":{"type":"string","nullable":true},"provider":{"type":"string","nullable":true},"externalReference":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":true,"nullable":true},"status":{"type":"string","enum":["completed","failed","pending"]},"reason":{"type":"string","nullable":true},"timestamp":{"type":"string","format":"date-time"}},"additionalProperties":false},"CreditTransactionListResponse":{"type":"object","required":["accountId","transactions","timestamp"],"properties":{"accountId":{"type":"string","example":"0.0.123456"},"transactions":{"type":"array","items":{"$ref":"#\/components\/schemas\/CreditTransaction"}},"timestamp":{"type":"string","format":"date-time"}},"additionalProperties":false},"HbarPurchaseIntentRequest":{"type":"object","properties":{"accountId":{"type":"string","description":"Hedera account ID that will fund the purchase.","example":"0.0.123456"},"credits":{"type":"integer","minimum":1,"description":"Desired amount of credits to purchase. Overrides hbarAmount when both are supplied."},"hbarAmount":{"type":"number","minimum":1.0e-8,"description":"HBAR amount to transfer to the broker treasury. Converted to credits when `credits` is omitted."}},"additionalProperties":false},"HbarPurchaseIntentResponse":{"type":"object","required":["transaction","transactionId","network","accountId","treasuryAccountId","hbarAmount","credits","tinybarAmount","memo","centsPerHbar","validStart","validDurationSeconds","requiresManualSubmit","purchaseId"],"properties":{"transaction":{"type":"string","description":"Base64 encoded Hedera transfer transaction ready for signing."},"transactionId":{"type":"string","description":"Original Hedera transaction ID."},"network":{"type":"string","description":"Hedera network the transaction targets.","example":"mainnet"},"accountId":{"type":"string","description":"Hedera account that will fund the transfer."},"treasuryAccountId":{"type":"string","description":"Broker treasury account that will receive the HBAR."},"hbarAmount":{"type":"number","minimum":1.0e-8,"description":"HBAR amount represented by the transaction."},"credits":{"type":"integer","minimum":1,"description":"Credits that will be issued once the transfer is confirmed."},"tinybarAmount":{"type":"integer","minimum":1,"description":"Transfer amount expressed in tinybars."},"memo":{"type":"string","description":"Memo applied to the Hedera transfer for traceability."},"centsPerHbar":{"type":"number","description":"Conversion rate used to calculate credits from HBAR."},"validStart":{"type":"string","format":"date-time","description":"Transaction valid start timestamp."},"validDurationSeconds":{"type":"integer","minimum":1,"description":"Number of seconds the transaction remains valid."},"requiresManualSubmit":{"type":"boolean","description":"Indicates whether the caller must submit the transaction manually.","example":true},"purchaseId":{"type":"string","description":"Identifier assigned to the purchase record for reconciliation."}},"additionalProperties":false},"StripePurchaseIntentRequest":{"type":"object","required":["amount"],"properties":{"accountId":{"type":"string","description":"Ledger account that should receive the purchased credits."},"credits":{"type":"integer","minimum":1,"description":"Target credit allotment for the purchase. Optional when converting from `amount`."},"amount":{"type":"integer","minimum":1,"description":"Amount to charge in the smallest unit for the selected currency (for USD this is cents).","example":2500},"currency":{"type":"string","description":"Three-letter ISO currency code to bill against.","example":"usd"},"paymentMethodId":{"type":"string","description":"Existing Stripe payment method to attach to the intent."},"customerId":{"type":"string","description":"Stripe customer identifier to reuse for the payment."},"metadata":{"type":"object","description":"Additional fields stored on the Stripe payment intent.","additionalProperties":true},"description":{"type":"string","description":"Free-form description for the payment intent."},"idempotencyKey":{"type":"string","description":"Client-supplied identifier that prevents duplicate Stripe intents."}},"additionalProperties":false},"StripePurchaseIntentResponse":{"type":"object","required":["success","provider","intentId","clientSecret","status","amount","currency","publishableKey"],"properties":{"success":{"type":"boolean","description":"Indicates whether the payment intent was created successfully."},"provider":{"type":"string","description":"Payment provider that fulfilled the request.","example":"stripe"},"intentId":{"type":"string","description":"Identifier of the Stripe payment intent."},"clientSecret":{"type":"string","description":"Client secret used to complete the Stripe payment on the frontend."},"status":{"type":"string","description":"Current status of the Stripe payment intent.","example":"requires_payment_method"},"amount":{"type":"integer","minimum":1,"description":"Amount the intent will charge in the smallest currency unit."},"currency":{"type":"string","description":"Three-letter ISO currency code associated with the intent."},"credits":{"type":"integer","minimum":1,"description":"Credits that will be issued when the payment succeeds."},"publishableKey":{"type":"string","description":"Stripe publishable key to initialize the client SDK."},"customerId":{"type":"string","nullable":true,"description":"Stripe customer identifier linked to the intent when available."}},"additionalProperties":false},"ContentInscriptionConfigResponse":{"type":"object","required":["enabled"],"properties":{"enabled":{"type":"boolean","description":"Whether the content inscription service is enabled.","example":true},"maxSizeBytes":{"type":"integer","nullable":true,"description":"Maximum file size allowed for inscription in bytes.","example":10485760},"allowedMimeTypes":{"type":"array","nullable":true,"items":{"type":"string"},"description":"List of allowed MIME types. Empty or null means all types are allowed.","example":["image\/png","image\/jpeg","application\/json"]}},"additionalProperties":false},"ContentInscriptionQuoteRequest":{"type":"object","required":["inputType"],"properties":{"inputType":{"type":"string","enum":["url","base64"],"description":"Source type of the content to inscribe.","example":"base64"},"url":{"type":"string","format":"uri","description":"URL to fetch content from (required when inputType is 'url')."},"base64":{"type":"string","description":"Base64-encoded content data (required when inputType is 'base64')."},"fileName":{"type":"string","description":"Original filename for the content.","example":"document.json"},"mimeType":{"type":"string","description":"MIME type of the content. Auto-detected if not provided.","example":"application\/json"},"mode":{"type":"string","enum":["file","upload","hashinal","hashinal-collection"],"description":"Inscription mode determining how content is stored on HCS.","default":"file"},"metadata":{"type":"object","additionalProperties":true,"description":"Custom metadata to attach to the inscription."},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for categorizing the inscription."},"fileStandard":{"type":"string","description":"HCS file standard to use (e.g., HCS-5)."},"chunkSize":{"type":"integer","minimum":1,"description":"Custom chunk size for splitting large content."}},"additionalProperties":false},"ContentInscriptionQuoteResponse":{"type":"object","required":["quoteId","contentHash","totalCostHbar","credits","usdCents","expiresAt","mode"],"properties":{"quoteId":{"type":"string","format":"uuid","description":"Unique identifier for this quote. Use when creating the inscription job."},"contentHash":{"type":"string","description":"SHA-256 hash of the content."},"sizeBytes":{"type":"integer","nullable":true,"description":"Size of the content in bytes."},"totalCostHbar":{"type":"number","description":"Total cost in HBAR for inscribing the content.","example":0.05},"credits":{"type":"integer","description":"Number of registry credits required.","example":4},"usdCents":{"type":"integer","description":"Approximate cost in USD cents.","example":1},"expiresAt":{"type":"string","format":"date-time","description":"Timestamp when this quote expires."},"mode":{"type":"string","enum":["file","upload","hashinal","hashinal-collection"],"description":"Inscription mode used for the quote."},"rawQuote":{"type":"object","additionalProperties":true,"description":"Raw quote details from the standards-sdk."}},"additionalProperties":false},"ContentInscriptionCreateRequest":{"type":"object","required":["inputType"],"properties":{"inputType":{"type":"string","enum":["url","base64"],"description":"Source type of the content to inscribe.","example":"base64"},"url":{"type":"string","format":"uri","description":"URL to fetch content from (required when inputType is 'url')."},"base64":{"type":"string","description":"Base64-encoded content data (required when inputType is 'base64')."},"fileName":{"type":"string","description":"Original filename for the content.","example":"document.json"},"mimeType":{"type":"string","description":"MIME type of the content. Auto-detected if not provided.","example":"application\/json"},"mode":{"type":"string","enum":["file","upload","hashinal","hashinal-collection"],"description":"Inscription mode determining how content is stored on HCS.","default":"file"},"metadata":{"type":"object","additionalProperties":true,"description":"Custom metadata to attach to the inscription."},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for categorizing the inscription."},"fileStandard":{"type":"string","description":"HCS file standard to use (e.g., HCS-5)."},"chunkSize":{"type":"integer","minimum":1,"description":"Custom chunk size for splitting large content."},"quoteId":{"type":"string","format":"uuid","description":"Optional quote ID to lock in a previously obtained price."},"waitForConfirmation":{"type":"boolean","default":false,"description":"If true, the request blocks until inscription is complete."}},"additionalProperties":false},"ContentInscriptionJobStatusResponse":{"type":"object","required":["jobId","status","mode","createdAt","updatedAt","network"],"properties":{"jobId":{"type":"string","format":"uuid","description":"Unique identifier for the inscription job."},"status":{"type":"string","enum":["pending","in_progress","completed","failed"],"description":"Current status of the inscription job."},"hrl":{"type":"string","nullable":true,"description":"HCS Resource Locator for the inscribed content (available when completed).","example":"hcs:\/\/1\/0.0.7626857"},"topicId":{"type":"string","nullable":true,"description":"HCS topic ID where the content is stored.","example":"0.0.7626857"},"transactionId":{"type":"string","nullable":true,"description":"Hedera transaction ID of the inscription."},"failureReason":{"type":"string","nullable":true,"description":"Error message if the job failed."},"sizeBytes":{"type":"integer","nullable":true,"description":"Size of the inscribed content in bytes."},"fileName":{"type":"string","nullable":true,"description":"Original filename of the content."},"mimeType":{"type":"string","nullable":true,"description":"MIME type of the content."},"mode":{"type":"string","enum":["file","upload","hashinal","hashinal-collection"],"description":"Inscription mode used."},"quoteCredits":{"type":"integer","nullable":true,"description":"Credits charged for the inscription."},"quoteUsdCents":{"type":"integer","nullable":true,"description":"USD cents equivalent of the credits charged."},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the job was created."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the job was last updated."},"reservationId":{"type":"string","nullable":true,"description":"Credit reservation identifier."},"network":{"type":"string","enum":["mainnet","testnet"],"description":"Hedera network where the content is inscribed."}},"additionalProperties":false},"ContentInscriptionListResponse":{"type":"object","required":["inscriptions","total"],"properties":{"inscriptions":{"type":"array","items":{"$ref":"#\/components\/schemas\/ContentInscriptionJobStatusResponse"},"description":"List of inscription jobs."},"total":{"type":"integer","minimum":0,"description":"Total number of inscriptions matching the query."},"limit":{"type":"integer","description":"Maximum results returned."},"offset":{"type":"integer","description":"Number of results skipped."}},"additionalProperties":false},"SkillRegistryFileInput":{"type":"object","required":["name","base64"],"properties":{"name":{"type":"string","example":"SKILL.md"},"base64":{"type":"string","description":"Base64-encoded file contents."},"mimeType":{"type":"string","nullable":true,"example":"text\/markdown"},"role":{"type":"string","nullable":true,"enum":["skill-md","skill-json","skill-icon","file"],"description":"Optional role hint used by the broker to validate file placement and treat special files (e.g. SKILL.md, skill.json, logo)."}},"additionalProperties":false},"SkillRegistryFileDescriptor":{"type":"object","required":["name","mimeType","role"],"properties":{"name":{"type":"string","example":"SKILL.md"},"mimeType":{"type":"string","example":"text\/markdown"},"role":{"type":"string","enum":["skill-md","skill-json","skill-icon","file"]},"topicId":{"type":"string","nullable":true,"example":"0.0.5001002"},"hrl":{"type":"string","nullable":true,"example":"hcs:\/\/1\/0.0.5001002"},"packageSequenceNumber":{"type":"integer","nullable":true},"sha256":{"type":"string","nullable":true},"sizeBytes":{"type":"integer","nullable":true,"minimum":0}},"additionalProperties":false},"SkillRegistryQuoteRequest":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillRegistryFileInput"},"minItems":1},"directoryTopicId":{"type":"string","nullable":true,"example":"0.0.5000001"},"accountId":{"type":"string","nullable":true,"example":"0.0.123456"}},"additionalProperties":false},"SkillRegistryQuoteFileBreakdown":{"type":"object","required":["name","mimeType","estimatedCostHbar"],"properties":{"name":{"type":"string"},"mimeType":{"type":"string"},"estimatedCostHbar":{"type":"number","minimum":0}},"additionalProperties":false},"SkillRegistryQuoteResponse":{"type":"object","required":["quoteId","name","version","directoryTopicId","estimatedCostHbar","credits","usdCents","expiresAt","files"],"properties":{"quoteId":{"type":"string","format":"uuid"},"name":{"type":"string"},"version":{"type":"string"},"directoryTopicId":{"type":"string"},"estimatedCostHbar":{"type":"number","minimum":0},"credits":{"type":"integer","minimum":1},"usdCents":{"type":"integer","minimum":1},"expiresAt":{"type":"string","format":"date-time"},"files":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillRegistryQuoteFileBreakdown"}}},"additionalProperties":false},"SkillRegistryPublishRequest":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillRegistryFileInput"},"minItems":1},"directoryTopicId":{"type":"string","nullable":true,"example":"0.0.5000001","description":"Optional existing HCS-26 discovery directory topic id. If provided, the broker treats the publish as a new version for that existing skill and enforces ownership."},"accountId":{"type":"string","nullable":true,"example":"0.0.123456"},"publisher":{"type":"string","nullable":true,"description":"Optional publisher identity label (for display\/auditing). Ownership is enforced via authenticated account\/user identity."},"quoteId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"SkillRegistryPublishJobResponse":{"type":"object","required":["jobId","trackingId","status","network","createdAt","updatedAt"],"properties":{"jobId":{"type":"string","format":"uuid"},"trackingId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","in_progress","completed","failed"]},"credits":{"type":"integer","nullable":true},"creditsReserved":{"type":"integer","nullable":true},"usdCents":{"type":"integer","nullable":true},"quoteId":{"type":"string","format":"uuid","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"network":{"type":"string","enum":["mainnet","testnet"]}},"additionalProperties":false},"SkillSafetySummary":{"type":"object","required":["score","label","findingsTotal","highFindings","scriptsTotal","permissionsMissing"],"properties":{"score":{"type":"number"},"label":{"type":"string","enum":["safe","review","caution","unsafe"]},"findingsTotal":{"type":"integer"},"highFindings":{"type":"integer"},"scriptsTotal":{"type":"integer"},"permissionsMissing":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"SkillSafetyFinding":{"type":"object","required":["ruleId","severity","file","message"],"properties":{"ruleId":{"type":"string"},"severity":{"type":"string","enum":["low","medium","high"]},"file":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false},"SkillRegistryJobStatusResponse":{"type":"object","required":["jobId","status","network","name","version","directoryTopicId","createdAt","updatedAt"],"properties":{"jobId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","in_progress","completed","failed"]},"network":{"type":"string","enum":["mainnet","testnet"]},"name":{"type":"string"},"version":{"type":"string"},"directoryTopicId":{"type":"string"},"skillUid":{"type":"integer","nullable":true,"description":"HCS-26 skill UID (sequence number of the discovery registry register message). Alias for directorySequenceNumber."},"directorySequenceNumber":{"type":"integer","nullable":true},"versionRegistryTopicId":{"type":"string","nullable":true,"description":"HCS-26 per-skill version registry topic id. Alias for packageTopicId."},"packageTopicId":{"type":"string","nullable":true},"manifestHrl":{"type":"string","nullable":true,"description":"HCS-26 manifest HRL (inscribed SKILL.json) for this published version. Alias for skillJsonHrl."},"skillJsonHrl":{"type":"string","nullable":true},"iconHcs1":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"description":"Tags used for filtering\/search. May include OASF tag ids (stringified numbers) and\/or legacy string labels.","items":{"type":"string"}},"category":{"type":"string","nullable":true},"pricing":{"type":"object","nullable":true,"properties":{"mode":{"type":"string","enum":["free","donation","paid_per_install","paid_per_use"]},"paymentRail":{"type":"string","nullable":true,"enum":["credits","x402"]},"donationUrl":{"type":"string","nullable":true},"creditsPerInstall":{"type":"integer","nullable":true,"minimum":1},"creditsPerUse":{"type":"integer","nullable":true,"minimum":1},"x402":{"type":"object","nullable":true,"properties":{"payTo":{"type":"string"},"memo":{"type":"string","nullable":true}},"additionalProperties":false}},"additionalProperties":false},"files":{"type":"array","nullable":true,"items":{"$ref":"#\/components\/schemas\/SkillRegistryFileDescriptor"}},"quoteCredits":{"type":"integer","nullable":true},"quoteUsdCents":{"type":"integer","nullable":true},"safety":{"$ref":"#\/components\/schemas\/SkillSafetySummary","nullable":true},"reservationId":{"type":"string","nullable":true},"totalCostHbar":{"type":"number","nullable":true},"totalCostCredits":{"type":"integer","nullable":true},"failureReason":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"SkillRegistryPublishSummary":{"type":"object","required":["jobId","network","name","version","createdAt","directoryTopicId","packageTopicId","skillJsonHrl"],"properties":{"jobId":{"type":"string","format":"uuid"},"network":{"type":"string","enum":["mainnet","testnet"]},"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"},"directoryTopicId":{"type":"string"},"skillUid":{"type":"integer","nullable":true,"description":"HCS-26 skill UID (sequence number of the discovery registry register message). Alias for directorySequenceNumber."},"directorySequenceNumber":{"type":"integer","nullable":true},"versionRegistryTopicId":{"type":"string","nullable":true,"description":"HCS-26 per-skill version registry topic id. Alias for packageTopicId."},"packageTopicId":{"type":"string"},"manifestHrl":{"type":"string","nullable":true,"description":"HCS-26 manifest HRL (inscribed SKILL.json) for this published version. Alias for skillJsonHrl."},"skillJsonHrl":{"type":"string"},"iconHcs1":{"type":"string","nullable":true},"tags":{"type":"array","nullable":true,"items":{"type":"string"}},"category":{"type":"string","nullable":true},"homepage":{"type":"string","nullable":true},"repo":{"type":"string","nullable":true},"commit":{"type":"string","nullable":true},"pricing":{"type":"object","nullable":true,"properties":{"mode":{"type":"string","enum":["free","donation","paid_per_install","paid_per_use"]},"paymentRail":{"type":"string","nullable":true,"enum":["credits","x402"]},"donationUrl":{"type":"string","nullable":true},"creditsPerInstall":{"type":"integer","nullable":true,"minimum":1},"creditsPerUse":{"type":"integer","nullable":true,"minimum":1},"x402":{"type":"object","nullable":true,"properties":{"payTo":{"type":"string"},"memo":{"type":"string","nullable":true}},"additionalProperties":false}},"additionalProperties":false},"featured":{"type":"boolean","nullable":true},"verified":{"type":"boolean","nullable":true},"verifiedAt":{"type":"string","format":"date-time","nullable":true},"verificationSignals":{"$ref":"#\/components\/schemas\/SkillVerificationSignals","nullable":true},"upvotes":{"type":"integer","nullable":true,"description":"Total upvotes recorded for this skill (broker-calculated)."},"installCount":{"type":"integer","nullable":true,"description":"Total install metadata resolutions recorded for this skill version."},"artifactFetchCount":{"type":"integer","nullable":true,"description":"Total resolver artifact fetches recorded for this skill version."},"copyInstallCount":{"type":"integer","nullable":true,"description":"Total install snippet copy events recorded for this skill version."},"lastInstallAt":{"type":"string","format":"date-time","nullable":true},"lastArtifactFetchAt":{"type":"string","format":"date-time","nullable":true},"lastCopyInstallAt":{"type":"string","format":"date-time","nullable":true},"trustScore":{"type":"number","nullable":true,"description":"Overall trust score (0-100) computed by the broker."},"trustScores":{"$ref":"#\/components\/schemas\/TrustScoreBreakdown","nullable":true},"safety":{"$ref":"#\/components\/schemas\/SkillSafetySummary","nullable":true},"safetyFindings":{"type":"array","nullable":true,"items":{"$ref":"#\/components\/schemas\/SkillSafetyFinding"}},"files":{"type":"array","nullable":true,"items":{"$ref":"#\/components\/schemas\/SkillRegistryFileDescriptor"}}},"additionalProperties":false},"TrustScoreBreakdown":{"type":"object","required":["total"],"properties":{"total":{"type":"number","description":"Overall trust score (0-100)."}},"additionalProperties":{"type":"number"}},"SkillRegistryVoteRequest":{"type":"object","required":["name","upvoted"],"properties":{"name":{"type":"string"},"upvoted":{"type":"boolean"}},"additionalProperties":false},"SkillRegistryVoteStatusResponse":{"type":"object","required":["name","upvotes","hasUpvoted"],"properties":{"name":{"type":"string"},"upvotes":{"type":"integer","minimum":0},"hasUpvoted":{"type":"boolean"}},"additionalProperties":false},"SkillVerificationTier":{"type":"string","enum":["basic","express"]},"SkillVerificationStatus":{"type":"string","enum":["pending","approved","rejected"]},"SkillVerificationStatusLabel":{"type":"string","enum":["not_requested","pending","approved","rejected"]},"SkillVerificationPublisherBoundSignal":{"type":"object","required":["ok","ownerAccountId","ownerUserId","checkedAt"],"properties":{"ok":{"type":"boolean"},"ownerAccountId":{"type":"string","nullable":true},"ownerUserId":{"type":"string","nullable":true},"checkedAt":{"type":"string","format":"date-time"},"reason":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationRepoCommitIntegrityMismatch":{"type":"object","required":["path","expectedSha256"],"properties":{"path":{"type":"string"},"expectedSha256":{"type":"string"},"actualSha256":{"type":"string","nullable":true},"error":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationRepoCommitIntegritySignal":{"type":"object","required":["ok","repo","commit","checkedAt","filesChecked","mismatches"],"properties":{"ok":{"type":"boolean"},"repo":{"type":"string","nullable":true},"commit":{"type":"string","nullable":true},"checkedAt":{"type":"string","format":"date-time"},"filesChecked":{"type":"integer","minimum":0},"mismatches":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillVerificationRepoCommitIntegrityMismatch"}},"partial":{"type":"boolean","nullable":true},"reason":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationManifestIntegrityShaMismatch":{"type":"object","required":["path","expectedSha256"],"properties":{"path":{"type":"string"},"expectedSha256":{"type":"string"},"actualSha256":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationManifestIntegritySignal":{"type":"object","required":["ok","manifestHrl","manifestSha256","checkedAt","missingFiles","shaMismatches"],"properties":{"ok":{"type":"boolean"},"manifestHrl":{"type":"string","nullable":true},"manifestSha256":{"type":"string","nullable":true},"checkedAt":{"type":"string","format":"date-time"},"missingFiles":{"type":"array","items":{"type":"string"}},"shaMismatches":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillVerificationManifestIntegrityShaMismatch"}},"extraFiles":{"type":"array","items":{"type":"string"},"nullable":true},"reason":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationDomainProofSignal":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"},"domain":{"type":"string","nullable":true},"method":{"type":"string","enum":["dns_txt","first_party"],"nullable":true},"checkedAt":{"type":"string","format":"date-time","nullable":true},"details":{"type":"string","nullable":true},"txtRecordName":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationSignals":{"type":"object","required":["publisherBound","repoCommitIntegrity","manifestIntegrity"],"properties":{"publisherBound":{"$ref":"#\/components\/schemas\/SkillVerificationPublisherBoundSignal"},"repoCommitIntegrity":{"$ref":"#\/components\/schemas\/SkillVerificationRepoCommitIntegritySignal"},"manifestIntegrity":{"$ref":"#\/components\/schemas\/SkillVerificationManifestIntegritySignal"},"domainProof":{"$ref":"#\/components\/schemas\/SkillVerificationDomainProofSignal"}},"additionalProperties":false},"SkillVerificationRequest":{"type":"object","required":["id","network","name","tier","status","usdCents","creditsCharged","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"network":{"type":"string","enum":["mainnet","testnet"]},"name":{"type":"string"},"version":{"type":"string","nullable":true},"tier":{"$ref":"#\/components\/schemas\/SkillVerificationTier"},"status":{"$ref":"#\/components\/schemas\/SkillVerificationStatus"},"usdCents":{"type":"integer","minimum":0},"creditsCharged":{"type":"number","minimum":0},"creditAccountId":{"type":"string","nullable":true},"signals":{"$ref":"#\/components\/schemas\/SkillVerificationSignals","nullable":true},"reviewNotes":{"type":"string","nullable":true},"requestedBy":{"type":"object","nullable":true,"properties":{"userId":{"type":"string","nullable":true},"accountId":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}},"additionalProperties":false},"approvedBy":{"type":"object","nullable":true,"properties":{"userId":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}},"additionalProperties":false},"approvedAt":{"type":"string","format":"date-time","nullable":true},"rejectedBy":{"type":"object","nullable":true,"properties":{"userId":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}},"additionalProperties":false},"rejectedAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"SkillVerificationRequestCreateRequest":{"type":"object","required":["name","tier"],"properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"tier":{"$ref":"#\/components\/schemas\/SkillVerificationTier"}},"additionalProperties":false},"SkillVerificationDomainProofChallengeRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"domain":{"type":"string","nullable":true}},"additionalProperties":false},"SkillVerificationDomainProofChallengeResponse":{"type":"object","required":["challengeId","name","version","domain","method","txtRecordName","txtRecordValue","expiresAt"],"properties":{"challengeId":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"domain":{"type":"string"},"method":{"type":"string","enum":["dns_txt"]},"txtRecordName":{"type":"string"},"txtRecordValue":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"SkillVerificationDomainProofVerifyRequest":{"type":"object","required":["name","challengeToken"],"properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"domain":{"type":"string","nullable":true},"challengeToken":{"type":"string"}},"additionalProperties":false},"SkillVerificationDomainProofVerifyResponse":{"type":"object","required":["name","version","signal"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"signal":{"$ref":"#\/components\/schemas\/SkillVerificationDomainProofSignal"}},"additionalProperties":false},"SkillVerificationRequestCreateResponse":{"type":"object","required":["request"],"properties":{"request":{"$ref":"#\/components\/schemas\/SkillVerificationRequest"}},"additionalProperties":false},"SkillVerificationStatusResponse":{"type":"object","required":["name","version","status","verified","previouslyVerified","pendingRequest"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"status":{"$ref":"#\/components\/schemas\/SkillVerificationStatusLabel"},"verified":{"type":"boolean"},"previouslyVerified":{"type":"boolean"},"signals":{"anyOf":[{"$ref":"#\/components\/schemas\/SkillVerificationSignals"},{"type":"null"}]},"reviewNotes":{"type":"string","nullable":true},"pendingRequest":{"anyOf":[{"$ref":"#\/components\/schemas\/SkillVerificationRequest"},{"type":"null"}]}},"additionalProperties":false},"VerificationStatusResponse":{"type":"object","required":["uaid","verified","chain"],"properties":{"uaid":{"type":"string"},"verified":{"type":"boolean"},"chain":{"type":"string","nullable":true}},"additionalProperties":true},"VerificationDnsError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}},"additionalProperties":true},"VerificationDnsVerifyRequest":{"type":"object","required":["uaid"],"properties":{"uaid":{"type":"string"},"persist":{"type":"boolean"}},"additionalProperties":false},"VerificationDnsStatusResponse":{"type":"object","required":["uaid","verified","profileId","checkedAt"],"properties":{"uaid":{"type":"string"},"verified":{"type":"boolean"},"profileId":{"type":"string"},"checkedAt":{"type":"string","format":"date-time"},"nativeId":{"type":"string"},"dnsName":{"type":"string"},"verificationLevel":{"type":"string"},"resolutionMode":{"type":"string"},"reconstructedUaid":{"type":"string"},"selectedFollowupProfile":{"type":"string"},"error":{"$ref":"#\/components\/schemas\/VerificationDnsError"},"source":{"type":"string"},"persisted":{"type":"boolean"}},"additionalProperties":true},"SkillRegistryListResponse":{"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillRegistryPublishSummary"}},"nextCursor":{"type":"string","nullable":true}},"additionalProperties":false},"SkillSecurityBreakdownResponse":{"type":"object","required":["name","version","jobId","createdAt","safety","findings"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"jobId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"safety":{"$ref":"#\/components\/schemas\/SkillSafetySummary","nullable":true},"findings":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillSafetyFinding"}}},"additionalProperties":false},"SkillRegistryVersionItem":{"type":"object","required":["jobId","version","createdAt"],"properties":{"jobId":{"type":"string","format":"uuid"},"version":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"verified":{"type":"boolean","nullable":true}},"additionalProperties":false},"SkillRegistryVersionsResponse":{"type":"object","required":["name","items"],"properties":{"name":{"type":"string"},"items":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillRegistryVersionItem"}}},"additionalProperties":false},"SkillRegistryMineItem":{"type":"object","required":["name","latestVersion","latestCreatedAt","versions"],"properties":{"name":{"type":"string"},"latestVersion":{"type":"string"},"latestCreatedAt":{"type":"string","format":"date-time"},"verified":{"type":"boolean","nullable":true},"iconHcs1":{"type":"string","nullable":true},"versions":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"SkillRegistryMineResponse":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillRegistryMineItem"}}},"additionalProperties":false},"SkillRegistryMyListResponse":{"type":"object","required":["owned","upvoted"],"properties":{"owned":{"$ref":"#\/components\/schemas\/SkillRegistryMineResponse"},"upvoted":{"$ref":"#\/components\/schemas\/SkillRegistryListResponse"}},"additionalProperties":false},"SkillCatalogVersionSummary":{"type":"object","required":["version","publishedAt"],"properties":{"version":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"verified":{"type":"boolean"}},"additionalProperties":false},"SkillCatalogItem":{"type":"object","required":["name","latest","recommended","upvotes","verified","repoStamped"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"iconHcs1":{"type":"string"},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"latest":{"$ref":"#\/components\/schemas\/SkillCatalogVersionSummary"},"latestStable":{"$ref":"#\/components\/schemas\/SkillCatalogVersionSummary"},"recommended":{"$ref":"#\/components\/schemas\/SkillCatalogVersionSummary"},"upvotes":{"type":"integer","minimum":0},"installCount":{"type":"integer","minimum":0},"artifactFetchCount":{"type":"integer","minimum":0},"copyInstallCount":{"type":"integer","minimum":0},"verified":{"type":"boolean"},"repoStamped":{"type":"boolean"},"trustScore":{"type":"number"},"safetyScore":{"type":"number"}},"additionalProperties":false},"SkillCatalogResponse":{"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillCatalogItem"}},"nextCursor":{"type":"string","nullable":true}},"additionalProperties":false},"SkillTrustTier":{"type":"string","enum":["unclaimed","validated","published","verified","hardened"]},"SkillPreviewSuggestedNextStep":{"type":"object","required":["id","label","description"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"command":{"type":"string"},"href":{"type":"string"}},"additionalProperties":false},"SkillPreviewReport":{"type":"object","required":["schema_version","tool_version","preview_id","repo_url","repo_owner","repo_name","default_branch","commit_sha","ref","event_name","workflow_run_url","skill_dir","name","version","validation_status","findings","package_summary","suggested_next_steps","generated_at"],"properties":{"schema_version":{"type":"string","enum":["skill-preview.v1"]},"tool_version":{"type":"string"},"preview_id":{"type":"string"},"repo_url":{"type":"string"},"repo_owner":{"type":"string"},"repo_name":{"type":"string"},"default_branch":{"type":"string"},"commit_sha":{"type":"string"},"ref":{"type":"string"},"event_name":{"type":"string"},"workflow_run_url":{"type":"string"},"skill_dir":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"validation_status":{"type":"string","enum":["passed"]},"findings":{"type":"array","items":{}},"package_summary":{"type":"object","additionalProperties":true},"suggested_next_steps":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillPreviewSuggestedNextStep"}},"generated_at":{"type":"string","format":"date-time"}},"additionalProperties":false},"SkillPreviewRecord":{"type":"object","required":["id","previewId","source","report","generatedAt","expiresAt","statusUrl","authoritative"],"properties":{"id":{"type":"string"},"previewId":{"type":"string"},"source":{"type":"string","enum":["github-oidc"]},"report":{"$ref":"#\/components\/schemas\/SkillPreviewReport"},"generatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"statusUrl":{"type":"string"},"authoritative":{"type":"boolean","enum":[false]}},"additionalProperties":false},"SkillPreviewLookupResponse":{"type":"object","required":["found","authoritative","preview","statusUrl","expiresAt"],"properties":{"found":{"type":"boolean"},"authoritative":{"type":"boolean","enum":[false]},"preview":{"allOf":[{"$ref":"#\/components\/schemas\/SkillPreviewRecord"}],"nullable":true},"statusUrl":{"type":"string","nullable":true},"expiresAt":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"SkillStatusPreviewMetadata":{"type":"object","required":["previewId","repoUrl","repoOwner","repoName","commitSha","ref","eventName","skillDir","generatedAt","expiresAt","statusUrl"],"properties":{"previewId":{"type":"string"},"repoUrl":{"type":"string"},"repoOwner":{"type":"string"},"repoName":{"type":"string"},"commitSha":{"type":"string"},"ref":{"type":"string"},"eventName":{"type":"string"},"skillDir":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"statusUrl":{"type":"string"}},"additionalProperties":false},"SkillStatusChecks":{"type":"object","required":["repoCommitIntegrity","manifestIntegrity","domainProof"],"properties":{"repoCommitIntegrity":{"type":"boolean"},"manifestIntegrity":{"type":"boolean"},"domainProof":{"type":"boolean"}},"additionalProperties":false},"SkillStatusVerificationSignals":{"type":"object","required":["publisherBound","domainProof","verifiedDomain","previewValidated"],"properties":{"publisherBound":{"type":"boolean"},"domainProof":{"type":"boolean"},"verifiedDomain":{"type":"boolean"},"previewValidated":{"type":"boolean"}},"additionalProperties":false},"SkillStatusProvenanceSignals":{"type":"object","required":["repoCommitIntegrity","manifestIntegrity","canonicalRelease","previewAvailable","previewAuthoritative"],"properties":{"repoCommitIntegrity":{"type":"boolean"},"manifestIntegrity":{"type":"boolean"},"canonicalRelease":{"type":"boolean"},"previewAvailable":{"type":"boolean"},"previewAuthoritative":{"type":"boolean"}},"additionalProperties":false},"SkillStatusNextStep":{"type":"object","required":["kind","priority","id","label","description","url","href","command"],"properties":{"kind":{"type":"string","enum":["setup_validate","publish_first_release","verify_domain","harden_workflow","share_status"]},"priority":{"type":"integer"},"id":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","nullable":true},"href":{"type":"string","nullable":true},"command":{"type":"string","nullable":true}},"additionalProperties":false},"SkillStatusResponse":{"type":"object","required":["name","version","published","verifiedDomain","trustTier","badgeMetric","checks","nextSteps","verificationSignals","provenanceSignals","publisher","statusUrl"],"properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"published":{"type":"boolean"},"verifiedDomain":{"type":"boolean"},"trustTier":{"$ref":"#\/components\/schemas\/SkillTrustTier"},"badgeMetric":{"type":"string","enum":["tier"]},"checks":{"$ref":"#\/components\/schemas\/SkillStatusChecks"},"nextSteps":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillStatusNextStep"}},"verificationSignals":{"$ref":"#\/components\/schemas\/SkillStatusVerificationSignals"},"provenanceSignals":{"$ref":"#\/components\/schemas\/SkillStatusProvenanceSignals"},"publisher":{"allOf":[{"$ref":"#\/components\/schemas\/SkillPublisherMetadata"}],"nullable":true},"preview":{"allOf":[{"$ref":"#\/components\/schemas\/SkillStatusPreviewMetadata"}],"nullable":true},"statusUrl":{"type":"string","nullable":true}},"additionalProperties":false},"SkillRecommendedVersionResponse":{"type":"object","required":["name","version","updatedAt","setBy"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"setBy":{"type":"string"}},"additionalProperties":false},"SkillRecommendedVersionSetRequest":{"type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false},"SkillDeprecationRecord":{"type":"object","required":["name","reason","deprecatedAt","deprecatedBy"],"properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"reason":{"type":"string"},"replacementRef":{"type":"string","nullable":true},"deprecatedAt":{"type":"string","format":"date-time"},"deprecatedBy":{"type":"string"}},"additionalProperties":false},"SkillDeprecationsResponse":{"type":"object","required":["name","items"],"properties":{"name":{"type":"string"},"items":{"type":"array","items":{"$ref":"#\/components\/schemas\/SkillDeprecationRecord"}}},"additionalProperties":false},"SkillDeprecationSetRequest":{"type":"object","required":["name","reason"],"properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"reason":{"type":"string"},"replacementRef":{"type":"string","nullable":true}},"additionalProperties":false},"SkillRegistryTagsResponse":{"type":"object","required":["tags"],"properties":{"tags":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"SkillRegistryCategoriesResponse":{"type":"object","required":["categories"],"properties":{"categories":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"SkillPublisherMetadata":{"type":"object","required":["cliPackageUrl","cliCommand","actionMarketplaceUrl","repositoryUrl","guideUrl","docsUrl","submitUrl","skillsIndexUrl","quickstartCommands","templatePresets"],"properties":{"cliPackageUrl":{"type":"string"},"cliCommand":{"type":"string"},"actionMarketplaceUrl":{"type":"string"},"repositoryUrl":{"type":"string"},"guideUrl":{"type":"string","nullable":true},"docsUrl":{"type":"string","nullable":true},"submitUrl":{"type":"string","nullable":true},"skillsIndexUrl":{"type":"string","nullable":true},"quickstartCommands":{"type":"array","items":{"type":"object","required":["id","label","description","command","href"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"command":{"type":"string"},"href":{"type":"string","nullable":true}},"additionalProperties":false}},"templatePresets":{"type":"array","items":{"type":"object","required":["presetId","label","description","recommendedFor","command"],"properties":{"presetId":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"recommendedFor":{"type":"string"},"command":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"SkillRegistryConfigResponse":{"type":"object","required":["enabled"],"properties":{"enabled":{"type":"boolean"},"directoryTopicId":{"type":"string","nullable":true},"maxFiles":{"type":"integer","nullable":true},"maxTotalSizeBytes":{"type":"integer","nullable":true},"allowedMimeTypes":{"type":"array","nullable":true,"items":{"type":"string"}},"network":{"type":"string","nullable":true,"enum":["mainnet","testnet"]},"publisher":{"allOf":[{"$ref":"#\/components\/schemas\/SkillPublisherMetadata"}],"nullable":true}},"additionalProperties":false},"SkillInstallArtifactDescriptor":{"type":"object","required":["url","pointer","sha256"],"properties":{"url":{"type":"string"},"pointer":{"type":"string","nullable":true},"sha256":{"type":"string","nullable":true}},"additionalProperties":false},"SkillInstallResolverDescriptor":{"type":"object","required":["skillRef","skillMdUrl","manifestUrl"],"properties":{"skillRef":{"type":"string"},"skillMdUrl":{"type":"string"},"manifestUrl":{"type":"string"}},"additionalProperties":false},"SkillInstallBadgeDescriptor":{"type":"object","required":["apiUrl","imageUrl","markdown","html"],"properties":{"apiUrl":{"type":"string"},"imageUrl":{"type":"string"},"markdown":{"type":"string"},"html":{"type":"string"}},"additionalProperties":false},"SkillInstallShareDescriptor":{"type":"object","required":["canonicalUrl","latestUrl","markdownLink","htmlLink","badge"],"properties":{"canonicalUrl":{"type":"string","nullable":true},"latestUrl":{"type":"string","nullable":true},"markdownLink":{"type":"string","nullable":true},"htmlLink":{"type":"string","nullable":true},"badge":{"allOf":[{"$ref":"#\/components\/schemas\/SkillInstallBadgeDescriptor"}],"nullable":true}},"additionalProperties":false},"SkillInstallSnippetSet":{"type":"object","required":["cli","claude","cursor","codex","openclaw"],"properties":{"cli":{"type":"string"},"claude":{"type":"string"},"cursor":{"type":"string"},"codex":{"type":"string"},"openclaw":{"type":"string"}},"additionalProperties":false},"SkillInstallResponse":{"type":"object","required":["name","version","skillRef","network","detailUrl","artifacts","resolvers","share","snippets"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"skillRef":{"type":"string"},"network":{"type":"string","enum":["mainnet","testnet"]},"detailUrl":{"type":"string","nullable":true},"artifacts":{"type":"object","required":["skillMd","manifest"],"properties":{"skillMd":{"$ref":"#\/components\/schemas\/SkillInstallArtifactDescriptor"},"manifest":{"$ref":"#\/components\/schemas\/SkillInstallArtifactDescriptor"}},"additionalProperties":false},"resolvers":{"type":"object","required":["pinned","latest"],"properties":{"pinned":{"$ref":"#\/components\/schemas\/SkillInstallResolverDescriptor"},"latest":{"$ref":"#\/components\/schemas\/SkillInstallResolverDescriptor"}},"additionalProperties":false},"share":{"$ref":"#\/components\/schemas\/SkillInstallShareDescriptor"},"snippets":{"$ref":"#\/components\/schemas\/SkillInstallSnippetSet"}},"additionalProperties":false}}}}