{
  "openapi": "3.1.0",
  "info": {
    "title": "Reveno Open Agent Trust Network API",
    "version": "1.0.0",
    "description": "Public manifests, preflight, policy decisions, blast radius and reviewed attestations for agentic infrastructure."
  },
  "servers": [{ "url": "https://agents.reveno.com.br/api/v1" }],
  "paths": {
    "/manifests/{componentId}": {
      "get": {
        "summary": "Get the canonical agentic manifest",
        "parameters": [{ "$ref": "#/components/parameters/ComponentId" }],
        "responses": { "200": { "description": "Agentic manifest", "content": { "application/json": { "schema": { "$ref": "https://agents.reveno.com.br/schemas/agentic-manifest-v1.json" } } } }, "404": { "$ref": "#/components/responses/NotFound" } }
      }
    },
    "/preflight/{componentId}": {
      "get": {
        "summary": "Evaluate a component before installation",
        "parameters": [{ "$ref": "#/components/parameters/ComponentId" }, { "name": "production", "in": "query", "schema": { "type": "boolean" } }, { "name": "sensitiveData", "in": "query", "schema": { "type": "boolean" } }],
        "responses": { "200": { "description": "Manifest and public policy evaluation" }, "404": { "$ref": "#/components/responses/NotFound" } }
      }
    },
    "/policy/check": {
      "post": {
        "summary": "Evaluate a manifest against a policy",
        "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": ["manifest", "policy"], "properties": { "manifest": { "$ref": "https://agents.reveno.com.br/schemas/agentic-manifest-v1.json" }, "policy": { "$ref": "https://agents.reveno.com.br/schemas/policy-v1.json" }, "context": { "type": "object" } } } } } },
        "responses": { "200": { "description": "Deterministic policy decision" }, "400": { "description": "Invalid input" }, "429": { "description": "Rate limit exceeded" } }
      }
    },
    "/blast-radius/{componentId}": {
      "get": {
        "summary": "List observed public stacks affected by a component",
        "parameters": [{ "$ref": "#/components/parameters/ComponentId" }],
        "responses": { "200": { "description": "Observed blast radius with explicit limitations" }, "404": { "$ref": "#/components/responses/NotFound" } }
      }
    },
    "/attestations/{componentId}": {
      "get": {
        "summary": "List reviewed and published attestations",
        "parameters": [{ "$ref": "#/components/parameters/ComponentId" }],
        "responses": { "200": { "description": "Published evidence only" } }
      }
    }
  },
  "components": {
    "parameters": { "ComponentId": { "name": "componentId", "in": "path", "required": true, "schema": { "type": "string", "maxLength": 120 } } },
    "responses": { "NotFound": { "description": "Component not found" } }
  }
}
