{
  "openapi": "3.0.3",
  "info": {
    "title": "Holeacquisition LLC Embedded Agents",
    "version": "1.1.0",
    "description": "The typed public contract for Holeacquisition LLC Embedded Agents: models, providers, tenants, versioned agents, installations, sessions, runs, knowledge, tools, approvals, webhooks, and attributed usage.",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    }
  },
  "servers": [
    {
      "url": "https://holeacquisition.com"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Project secret (csk_*) for server ops; short-lived client token (ect_*) for browser execution."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "example": "invalid_request_error"
              },
              "code": {
                "type": "string",
                "example": "invalid_request"
              },
              "message": {
                "type": "string"
              },
              "request_id": {
                "type": "string",
                "nullable": true
              },
              "param": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "type",
              "code",
              "message"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "failed"
            ]
          }
        },
        "required": [
          "error"
        ]
      },
      "DeletedResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "deleted": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "Tenant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "ten_abc"
          },
          "external_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "suspended",
              "deleting",
              "deleted"
            ]
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "external_id",
          "name",
          "status",
          "metadata",
          "created_at",
          "updated_at"
        ]
      },
      "TenantList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tenant"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "TenantUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "tenant_id",
          "external_id",
          "status",
          "roles",
          "groups",
          "metadata"
        ]
      },
      "TenantUserList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantUser"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "TenantExport": {
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/Tenant"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantUser"
            }
          },
          "exported_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "tenant",
          "users",
          "exported_at"
        ]
      },
      "ClientToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "example": "ect_..."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "token",
          "expires_at"
        ]
      },
      "UnifiedModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "object": {
            "type": "string",
            "enum": [
              "model"
            ]
          },
          "created": {
            "type": "integer"
          },
          "owned_by": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "context_window": {
            "type": "integer"
          },
          "provider": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "cencori",
              "byok",
              "custom"
            ]
          },
          "connection_id": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "available": {
            "type": "boolean"
          },
          "unavailable_reason": {
            "type": "string",
            "nullable": true
          },
          "pricing_status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "object",
          "name",
          "provider",
          "source",
          "status",
          "available"
        ]
      },
      "ModelList": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "list"
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedModel"
            }
          },
          "total": {
            "type": "integer",
            "description": "Filtered catalog rows (connection variants stay addressable via connection_id)."
          },
          "distinct_model_ids": {
            "type": "integer",
            "description": "Unique model IDs in the filtered catalog."
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          },
          "partial": {
            "type": "boolean",
            "description": "True when a source query failed or was truncated: the catalog is incomplete."
          },
          "providers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "required": [
          "object",
          "data",
          "total",
          "next_cursor",
          "partial",
          "providers"
        ]
      },
      "ProviderConnection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "api_format": {
            "type": "string"
          },
          "base_url": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "last_tested_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "provider",
          "status"
        ]
      },
      "ProviderConnectionList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderConnection"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "ProviderValidation": {
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean"
          },
          "provider": {
            "type": "string"
          },
          "api_format": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "models_discovered": {
            "type": "integer"
          }
        },
        "required": [
          "valid"
        ]
      },
      "ModelSync": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "connection_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "counts": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "changes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "connection_id",
          "status"
        ]
      },
      "AgentConfig": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "nullable": true
          },
          "system_prompt": {
            "type": "string",
            "nullable": true
          },
          "tools": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "temperature": {
            "type": "number",
            "nullable": true
          }
        }
      },
      "Agent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "agt_abc"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "is_active": {
            "type": "boolean"
          },
          "shadow_mode": {
            "type": "boolean"
          },
          "config": {
            "$ref": "#/components/schemas/AgentConfig"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "is_active",
          "shadow_mode",
          "config",
          "created_at"
        ]
      },
      "AgentList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Agent"
            }
          }
        },
        "required": [
          "data"
        ]
      },
      "AgentKey": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key_prefix": {
            "type": "string"
          },
          "full_key": {
            "type": "string",
            "description": "Returned only once when the key is created."
          },
          "environment": {
            "type": "string"
          },
          "key_type": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "key_prefix",
          "environment",
          "key_type",
          "agent_id",
          "created_at"
        ]
      },
      "AgentVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "ready_for_review",
              "published",
              "deprecated",
              "retired"
            ]
          },
          "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "requirements": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "visibility": {
            "type": "string"
          },
          "validation": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "test_result": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "published_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "agent_id",
          "version",
          "status",
          "config"
        ]
      },
      "AgentVersionList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgentVersion"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "AgentVersionValidation": {
        "type": "object",
        "properties": {
          "valid": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "version": {
            "$ref": "#/components/schemas/AgentVersion"
          }
        },
        "required": [
          "valid",
          "status"
        ]
      },
      "AgentVersionTest": {
        "type": "object",
        "properties": {
          "passed": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "output": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "readiness": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "version": {
            "$ref": "#/components/schemas/AgentVersion"
          }
        },
        "required": [
          "passed",
          "status"
        ]
      },
      "MarketplaceAgent": {
        "type": "object",
        "properties": {
          "version_id": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "requirements": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "published_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "version_id",
          "agent_id",
          "version"
        ]
      },
      "MarketplaceAgentList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketplaceAgent"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "Installation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "ins_abc"
          },          "tenant_id": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "agent_version_id": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "update_channel": {
            "type": "string"
          },
          "knowledge_base_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "approval_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "overlay_config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "budget": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "tenant_id",
          "agent_id",
          "status",
          "knowledge_base_ids",
          "connection_ids"
        ]
      },
      "InstallationList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Installation"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "RunOutput": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "result"
          },
          "output": {},
          "model": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "agent_version_id": {
            "type": "string",
            "nullable": true
          },
          "agent_version": {
            "type": "string",
            "nullable": true
          },
          "reasoning_effort_applied": {
            "type": "string",
            "nullable": true,
            "description": "Manifest reasoning effort applied to provider requests (OpenAI family), or null."
          },
          "tool_calls": {
            "type": "array",
            "description": "Hosted MCP tool calls executed during the run.",
            "items": {
              "type": "object",
              "properties": {
                "tool": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "executed",
                    "failed"
                  ]
                },
                "action_id": {
                  "type": "string"
                }
              }
            }
          },
          "knowledge_citations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "skills_used": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "skills_failed": {
            "type": "boolean",
            "description": "True when skill retrieval failed; the run proceeded without skill procedures and emitted a skills.unavailable event."
          },
          "manifest_tools": {
            "type": "array",
            "items": {}
          },
          "manifest_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "usage": {
            "type": "object",
            "properties": {
              "promptTokens": {
                "type": "integer"
              },
              "completionTokens": {
                "type": "integer"
              },
              "totalTokens": {
                "type": "integer"
              },
              "cacheReadTokens": {
                "type": "integer"
              }
            },
            "required": [
              "promptTokens",
              "completionTokens",
              "totalTokens"
            ]
          },
          "cost": {
            "type": "object",
            "properties": {
              "providerCostUsd": {
                "type": "number"
              },
              "cencoriChargeUsd": {
                "type": "number"
              },
              "markupPercentage": {
                "type": "number"
              }
            },
            "required": [
              "providerCostUsd",
              "cencoriChargeUsd",
              "markupPercentage"
            ]
          }
        },
        "required": [
          "type",
          "output",
          "model",
          "provider",
          "usage",
          "cost"
        ]
      },
      "Run": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "run_abc"
          },
          "agent_id": {
            "type": "string"
          },
          "agent_version_id": {
            "type": "string",
            "nullable": true
          },
          "installation_id": {
            "type": "string",
            "nullable": true
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "external_user_id": {
            "type": "string",
            "nullable": true
          },
          "session_id": {
            "type": "string",
            "nullable": true
          },
          "parent_run_id": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "requires_action",
              "completed",
              "failed",
              "cancelled",
              "expired"
            ]
          },
          "input": {},
          "output": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RunOutput"
              }
            ],
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "citations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "agent_id",
          "status"
        ]
      },
      "RunEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "run_id": {
            "type": "string"
          },
          "sequence": {
            "type": "integer"
          },
          "event_type": {
            "type": "string"
          },
          "payload": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "run_id",
          "sequence",
          "event_type",
          "payload",
          "created_at"
        ]
      },
      "RunEventList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunEvent"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "Action": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "act_abc"
          },
          "project_id": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "run_id": {
            "type": "string",
            "nullable": true
          },
          "session_id": {
            "type": "string",
            "nullable": true
          },
          "tool": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "rejected",
              "executing",
              "completed",
              "failed",
              "expired"
            ]
          },
          "result": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "tool",
          "arguments",
          "status",
          "created_at"
        ]
      },
      "Connector": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "auth_type": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "id",
          "name",
          "auth_type"
        ]
      },
      "ConnectorList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connector"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "Connection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "connector": {
            "type": "string"
          },
          "owner_type": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "external_user_id": {
            "type": "string",
            "nullable": true
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "expires_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "connector",
          "owner_type",
          "status"
        ]
      },
      "ConnectionList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connection"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "OAuthAuthorization": {
        "type": "object",
        "properties": {
          "authorize_url": {
            "type": "string",
            "format": "uri"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "authorize_url",
          "state"
        ]
      },
      "ConnectionTest": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "has_credential": {
            "type": "boolean"
          },
          "expired": {
            "type": "boolean"
          },
          "expires_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          }
        },
        "required": [
          "success",
          "has_credential",
          "expired"
        ]
      },
      "KnowledgeBase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "scope_type": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "retention_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "source_count": {
            "type": "integer"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "scope_type",
          "status"
        ]
      },
      "KnowledgeBaseList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KnowledgeBase"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "KnowledgeSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "knowledge_base_id": {
            "type": "string"
          },
          "source_type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "checksum": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "knowledge_base_id",
          "source_type",
          "status"
        ]
      },
      "KnowledgeSourceList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KnowledgeSource"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "KnowledgeGrant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "knowledge_base_id": {
            "type": "string"
          },
          "subject_type": {
            "type": "string"
          },
          "subject_id": {
            "type": "string"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "knowledge_base_id",
          "subject_type",
          "subject_id",
          "permissions"
        ]
      },
      "KnowledgeGrantList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KnowledgeGrant"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "KnowledgeSearchResult": {
        "type": "object",
        "properties": {
          "chunk_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "chunk_id",
          "source_id",
          "text",
          "score"
        ]
      },
      "KnowledgeSearchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KnowledgeSearchResult"
            }
          }
        },
        "required": [
          "data"
        ]
      },
      "Skill": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "visibility": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "visibility",
          "status"
        ]
      },
      "SkillList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Skill"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "SkillVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "skill_id": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "scan": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "published_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "skill_id",
          "version",
          "status"
        ]
      },
      "SkillVersionList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SkillVersion"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "SkillImport": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "source_type": {
            "type": "string"
          },
          "source": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "findings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "status",
          "source_type",
          "findings"
        ]
      },
      "McpServer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "transport": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "auth_connection_id": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "url",
          "transport",
          "status"
        ]
      },
      "McpServerList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/McpServer"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "McpTool": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "input_schema": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "annotations": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "name",
          "input_schema"
        ]
      },
      "McpToolList": {
        "type": "object",
        "properties": {
          "tools": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/McpTool"
            }
          }
        },
        "required": [
          "tools"
        ]
      },
      "McpDiscoveryResult": {
        "type": "object",
        "properties": {
          "server": {
            "$ref": "#/components/schemas/McpServer"
          },
          "tools": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/McpTool"
            }
          },
          "added": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "removed": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "changed": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "server",
          "tools"
        ]
      },
      "McpTest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          },
          "transport": {
            "type": "string"
          },
          "tool_count": {
            "type": "integer"
          },
          "latency_ms": {
            "type": "number"
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "success",
          "latency_ms"
        ]
      },
      "ProviderTest": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "reachable": {
            "type": "boolean",
            "nullable": true
          },
          "authenticated": {
            "type": "boolean"
          },
          "latency_ms": {
            "type": "number"
          },
          "discovery_supported": {
            "type": "boolean"
          },
          "model_count": {
            "type": "integer",
            "nullable": true
          },
          "status": {
            "type": "integer"
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "success",
          "authenticated",
          "latency_ms"
        ]
      },
      "EndUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "rate_plan_id": {
            "type": "string",
            "nullable": true
          },
          "is_blocked": {
            "type": "boolean"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "external_id",
          "is_blocked",
          "metadata"
        ]
      },
      "EndUserList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EndUser"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "RatePlan": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "markup_percentage": {
            "type": "number"
          },
          "flat_rate": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "currency"
        ]
      },
      "RatePlanList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RatePlan"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "Session": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "completed",
              "failed"
            ]
          },
          "turn_count": {
            "type": "integer"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "agent_id": {
            "type": "string",
            "nullable": true
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "external_user_id": {
            "type": "string",
            "nullable": true
          },
          "installation_id": {
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "total_cost": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "status",
          "turn_count",
          "created_at",
          "updated_at",
          "agent_id",
          "tenant_id",
          "external_user_id",
          "installation_id",
          "metadata",
          "total_cost"
        ]
      },
      "SessionList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Session"
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "total": {
                "type": "integer"
              },
              "total_pages": {
                "type": "integer"
              }
            },
            "required": [
              "page",
              "limit",
              "total",
              "total_pages"
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "SessionEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "turn_number": {
            "type": "integer"
          },
          "sequence": {
            "type": "integer"
          },
          "event_type": {
            "type": "string"
          },
          "payload": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "session_id",
          "turn_number",
          "sequence",
          "event_type",
          "payload",
          "created_at"
        ]
      },
      "SessionEventList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SessionEvent"
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "total": {
                "type": "integer"
              },
              "total_pages": {
                "type": "integer"
              }
            },
            "required": [
              "page",
              "limit",
              "total",
              "total_pages"
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "SessionResolution": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "action_id": {
            "type": "string"
          },
          "resolution": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "action_id",
          "resolution",
          "status"
        ]
      },
      "UsageSummary": {
        "type": "object",
        "properties": {
          "window": {
            "type": "object",
            "properties": {
              "since": {
                "type": "string",
                "format": "date-time"
              },
              "until": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "totals": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "truncated": {
            "type": "boolean",
            "description": "True when the scan hit the row cap: totals are partial, not complete."
          },
          "row_cap": {
            "type": "integer"
          },
          "unresolved_rows": {
            "type": "integer",
            "description": "Rows whose charges are not yet reconciled (see billing_state)."
          }
        },
        "required": [
          "totals",
          "groups",
          "truncated",
          "row_cap",
          "unresolved_rows"
        ]
      },
      "UsageEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string",
            "nullable": true
          },
          "external_user_id": {
            "type": "string",
            "nullable": true
          },
          "agent_id": {
            "type": "string",
            "nullable": true
          },
          "installation_id": {
            "type": "string",
            "nullable": true
          },
          "session_id": {
            "type": "string",
            "nullable": true
          },
          "run_id": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "provider": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "total_tokens": {
            "type": "integer"
          },
          "cost_usd": {
            "type": "number"
          },
          "cencori_charge_usd": {
            "type": "number"
          },
          "end_user_id": {
            "type": "string",
            "nullable": true
          },
          "billing_state": {
            "type": "string",
            "enum": [
              "final",
              "unresolved"
            ],
            "description": "Unresolved rows carry recorded-zero costs pending billing reconciliation and must not read as free."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "created_at",
          "billing_state"
        ]
      },
      "UsageEventList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageEvent"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "UsageExport": {
        "type": "object",
        "properties": {
          "generated_at": {
            "type": "string",
            "format": "date-time"
          },
          "totals": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageEvent"
            }
          }
        },
        "required": [
          "generated_at",
          "rows"
        ]
      },
      "Webhook": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "is_active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "url",
          "events",
          "is_active"
        ]
      },
      "WebhookList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Webhook"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "WebhookDelivery": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "webhook_id": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "response_status": {
            "type": "integer"
          },
          "attempts": {
            "type": "integer"
          },
          "next_attempt_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "webhook_id",
          "event",
          "status",
          "attempts"
        ]
      },
      "WebhookDeliveryList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookDelivery"
            }
          },
          "next_cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateTenantRequest": {
        "type": "object",
        "properties": {
          "external_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "external_id",
          "name"
        ],
        "additionalProperties": false
      },
      "UpdateTenantRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpsertTenantUserRequest": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "PatchTenantUserRequest": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MintClientTokenRequest": {
        "type": "object",
        "properties": {
          "tenant_id": {
            "type": "string"
          },
          "external_user_id": {
            "type": "string"
          },
          "installation_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expires_in": {
            "type": "integer",
            "minimum": 1,
            "maximum": 900
          },
          "session_id": {
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "external_user_id"
        ],
        "additionalProperties": false
      },
      "CreateProviderConnectionRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "api_format": {
            "type": "string"
          },
          "base_url": {
            "type": "string",
            "format": "uri"
          },
          "api_key": {
            "type": "string",
            "format": "password",
            "writeOnly": true
          }
        },
        "required": [
          "name",
          "provider"
        ],
        "additionalProperties": false
      },
      "UpdateProviderConnectionRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "api_key": {
            "type": "string",
            "format": "password",
            "writeOnly": true
          },
          "status": {
            "type": "string"
          },
          "base_url": {
            "type": "string",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "ValidateProviderConnectionRequest": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string"
          },
          "base_url": {
            "type": "string",
            "format": "uri"
          },
          "api_key": {
            "type": "string",
            "format": "password",
            "writeOnly": true
          },
          "api_format": {
            "type": "string"
          }
        },
        "required": [
          "provider"
        ],
        "additionalProperties": false
      },
      "CreateAgentRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "config": {
            "$ref": "#/components/schemas/AgentConfig"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "UpdateAgentRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "shadow_mode": {
            "type": "boolean"
          },
          "config": {
            "$ref": "#/components/schemas/AgentConfig"
          }
        },
        "additionalProperties": false
      },
      "CreateAgentKeyRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "environment": {
            "type": "string",
            "enum": [
              "production",
              "test"
            ]
          },
          "key_type": {
            "type": "string",
            "enum": [
              "secret",
              "publishable"
            ]
          },
          "allowed_domains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateAgentVersionRequest": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "requirements": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "visibility": {
            "type": "string"
          }
        },
        "required": [
          "version"
        ],
        "additionalProperties": false
      },
      "ReviewAgentVersionRequest": {
        "type": "object",
        "properties": {
          "decision": {
            "type": "string",
            "enum": [
              "approve",
              "reject"
            ]
          },
          "reviewed_by": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          }
        },
        "required": [
          "decision"
        ],
        "additionalProperties": false
      },
      "TestAgentVersionRequest": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "maxLength": 2000
          },
          "test_connection_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateInstallationRequest": {
        "type": "object",
        "properties": {
          "tenant_id": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "update_channel": {
            "type": "string"
          },
          "knowledge_base_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "approval_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "tenant_id",
          "agent_id"
        ],
        "additionalProperties": false
      },
      "UpdateInstallationRequest": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "update_channel": {
            "type": "string"
          },
          "knowledge_base_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "connection_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "approval_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "overlay_config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpgradeInstallationRequest": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateRunRequest": {
        "type": "object",
        "properties": {
          "installation_id": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "external_user_id": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "background",
              "sync",
              "streaming"
            ]
          },
          "input": {
            "description": "Any JSON value, at most 64 KiB when serialized as UTF-8."
          },
          "response_format": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "json_schema"
                ]
              },
              "json_schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "strict": {
                    "type": "boolean"
                  },
                  "schema": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  }
                },
                "required": [
                  "schema"
                ]
              }
            },
            "required": [
              "type",
              "json_schema"
            ]
          },
          "session_id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DelegateRunRequest": {
        "type": "object",
        "properties": {
          "agent_version_id": {
            "type": "string"
          },
          "input": {},
          "installation_id": {
            "type": "string"
          }
        },
        "required": [
          "agent_version_id"
        ],
        "additionalProperties": false
      },
      "CreateActionRequest": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "run_id": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "approval_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "tool"
        ],
        "additionalProperties": false
      },
      "ApproveActionRequest": {
        "type": "object",
        "properties": {
          "approved_by": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RejectActionRequest": {
        "type": "object",
        "properties": {
          "rejected_by": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateKnowledgeBaseRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "scope_type": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "UpdateKnowledgeBaseRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "retention_policy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "CreateKnowledgeSourceRequest": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "file_url": {
            "type": "string",
            "format": "uri"
          },
          "source_type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SyncKnowledgeSourceRequest": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "CreateKnowledgeGrantRequest": {
        "type": "object",
        "properties": {
          "subject_type": {
            "type": "string"
          },
          "subject_id": {
            "type": "string"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "subject_type",
          "subject_id"
        ],
        "additionalProperties": false
      },
      "SearchKnowledgeRequest": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "top_k": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "installation_id": {
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "CreateSkillRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "UpdateSkillRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateSkillVersionRequest": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                },
                "content": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "version"
        ],
        "additionalProperties": false
      },
      "PublishSkillVersionRequest": {
        "type": "object",
        "properties": {
          "reviewed_by": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateSkillImportRequest": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "repository": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string"
                },
                "content": {
                  "type": "string"
                }
              }
            }
          },
          "tenant_id": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "minProperties": 1
      },
      "PublishSkillImportRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "skill_id": {
            "type": "string"
          },
          "visibility": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "reviewed_by": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateConnectionRequest": {
        "type": "object",
        "properties": {
          "connector": {
            "type": "string"
          },
          "owner_type": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "external_user_id": {
            "type": "string"
          },
          "api_key": {
            "type": "string",
            "format": "password",
            "writeOnly": true
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "connector"
        ],
        "additionalProperties": false
      },
      "UpdateConnectionRequest": {
        "type": "object",
        "properties": {
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "AuthorizeConnectionRequest": {
        "type": "object",
        "properties": {
          "redirect_uri": {
            "type": "string",
            "format": "uri"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateMcpServerRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "transport": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "auth_connection_id": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "url"
        ],
        "additionalProperties": false
      },
      "UpdateMcpServerRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "status": {
            "type": "string"
          },
          "auth_connection_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpsertEndUserRequest": {
        "type": "object",
        "properties": {
          "external_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "rate_plan_id": {
            "type": "string",
            "nullable": true
          },
          "is_blocked": {
            "type": "boolean"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "external_id"
        ],
        "additionalProperties": false
      },
      "CreateRatePlanRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "markup_percentage": {
            "type": "number"
          },
          "flat_rate": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "CreateSessionRequest": {
        "type": "object",
        "properties": {
          "agent_id": {
            "type": "string"
          },
          "tenant_id": {
            "type": "string"
          },
          "external_user_id": {
            "type": "string"
          },
          "installation_id": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "SessionTurnRequest": {
        "type": "object",
        "properties": {
          "input": {},
          "tools": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          },
          "instructions": {
            "type": "string"
          },
          "agent_id": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "temperature": {
            "type": "number"
          },
          "max_output_tokens": {
            "type": "integer"
          },
          "top_p": {
            "type": "number"
          },
          "tool_choice": {},
          "response_format": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "store": {
            "type": "boolean"
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "user": {
            "type": "string"
          },
          "stream": {
            "type": "boolean"
          },
          "parallel_tool_calls": {
            "type": "boolean"
          },
          "truncation": {
            "type": "string",
            "enum": [
              "auto",
              "disabled"
            ]
          },
          "pause_on_tool_calls": {
            "type": "boolean"
          },
          "memory": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "required": [
          "input"
        ],
        "additionalProperties": false
      },
      "SessionResolutionRequest": {
        "type": "object",
        "properties": {
          "action_id": {
            "type": "string"
          },
          "tool_results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "action_id": {
                  "type": "string"
                },
                "output": {
                  "type": "string"
                }
              },
              "required": [
                "action_id",
                "output"
              ]
            }
          }
        },
        "required": [
          "action_id"
        ],
        "additionalProperties": false
      },
      "CreateWebhookRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "url"
        ],
        "additionalProperties": false
      },
      "UpdateWebhookRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "is_active": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "parameters": {
      "IdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": false,
        "description": "Caller-generated key used to safely retry this write within the authenticated project.",
        "schema": {
          "type": "string",
          "maxLength": 255
        }
      },
      "AgentId": {
        "name": "agentId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "Version": {
        "name": "version",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "VersionId": {
        "name": "versionId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "InstallationId": {
        "name": "installationId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "RunId": {
        "name": "runId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ActionId": {
        "name": "actionId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ConnectionId": {
        "name": "connectionId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ConnectorId": {
        "name": "connectorId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "KnowledgeBaseId": {
        "name": "knowledgeBaseId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SourceId": {
        "name": "sourceId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "GrantId": {
        "name": "grantId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ServerId": {
        "name": "serverId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SyncId": {
        "name": "syncId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SessionId": {
        "name": "sessionId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SkillId": {
        "name": "skillId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ImportId": {
        "name": "importId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "TenantId": {
        "name": "tenantId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ExternalUserId": {
        "name": "externalUserId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "DeliveryId": {
        "name": "deliveryId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "WebhookId": {
        "name": "webhookId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "responses": {
      "Error": {
        "description": "The request failed. Inspect error.code for a stable machine-readable reason.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/v1/actions": {
      "post": {
        "summary": "Create approval-gated action",
        "responses": {
          "201": {
            "description": "Action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Action"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postActions",
        "tags": [
          "Actions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateActionRequest"
              }
            }
          }
        }
      }
    },
    "/v1/actions/{actionId}": {
      "get": {
        "summary": "Get action (sanitized)",
        "responses": {
          "200": {
            "description": "Action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Action"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getActionsByActionId",
        "tags": [
          "Actions"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ActionId"
        }
      ]
    },
    "/v1/actions/{actionId}/approve": {
      "post": {
        "summary": "Approve (idempotent, executes once)",
        "responses": {
          "200": {
            "description": "Approved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Action"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postActionsByActionIdApprove",
        "tags": [
          "Actions"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveActionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ActionId"
        }
      ]
    },
    "/v1/actions/{actionId}/reject": {
      "post": {
        "summary": "Reject (idempotent)",
        "responses": {
          "200": {
            "description": "Rejected",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Action"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postActionsByActionIdReject",
        "tags": [
          "Actions"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectActionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ActionId"
        }
      ]
    },
    "/v1/agent-catalog": {
      "get": {
        "summary": "Published catalog (default public + unlisted)",
        "responses": {
          "200": {
            "description": "Catalog",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersionList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getAgentCatalog",
        "tags": [
          "Agents"
        ],
        "parameters": [
          {
            "name": "visibility",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/agent-installations": {
      "get": {
        "summary": "List installations",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstallationList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getAgentInstallations",
        "tags": [
          "Installations"
        ],
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Install agent for tenant",
        "responses": {
          "201": {
            "description": "Installation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Installation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentInstallations",
        "tags": [
          "Installations"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInstallationRequest"
              }
            }
          }
        }
      }
    },
    "/v1/agent-installations/{installationId}": {
      "get": {
        "summary": "Get installation",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Installation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getAgentInstallationsByInstallationId",
        "tags": [
          "Installations"
        ]
      },
      "patch": {
        "summary": "Update installation overlays/policy",
        "description": "Scalar fields patch in place. version pins a published version. knowledge_base_ids and connection_ids replace the grant sets atomically when present (empty clears); absent leaves them unchanged. Every granted ID is validated for existence, project scope, and tenant compatibility before mutation.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Installation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchAgentInstallationsByInstallationId",
        "tags": [
          "Installations"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInstallationRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Disable installation",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteAgentInstallationsByInstallationId",
        "tags": [
          "Installations"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/InstallationId"
        }
      ]
    },
    "/v1/agent-installations/{installationId}/rollback": {
      "post": {
        "summary": "Roll back installation version",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Installation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postAgentInstallationsByInstallationIdRollback",
        "tags": [
          "Installations"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/InstallationId"
        }
      ]
    },
    "/v1/agent-installations/{installationId}/upgrade": {
      "post": {
        "summary": "Upgrade installation version",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Installation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postAgentInstallationsByInstallationIdUpgrade",
        "tags": [
          "Installations"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpgradeInstallationRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/InstallationId"
        }
      ]
    },
    "/v1/marketplace/agents": {
      "get": {
        "summary": "Discover public agents (anonymous)",
        "description": "Cross-project discovery. Only published versions marked public; unlisted versions are addressable by id but never listed. No authentication.",
        "responses": {
          "200": {
            "description": "Marketplace listing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketplaceAgentList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getMarketplaceAgents",
        "tags": [
          "Marketplace"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque keyset cursor over (created_at, id).",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/marketplace/agents/{versionId}": {
      "get": {
        "summary": "Public agent version detail (anonymous)",
        "description": "Public versions plus unlisted versions by id. Private and tenant versions return 404. No authentication.",
        "responses": {
          "200": {
            "description": "Marketplace agent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketplaceAgent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getMarketplaceAgentsByVersionId",
        "tags": [
          "Marketplace"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/VersionId"
        }
      ]
    },
    "/v1/marketplace/installations": {
      "post": {
        "summary": "Install a public agent by fork",
        "description": "Forks the public version into the caller's project (private copy, pinned installation) and bills spend there. Later publisher edits never move the fork. Requires a secret project key.",
        "responses": {
          "201": {
            "description": "Installation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Installation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postMarketplaceInstallations",
        "tags": [
          "Marketplace"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "version_id": {
                    "type": "string"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "knowledge_base_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "connection_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "approval_policy": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  },
                  "budget": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  },
                  "overlay_config": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  }
                },
                "required": [
                  "version_id",
                  "tenant_id"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/agents": {
      "get": {
        "summary": "List gateway agents",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Secret project key or dashboard session (project members).",
        "operationId": "getAgents",
        "tags": [
          "Agents"
        ]
      },
      "post": {
        "summary": "Create gateway agent",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Secret project key or dashboard session (project members).",
        "operationId": "postAgents",
        "tags": [
          "Agents"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgentRequest"
              }
            }
          }
        }
      }
    },
    "/v1/agents/{agentId}": {
      "get": {
        "summary": "Get agent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Secret project key or dashboard session (project members).",
        "operationId": "getAgentsByAgentId",
        "tags": [
          "Agents"
        ]
      },
      "patch": {
        "summary": "Update agent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Secret project key or dashboard session (project members).",
        "operationId": "patchAgentsByAgentId",
        "tags": [
          "Agents"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAgentRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete agent",
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Secret project key or dashboard session (project members).",
        "operationId": "deleteAgentsByAgentId",
        "tags": [
          "Agents"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        }
      ]
    },
    "/v1/agents/{agentId}/keys": {
      "post": {
        "summary": "Mint an agent-scoped key (dashboard owners only)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentKey"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postAgentsByAgentIdKeys",
        "tags": [
          "Agents"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgentKeyRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        }
      ]
    },
    "/v1/agents/{agentId}/runs": {
      "get": {
        "summary": "List agent run history",
        "description": "Paginated run history for one agent: queued, running, cancelled, failed, and completed runs. Usage rows cannot substitute for this collection.",        "description": "Paginated run history for one agent: queued, running, cancelled, failed, and completed runs. Usage rows cannot substitute for this collection.",
        "responses": {
          "200": {
            "description": "Run history",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Run"
                      }
                    },
                    "next_cursor": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "data",
                    "next_cursor"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getAgentsByAgentIdRuns",
        "tags": [
          "Agents"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/AgentId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque keyset cursor over (created_at, id).",
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create background run (idempotent)",
        "description": "Modes: sync waits and returns the finished run (201); background enqueues and returns immediately (202); streaming executes inline while emitting server-sent events (200 text/event-stream: run.queued, run.started, text.delta, tool_call.completed, run.completed or run.failed, then [DONE]). Billing, metering, and the terminal row are identical across modes. Long streams are bounded by serverless execution time — on disconnect the run keeps going and stays pollable.",
        "responses": {
          "200": {
            "description": "Run event stream (mode streaming)",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "202": {
            "description": "Run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Run"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentsByAgentIdRuns",
        "tags": [
          "Agents"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRunRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        }
      ]
    },
    "/v1/agents/{agentId}/versions": {
      "get": {
        "summary": "List agent versions",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersionList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getAgentsByAgentIdVersions",
        "tags": [
          "Agent versions"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create agent version draft",
        "responses": {
          "201": {
            "description": "Version",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentsByAgentIdVersions",
        "tags": [
          "Agent versions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgentVersionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}": {
      "get": {
        "summary": "Get agent version",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getAgentsByAgentIdVersionsByVersion",
        "tags": [
          "Agent versions"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/deprecate": {
      "post": {
        "summary": "Deprecate version",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postAgentsByAgentIdVersionsByVersionDeprecate",
        "tags": [
          "Agent versions"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/publish": {
      "post": {
        "summary": "Publish (self-serve fast path)",
        "responses": {
          "200": {
            "description": "Published",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentsByAgentIdVersionsByVersionPublish",
        "tags": [
          "Agent versions"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/retire": {
      "post": {
        "summary": "Retire version",
        "responses": {
          "200": {
            "description": "Retired",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentsByAgentIdVersionsByVersionRetire",
        "tags": [
          "Agent versions"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/review": {
      "post": {
        "summary": "Review (approve → published, reject → draft)",
        "responses": {
          "200": {
            "description": "Reviewed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentsByAgentIdVersionsByVersionReview",
        "tags": [
          "Agent versions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewAgentVersionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/submit": {
      "post": {
        "summary": "Submit for review",
        "responses": {
          "200": {
            "description": "In review",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postAgentsByAgentIdVersionsByVersionSubmit",
        "tags": [
          "Agent versions"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/test": {
      "post": {
        "summary": "Sandboxed model test and capability readiness check (capped tokens)",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestAgentVersionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersionTest"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "description": "Manifest or declared capability prerequisites are unavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise). Stores pass/fail evidence on the draft version. Only the model is executed; skills, connectors, and MCP references are checked for readiness without invoking external tools.",
        "operationId": "postAgentsByAgentIdVersionsByVersionTest",
        "tags": [
          "Agent versions"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/agents/{agentId}/versions/{version}/validate": {
      "post": {
        "summary": "Validate draft (no side effects)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentVersionValidation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postAgentsByAgentIdVersionsByVersionValidate",
        "tags": [
          "Agent versions"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/AgentId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/client-tokens": {
      "post": {
        "summary": "Mint browser-safe token (secret-key only, 15-min max)",
        "responses": {
          "201": {
            "description": "Token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientToken"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postClientTokens",
        "tags": [
          "Tenants"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MintClientTokenRequest"
              }
            }
          }
        }
      }
    },
    "/v1/connections": {
      "get": {
        "summary": "List tool connections (no secrets)",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getConnections",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create tool connection (secret-key only)",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postConnections",
        "tags": [
          "Connections"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConnectionRequest"
              }
            }
          }
        }
      }
    },
    "/v1/connections/oauth/callback": {
      "get": {
        "summary": "OAuth redirect (state-signed, public, no key)",
        "responses": {
          "200": {
            "description": "Connected",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getConnectionsOauthCallback",
        "tags": [
          "Connections"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "error",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": []
      }
    },
    "/v1/connections/{connectionId}": {
      "get": {
        "summary": "Get tool connection (no secrets)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getConnectionsByConnectionId",
        "tags": [
          "Connections"
        ]
      },
      "patch": {
        "summary": "Update tool connection",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchConnectionsByConnectionId",
        "tags": [
          "Connections"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateConnectionRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Revoke tool connection",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteConnectionsByConnectionId",
        "tags": [
          "Connections"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/connections/{connectionId}/authorize": {
      "post": {
        "summary": "Start OAuth consent (returns authorize_url)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAuthorization"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postConnectionsByConnectionIdAuthorize",
        "tags": [
          "Connections"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeConnectionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/connections/{connectionId}/refresh": {
      "post": {
        "summary": "Rotate access token",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postConnectionsByConnectionIdRefresh",
        "tags": [
          "Connections"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/connections/{connectionId}/test": {
      "post": {
        "summary": "Connection health check",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionTest"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postConnectionsByConnectionIdTest",
        "tags": [
          "Connections"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/connectors": {
      "get": {
        "summary": "Connector catalog",
        "responses": {
          "200": {
            "description": "Catalog",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getConnectors",
        "tags": [
          "Connections"
        ]
      }
    },
    "/v1/connectors/{connectorId}": {
      "get": {
        "summary": "Get connector type",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connector"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getConnectorsByConnectorId",
        "tags": [
          "Connections"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectorId"
        }
      ]
    },
    "/v1/end-users": {
      "get": {
        "summary": "List end users (secret-key)",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EndUserList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getEndUsers",
        "tags": [
          "Billing"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Upsert end user (secret-key)",
        "responses": {
          "201": {
            "description": "User",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EndUser"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postEndUsers",
        "tags": [
          "Billing"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertEndUserRequest"
              }
            }
          }
        }
      }
    },
    "/v1/knowledge-bases": {
      "get": {
        "summary": "List knowledge bases",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeBaseList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getKnowledgeBases",
        "tags": [
          "Knowledge"
        ],
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create knowledge base",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeBase"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postKnowledgeBases",
        "tags": [
          "Knowledge"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKnowledgeBaseRequest"
              }
            }
          }
        }
      }
    },
    "/v1/knowledge-bases/{knowledgeBaseId}": {
      "get": {
        "summary": "Get knowledge base",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeBase"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getKnowledgeBasesByKnowledgeBaseId",
        "tags": [
          "Knowledge"
        ]
      },
      "patch": {
        "summary": "Update knowledge base",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeBase"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchKnowledgeBasesByKnowledgeBaseId",
        "tags": [
          "Knowledge"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKnowledgeBaseRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete knowledge base + chunks",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteKnowledgeBasesByKnowledgeBaseId",
        "tags": [
          "Knowledge"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        }
      ]
    },
    "/v1/knowledge-bases/{knowledgeBaseId}/grants": {
      "post": {
        "summary": "Grant knowledge base",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeGrant"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postKnowledgeBasesByKnowledgeBaseIdGrants",
        "tags": [
          "Knowledge"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKnowledgeGrantRequest"
              }
            }
          }
        }
      },
      "get": {
        "summary": "List grants",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeGrantList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getKnowledgeBasesByKnowledgeBaseIdGrants",
        "tags": [
          "Knowledge"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        }
      ]
    },
    "/v1/knowledge-bases/{knowledgeBaseId}/grants/{grantId}": {
      "delete": {
        "summary": "Revoke grant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteKnowledgeBasesByKnowledgeBaseIdGrantsByGrantId",
        "tags": [
          "Knowledge"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        },
        {
          "$ref": "#/components/parameters/GrantId"
        }
      ]
    },
    "/v1/knowledge-bases/{knowledgeBaseId}/search": {
      "post": {
        "summary": "Grant-filtered search with citations",
        "responses": {
          "200": {
            "description": "Hits",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeSearchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postKnowledgeBasesByKnowledgeBaseIdSearch",
        "tags": [
          "Knowledge"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchKnowledgeRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        }
      ]
    },
    "/v1/knowledge-bases/{knowledgeBaseId}/sources": {
      "post": {
        "summary": "Ingest inline text or file",
        "responses": {
          "201": {
            "description": "Source",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeSource"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postKnowledgeBasesByKnowledgeBaseIdSources",
        "tags": [
          "Knowledge"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKnowledgeSourceRequest"
              }
            }
          }
        }
      },
      "get": {
        "summary": "List sources",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeSourceList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getKnowledgeBasesByKnowledgeBaseIdSources",
        "tags": [
          "Knowledge"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        }
      ]
    },
    "/v1/knowledge-bases/{knowledgeBaseId}/sources/{sourceId}": {
      "get": {
        "summary": "Get source",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeSource"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getKnowledgeBasesByKnowledgeBaseIdSourcesBySourceId",
        "tags": [
          "Knowledge"
        ]
      },
      "delete": {
        "summary": "Delete source + chunks",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteKnowledgeBasesByKnowledgeBaseIdSourcesBySourceId",
        "tags": [
          "Knowledge"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        },
        {
          "$ref": "#/components/parameters/SourceId"
        }
      ]
    },
    "/v1/knowledge-bases/{knowledgeBaseId}/sources/{sourceId}/sync": {
      "post": {
        "summary": "Re-ingest source (checksum-idempotent)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KnowledgeSource"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postKnowledgeBasesByKnowledgeBaseIdSourcesBySourceIdSync",
        "tags": [
          "Knowledge"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncKnowledgeSourceRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/KnowledgeBaseId"
        },
        {
          "$ref": "#/components/parameters/SourceId"
        }
      ]
    },
    "/v1/mcp/servers": {
      "post": {
        "summary": "Register remote MCP server + discover",
        "responses": {
          "201": {
            "description": "Server",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpDiscoveryResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postMcpServers",
        "tags": [
          "MCP"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMcpServerRequest"
              }
            }
          }
        }
      },
      "get": {
        "summary": "List registered MCP servers",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpServerList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getMcpServers",
        "tags": [
          "MCP"
        ],
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/mcp/servers/{serverId}": {
      "get": {
        "summary": "Get MCP server",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpServer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getMcpServersByServerId",
        "tags": [
          "MCP"
        ]
      },
      "patch": {
        "summary": "Update MCP server (URL re-validated)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpServer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchMcpServersByServerId",
        "tags": [
          "MCP"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMcpServerRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Disable MCP server",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpServer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteMcpServersByServerId",
        "tags": [
          "MCP"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ServerId"
        }
      ]
    },
    "/v1/mcp/servers/{serverId}/refresh-tools": {
      "post": {
        "summary": "Re-discover MCP tools (diff)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpDiscoveryResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postMcpServersByServerIdRefreshTools",
        "tags": [
          "MCP"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ServerId"
        }
      ]
    },
    "/v1/mcp/servers/{serverId}/test": {
      "post": {
        "summary": "Live handshake probe (not persisted)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpTest"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postMcpServersByServerIdTest",
        "tags": [
          "MCP"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ServerId"
        }
      ]
    },
    "/v1/mcp/servers/{serverId}/tools": {
      "get": {
        "summary": "Stored tool snapshot",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/McpToolList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getMcpServersByServerIdTools",
        "tags": [
          "MCP"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ServerId"
        }
      ]
    },
    "/v1/models": {
      "get": {
        "summary": "Unified model registry (only discovery surface)",
        "description": "Pages rebuild the live catalog per request: concurrent catalog changes can shift entries between pages. Consume a single consistent view by paging quickly without interleaving writes, and treat partial:true as incomplete.",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "available",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque offset cursor into the filtered catalog.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Registry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getModels",
        "tags": [
          "Models"
        ]
      }
    },
    "/v1/provider-connections": {
      "get": {
        "summary": "List provider connections",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderConnectionList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getProviderConnections",
        "tags": [
          "Providers"
        ]
      },
      "post": {
        "summary": "Create provider connection (secret-key only)",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderConnection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postProviderConnections",
        "tags": [
          "Providers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProviderConnectionRequest"
              }
            }
          }
        }
      }
    },
    "/v1/provider-connections/validate": {
      "post": {
        "summary": "Ephemeral provider validation",
        "responses": {
          "200": {
            "description": "Valid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderValidation"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postProviderConnectionsValidate",
        "tags": [
          "Providers"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateProviderConnectionRequest"
              }
            }
          }
        }
      }
    },
    "/v1/provider-connections/{connectionId}": {
      "get": {
        "summary": "Get provider connection",
        "responses": {
          "200": {
            "description": "Connection",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderConnection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getProviderConnectionsByConnectionId",
        "tags": [
          "Providers"
        ]
      },
      "patch": {
        "summary": "Update provider connection",
        "responses": {
          "200": {
            "description": "Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderConnection"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "patchProviderConnectionsByConnectionId",
        "tags": [
          "Providers"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProviderConnectionRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete provider connection",
        "responses": {
          "200": {
            "description": "Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "deleteProviderConnectionsByConnectionId",
        "tags": [
          "Providers"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/provider-connections/{connectionId}/model-syncs": {
      "post": {
        "summary": "Preview model sync",
        "responses": {
          "201": {
            "description": "Preview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelSync"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postProviderConnectionsByConnectionIdModelSyncs",
        "tags": [
          "Providers"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/provider-connections/{connectionId}/model-syncs/{syncId}": {
      "get": {
        "summary": "Get model sync preview",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelSync"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getProviderConnectionsByConnectionIdModelSyncsBySyncId",
        "tags": [
          "Providers"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        },
        {
          "$ref": "#/components/parameters/SyncId"
        }
      ]
    },
    "/v1/provider-connections/{connectionId}/model-syncs/{syncId}/apply": {
      "post": {
        "summary": "Apply model sync (idempotent)",
        "responses": {
          "200": {
            "description": "Applied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelSync"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postProviderConnectionsByConnectionIdModelSyncsBySyncIdApply",
        "tags": [
          "Providers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        },
        {
          "$ref": "#/components/parameters/SyncId"
        }
      ]
    },
    "/v1/provider-connections/{connectionId}/test": {
      "post": {
        "summary": "Test saved connection",
        "responses": {
          "200": {
            "description": "Result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderTest"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postProviderConnectionsByConnectionIdTest",
        "tags": [
          "Providers"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ConnectionId"
        }
      ]
    },
    "/v1/rate-plans": {
      "get": {
        "summary": "List rate plans (secret-key)",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatePlanList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getRatePlans",
        "tags": [
          "Billing"
        ]
      },
      "post": {
        "summary": "Create rate plan (secret-key)",
        "responses": {
          "201": {
            "description": "Plan",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RatePlan"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postRatePlans",
        "tags": [
          "Billing"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRatePlanRequest"
              }
            }
          }
        }
      }
    },
    "/v1/runs/{runId}": {
      "get": {
        "summary": "Get run",
        "responses": {
          "200": {
            "description": "Run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Run"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getRunsByRunId",
        "tags": [
          "Runs"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/RunId"
        }
      ]
    },
    "/v1/runs/{runId}/cancel": {
      "post": {
        "summary": "Cancel run",
        "responses": {
          "200": {
            "description": "Cancelled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Run"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postRunsByRunIdCancel",
        "tags": [
          "Runs"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/RunId"
        }
      ]
    },
    "/v1/runs/{runId}/delegate": {
      "post": {
        "summary": "Delegate a bounded task to an allowed subagent",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DelegateRunRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Child run claimed or idempotent prior result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Run"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postRunsByRunIdDelegate",
        "tags": [
          "Runs"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/RunId"
        }
      ]
    },
    "/v1/runs/{runId}/events": {
      "get": {
        "summary": "Run event log",
        "responses": {
          "200": {
            "description": "Events",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunEventList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getRunsByRunIdEvents",
        "tags": [
          "Runs"
        ],
        "parameters": [
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/RunId"
        }
      ]
    },
    "/v1/sessions": {
      "get": {
        "summary": "List sessions (tenant+user scoped for ect_)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getSessions",
        "tags": [
          "Sessions"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create scoped session (csk_* or ect_)",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postSessions",
        "tags": [
          "Sessions"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSessionRequest"
              }
            }
          }
        }
      }
    },
    "/v1/sessions/{sessionId}": {
      "get": {
        "summary": "Get session (scope-checked)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getSessionsBySessionId",
        "tags": [
          "Sessions"
        ]
      },
      "delete": {
        "summary": "Delete session",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "deleteSessionsBySessionId",
        "tags": [
          "Sessions"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SessionId"
        }
      ]
    },
    "/v1/sessions/{sessionId}/approve": {
      "post": {
        "summary": "Approve paused tool call (secret-key)",
        "responses": {
          "200": {
            "description": "SSE stream",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postSessionsBySessionIdApprove",
        "tags": [
          "Sessions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionResolutionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SessionId"
        }
      ]
    },
    "/v1/sessions/{sessionId}/events": {
      "get": {
        "summary": "Session event replay (secret-key)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionEventList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getSessionsBySessionIdEvents",
        "tags": [
          "Sessions"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "turn_number",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SessionId"
        }
      ]
    },
    "/v1/sessions/{sessionId}/reject": {
      "post": {
        "summary": "Reject paused tool call (secret-key)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResolution"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postSessionsBySessionIdReject",
        "tags": [
          "Sessions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionResolutionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SessionId"
        }
      ]
    },
    "/v1/sessions/{sessionId}/turns": {
      "post": {
        "summary": "Submit turn (csk_* or ect_ with sessions:turn)",
        "responses": {
          "200": {
            "description": "SSE stream",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postSessionsBySessionIdTurns",
        "tags": [
          "Sessions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionTurnRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SessionId"
        }
      ]
    },
    "/v1/skill-imports": {
      "post": {
        "summary": "Stage an import (one source, never auto-publishes)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillImport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postSkillImports",
        "tags": [
          "Skills"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSkillImportRequest"
              }
            }
          }
        }
      }
    },
    "/v1/skill-imports/{importId}": {
      "get": {
        "summary": "Get staged import with findings",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillImport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getSkillImportsByImportId",
        "tags": [
          "Skills"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ImportId"
        }
      ]
    },
    "/v1/skill-imports/{importId}/publish": {
      "post": {
        "summary": "Review-gate publish of a staged import",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillImport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postSkillImportsByImportIdPublish",
        "tags": [
          "Skills"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishSkillImportRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/ImportId"
        }
      ]
    },
    "/v1/skills": {
      "get": {
        "summary": "List skills",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getSkills",
        "tags": [
          "Skills"
        ],
        "parameters": [
          {
            "name": "visibility",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create skill identity",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Skill"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postSkills",
        "tags": [
          "Skills"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSkillRequest"
              }
            }
          }
        }
      }
    },
    "/v1/skills/{skillId}": {
      "get": {
        "summary": "Get skill",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Skill"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getSkillsBySkillId",
        "tags": [
          "Skills"
        ]
      },
      "patch": {
        "summary": "Update skill metadata",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Skill"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchSkillsBySkillId",
        "tags": [
          "Skills"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSkillRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SkillId"
        }
      ]
    },
    "/v1/skills/{skillId}/versions": {
      "get": {
        "summary": "List skill versions",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillVersionList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getSkillsBySkillIdVersions",
        "tags": [
          "Skills"
        ]
      },
      "post": {
        "summary": "Draft skill version (scanned)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postSkillsBySkillIdVersions",
        "tags": [
          "Skills"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSkillVersionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SkillId"
        }
      ]
    },
    "/v1/skills/{skillId}/versions/{version}": {
      "get": {
        "summary": "Get skill version with content",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getSkillsBySkillIdVersionsByVersion",
        "tags": [
          "Skills"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SkillId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/skills/{skillId}/versions/{version}/deprecate": {
      "post": {
        "summary": "Deprecate skill version",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postSkillsBySkillIdVersionsByVersionDeprecate",
        "tags": [
          "Skills"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SkillId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/skills/{skillId}/versions/{version}/publish": {
      "post": {
        "summary": "Publish skill version (blockers reject)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkillVersion"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postSkillsBySkillIdVersionsByVersionPublish",
        "tags": [
          "Skills"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishSkillVersionRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/SkillId"
        },
        {
          "$ref": "#/components/parameters/Version"
        }
      ]
    },
    "/v1/tenants": {
      "get": {
        "summary": "List tenants",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getTenants",
        "tags": [
          "Tenants"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Create/upsert tenant (idempotent by external_id)",
        "responses": {
          "201": {
            "description": "Tenant",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tenant"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postTenants",
        "tags": [
          "Tenants"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantRequest"
              }
            }
          }
        }
      }
    },
    "/v1/tenants/{tenantId}": {
      "get": {
        "summary": "Get tenant",
        "responses": {
          "200": {
            "description": "Tenant",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tenant"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getTenantsByTenantId",
        "tags": [
          "Tenants"
        ]
      },
      "patch": {
        "summary": "Update tenant",
        "responses": {
          "200": {
            "description": "Tenant",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tenant"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "patchTenantsByTenantId",
        "tags": [
          "Tenants"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Hard-delete tenant (cascades)",
        "responses": {
          "200": {
            "description": "Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "deleteTenantsByTenantId",
        "tags": [
          "Tenants"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/TenantId"
        }
      ]
    },
    "/v1/tenants/{tenantId}/export": {
      "post": {
        "summary": "Export tenant data (compliance)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantExport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "postTenantsByTenantIdExport",
        "tags": [
          "Tenants"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/TenantId"
        }
      ]
    },
    "/v1/tenants/{tenantId}/users": {
      "get": {
        "summary": "List tenant users",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantUserList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getTenantsByTenantIdUsers",
        "tags": [
          "Tenants"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/TenantId"
        }
      ]
    },
    "/v1/tenants/{tenantId}/users/{externalUserId}": {
      "put": {
        "summary": "Upsert user",
        "responses": {
          "201": {
            "description": "User",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantUser"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "putTenantsByTenantIdUsersByExternalUserId",
        "tags": [
          "Tenants"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertTenantUserRequest"
              }
            }
          }
        }
      },
      "get": {
        "summary": "Get user",
        "responses": {
          "200": {
            "description": "User",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantUser"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getTenantsByTenantIdUsersByExternalUserId",
        "tags": [
          "Tenants"
        ]
      },
      "delete": {
        "summary": "Delete user (?hard=true forgets)",
        "responses": {
          "200": {
            "description": "Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "deleteTenantsByTenantIdUsersByExternalUserId",
        "tags": [
          "Tenants"
        ],
        "parameters": [
          {
            "name": "hard",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ]
      },
      "patch": {
        "summary": "Update user",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantUser"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchTenantsByTenantIdUsersByExternalUserId",
        "tags": [
          "Tenants"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchTenantUserRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/TenantId"
        },
        {
          "$ref": "#/components/parameters/ExternalUserId"
        }
      ]
    },
    "/v1/usage": {
      "get": {
        "summary": "Usage summary by tenant/agent/installation",
        "description": "Scans at most 10,000 rows (see truncated/row_cap). Totals over a truncated scan are partial.",
        "responses": {
          "200": {
            "description": "Summary",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageSummary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getUsage",
        "tags": [
          "Usage"
        ],
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 90
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "Window start (ISO-8601). Defaults to until minus days.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "description": "Window end (ISO-8601). Defaults to now. Windows are capped at 90 days.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "installation_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/usage/events": {
      "get": {
        "summary": "Attributed request rows (cursor)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageEventList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getUsageEvents",
        "tags": [
          "Usage"
        ],
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 90
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "Window start (ISO-8601). Defaults to until minus days.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "description": "Window end (ISO-8601). Defaults to now. Windows are capped at 90 days.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "installation_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque keyset cursor over (created_at, id).",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/usage/export": {
      "get": {
        "summary": "Invoice export (csv|json)",
        "responses": {
          "200": {
            "description": "Export",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageExport"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getUsageExport",
        "tags": [
          "Usage"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "csv"
              ]
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 365
            }
          },
          {
            "name": "tenant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/webhook-deliveries": {
      "get": {
        "summary": "Delivery log",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "getWebhookDeliveries",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhook-deliveries/{deliveryId}/replay": {
      "post": {
        "summary": "Replay a delivery",
        "responses": {
          "200": {
            "description": "Replayed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDelivery"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postWebhookDeliveriesByDeliveryIdReplay",
        "tags": [
          "Webhooks"
        ],
        "x-cencori-empty-body": true
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/DeliveryId"
        }
      ]
    },
    "/v1/webhooks": {
      "get": {
        "summary": "List webhook subscriptions",
        "responses": {
          "200": {
            "description": "List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookList"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "getWebhooks",
        "tags": [
          "Webhooks"
        ]
      },
      "post": {
        "summary": "Create webhook subscription",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "operationId": "postWebhooks",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookRequest"
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}": {
      "patch": {
        "summary": "Update webhook subscription",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "patchWebhooksByWebhookId",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWebhookRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete webhook subscription",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletedResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "description": "Requires a secret project key (`secret_key_required` otherwise).",
        "operationId": "deleteWebhooksByWebhookId",
        "tags": [
          "Webhooks"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/WebhookId"
        }
      ]
    }
  },
  "externalDocs": {
    "description": "Embedded Agents documentation",
    "url": "https://holeacquisition.com/docs/embedded-agents/overview"
  },
  "tags": [
    {
      "name": "Actions",
      "description": "Approval-gated external side effects."
    },
    {
      "name": "Agents",
      "description": "Agent identities and the published catalog."
    },
    {
      "name": "Agent versions",
      "description": "Immutable manifests and their validate, test, review, and publish lifecycle."
    },
    {
      "name": "Installations",
      "description": "Tenant-scoped runtime bindings for published agents."
    },
    {
      "name": "Models",
      "description": "The unified Holeacquisition LLC and BYOK model registry."
    },
    {
      "name": "Providers",
      "description": "Project-owned model-provider connections and catalog synchronization."
    },
    {
      "name": "Tenants",
      "description": "Customer tenants, users, and short-lived browser tokens."
    },
    {
      "name": "Sessions",
      "description": "Durable, scoped interactive agent sessions."
    },
    {
      "name": "Runs",
      "description": "Observable background execution and bounded delegation."
    },
    {
      "name": "Knowledge",
      "description": "Tenant-aware knowledge bases, sources, grants, and retrieval."
    },
    {
      "name": "Skills",
      "description": "Versioned passive instruction packages and reviewed imports."
    },
    {
      "name": "Connections",
      "description": "OAuth and API-backed tool connections."
    },
    {
      "name": "MCP",
      "description": "Authenticated MCP servers and discovered tool snapshots."
    },
    {
      "name": "Webhooks",
      "description": "Signed subscriptions, delivery history, and replay."
    },
    {
      "name": "Usage",
      "description": "Attributed usage summaries, events, and invoice exports."
    },
    {
      "name": "Billing",
      "description": "End users and rate-plan administration."
    }
  ]
}
