{
  "openapi": "3.1.0",
  "paths": {
    "/v1/auth/context": {
      "get": {
        "operationId": "getAuthContext",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiAuthContextResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:read"
            ]
          },
          {
            "adamId": [
              "projects:write"
            ]
          },
          {
            "adamId": [
              "tasks:read"
            ]
          },
          {
            "adamId": [
              "tasks:write"
            ]
          },
          {
            "adamId": [
              "files:read"
            ]
          },
          {
            "adamId": [
              "files:write"
            ]
          },
          {
            "adamId": [
              "billing:read"
            ]
          },
          {
            "adamId": [
              "integrations:read"
            ]
          },
          {
            "adamId": [
              "automations:read"
            ]
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "Get authentication context",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/models": {
      "get": {
        "operationId": "listModels",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiModelsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:read"
            ]
          },
          {
            "adamId": [
              "projects:write"
            ]
          },
          {
            "adamId": [
              "tasks:read"
            ]
          },
          {
            "adamId": [
              "tasks:write"
            ]
          },
          {
            "adamId": [
              "files:read"
            ]
          },
          {
            "adamId": [
              "files:write"
            ]
          },
          {
            "adamId": [
              "billing:read"
            ]
          },
          {
            "adamId": [
              "integrations:read"
            ]
          },
          {
            "adamId": [
              "automations:read"
            ]
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "List available models",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/automations": {
      "get": {
        "operationId": "listAutomations",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiAutomationsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:read"
            ]
          }
        ],
        "summary": "List automations",
        "tags": [
          "Adam API"
        ]
      },
      "post": {
        "description": "Recurring schedules require cron; one-time schedules require runAt; webhook automations require triggerEvent.",
        "operationId": "createAutomation",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional unique key. When supplied, retries with the same key and body replay the original response for 24 hours.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePublicApiAutomationRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "Create an automation",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/automations/{automationId}": {
      "get": {
        "operationId": "getAutomation",
        "parameters": [
          {
            "name": "automationId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:read"
            ]
          }
        ],
        "summary": "Get an automation",
        "tags": [
          "Adam API"
        ]
      },
      "patch": {
        "operationId": "updateAutomation",
        "parameters": [
          {
            "name": "automationId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePublicApiAutomationRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "Update an automation",
        "tags": [
          "Adam API"
        ]
      },
      "delete": {
        "operationId": "deleteAutomation",
        "parameters": [
          {
            "name": "automationId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePublicApiResourceResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "Delete an automation",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/automations/{automationId}/pause": {
      "post": {
        "operationId": "pauseAutomation",
        "parameters": [
          {
            "name": "automationId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "Pause an automation",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/automations/{automationId}/resume": {
      "post": {
        "operationId": "resumeAutomation",
        "parameters": [
          {
            "name": "automationId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "automations:write"
            ]
          }
        ],
        "summary": "Resume an automation",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/billing/summary": {
      "get": {
        "operationId": "getBillingSummary",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiBillingSummaryResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "billing:read"
            ]
          }
        ],
        "summary": "Get billing and usage summary",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/integrations": {
      "get": {
        "operationId": "listIntegrations",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiIntegrationsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "integrations:read"
            ]
          }
        ],
        "summary": "List available and connected integrations",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/integrations/{integrationSlug}": {
      "get": {
        "operationId": "getIntegration",
        "parameters": [
          {
            "name": "integrationSlug",
            "required": true,
            "in": "path",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiIntegrationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "integrations:read"
            ]
          }
        ],
        "summary": "Get an integration",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/uploads": {
      "post": {
        "description": "Uploads bytes for a later task or message. The returned upload id is opaque, expires after 24 hours, and creates no durable file until referenced.",
        "operationId": "createUpload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "format": "binary",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePublicApiUploadResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "files:write"
            ]
          }
        ],
        "summary": "Upload a task attachment",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/projects": {
      "get": {
        "operationId": "listProjects",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "default": 50,
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Opaque cursor returned by the previous page",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiProjectsResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:read"
            ]
          }
        ],
        "summary": "List projects",
        "tags": [
          "Adam API"
        ]
      },
      "post": {
        "operationId": "createProject",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional unique key. When supplied, retries with the same key and body replay the original response for 24 hours.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePublicApiProjectRequestDto"
              },
              "examples": {
                "project": {
                  "summary": "A private project",
                  "value": {
                    "description": "Reduce mass while preserving the mounting envelope.",
                    "name": "Gearbox redesign",
                    "visibility": "private"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiProjectResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:write"
            ]
          }
        ],
        "summary": "Create a project",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/projects/{projectId}": {
      "get": {
        "operationId": "getProject",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiProjectResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:read"
            ]
          }
        ],
        "summary": "Get a project",
        "tags": [
          "Adam API"
        ]
      },
      "patch": {
        "operationId": "updateProject",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePublicApiProjectRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiProjectResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:write"
            ]
          }
        ],
        "summary": "Update a project",
        "tags": [
          "Adam API"
        ]
      },
      "delete": {
        "operationId": "deleteProject",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The project was deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePublicApiResourceResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:write"
            ]
          }
        ],
        "summary": "Delete a project",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/projects/{projectId}/files": {
      "get": {
        "operationId": "listProjectFiles",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "default": 50,
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Opaque cursor returned by the previous page",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiFilesResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:read",
              "files:read"
            ]
          }
        ],
        "summary": "List project files",
        "tags": [
          "Adam API"
        ]
      },
      "post": {
        "operationId": "uploadProjectFile",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "format": "binary",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiFileResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:write",
              "files:write"
            ]
          }
        ],
        "summary": "Upload a project file",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/projects/{projectId}/files/{fileId}": {
      "delete": {
        "operationId": "deleteProjectFile",
        "parameters": [
          {
            "name": "fileId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The project file was deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePublicApiResourceResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "projects:write",
              "files:write"
            ]
          }
        ],
        "summary": "Delete a project file",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/tasks": {
      "get": {
        "operationId": "listTasks",
        "parameters": [
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "queued",
                "running",
                "awaiting_input",
                "completed",
                "cancelled",
                "failed"
              ],
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Opaque cursor returned by the previous page",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiTasksResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:read"
            ]
          }
        ],
        "summary": "List tasks",
        "tags": [
          "Adam API"
        ]
      },
      "post": {
        "description": "Starts asynchronous work. Supplying attachments additionally requires files:write; each uploadId must come from POST /v1/uploads.",
        "operationId": "createTask",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required unique key. For 24 hours, retries with the same key and body replay the original response.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePublicApiTaskRequestDto"
              },
              "examples": {
                "task": {
                  "summary": "Start an engineering task",
                  "value": {
                    "model": {
                      "fast": false,
                      "slug": "pro",
                      "effort": "high"
                    },
                    "prompt": "Design a printable mounting bracket for a 40 mm stepper motor.",
                    "projectId": "PROJECT_ID"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiTaskResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Create and start a task",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/tasks/{taskId}": {
      "get": {
        "operationId": "getTask",
        "parameters": [
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiTaskResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:read"
            ]
          }
        ],
        "summary": "Get a task and its messages",
        "tags": [
          "Adam API"
        ]
      },
      "patch": {
        "operationId": "updateTask",
        "parameters": [
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePublicApiTaskRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiTaskResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Update a task",
        "tags": [
          "Adam API"
        ]
      },
      "delete": {
        "operationId": "deleteTask",
        "parameters": [
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The task was deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePublicApiResourceResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Delete a task",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/tasks/{taskId}/messages": {
      "get": {
        "description": "Returns messages in chronological order. Use nextCursor to continue from the last message in the page.",
        "operationId": "listTaskMessages",
        "parameters": [
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Opaque cursor returned by the previous page",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:read"
            ]
          }
        ],
        "summary": "List a task's messages",
        "tags": [
          "Adam API"
        ]
      },
      "post": {
        "description": "Continues asynchronous work. Supplying attachments additionally requires files:write; each uploadId must come from POST /v1/uploads.",
        "operationId": "sendTaskMessage",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required unique key. For 24 hours, retries with the same key and body replay the original response.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppendPublicApiTaskMessageRequestDto"
              },
              "examples": {
                "message": {
                  "summary": "Continue a task",
                  "value": {
                    "content": "Make the wall thickness 3 mm and add fillets.",
                    "model": {
                      "fast": false,
                      "slug": "pro",
                      "effort": "high"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppendPublicApiTaskMessageResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Send a message to a task",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/tasks/{taskId}/cancel": {
      "post": {
        "description": "Cancels queued, running, or awaiting-input work. Repeated requests are safe; completed and failed tasks remain unchanged.",
        "operationId": "cancelTask",
        "parameters": [
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The task's current state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiTaskResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Cancel a task",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/tasks/{taskId}/interactions/{interactionId}": {
      "post": {
        "operationId": "resolveTaskInteraction",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required unique key. For 24 hours, retries with the same key and body replay the original response.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "interactionId",
            "required": true,
            "in": "path",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolvePublicApiTaskInteractionRequestDto"
              },
              "examples": {
                "answer": {
                  "summary": "Answer a question or approval request",
                  "value": {
                    "response": "Approved. Use M5 fasteners."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolvePublicApiTaskInteractionResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:write"
            ]
          }
        ],
        "summary": "Answer a task interaction",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/tasks/{taskId}/files": {
      "get": {
        "operationId": "listTaskFiles",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "default": 50,
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Opaque cursor returned by the previous page",
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPublicApiFilesResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "tasks:read",
              "files:read"
            ]
          }
        ],
        "summary": "List task files",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/files/{fileId}": {
      "get": {
        "operationId": "getFile",
        "parameters": [
          {
            "name": "fileId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPublicApiFileResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "files:read"
            ]
          }
        ],
        "summary": "Get file metadata",
        "tags": [
          "Adam API"
        ]
      }
    },
    "/v1/files/{fileId}/content": {
      "get": {
        "operationId": "downloadFile",
        "parameters": [
          {
            "name": "fileId",
            "required": true,
            "in": "path",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirects to a short-lived download URL"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Bearer credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "402": {
            "description": "Payment or subscription required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "403": {
            "description": "Credential is missing a required scope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "409": {
            "description": "Request conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds until both the policy and global buckets can accept another request.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit": {
                "description": "Live state of the most-constrained quota policy (draft-ietf-httpapi-ratelimit-headers).",
                "schema": {
                  "type": "string"
                }
              },
              "RateLimit-Policy": {
                "description": "The quota policies applied to this request: capacity (q) and window seconds (w).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          },
          "500": {
            "description": "Internal API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicApiErrorDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "personalApiKey": []
          },
          {
            "adamId": [
              "files:read"
            ]
          }
        ],
        "summary": "Download a file",
        "tags": [
          "Adam API"
        ]
      }
    }
  },
  "info": {
    "title": "Adam API",
    "description": "Create projects, start and continue AI engineering tasks, and retrieve their files.\n\n## Authentication\n\nEvery endpoint accepts either a personal API key or an Adam ID OAuth 2.0 access token. OAuth clients must request the RFC 8707 resource indicator `https://api.adam.new/v1`; tokens for other Adam resources are rejected.\n\n## Versioning and deprecation\n\nThe API is versioned in the URL path (`/v1`). Backwards-compatible additions ship within `/v1`; breaking changes ship as a new major version (`/v2`) alongside the old one. When an endpoint or version is scheduled for removal, its responses carry `Deprecation` and `Sunset` headers at least 90 days before the retirement date, and the change is announced at https://adam.new/changelog.\n\n## Rate limits\n\nEvery response reports quota via the standard `RateLimit` and `RateLimit-Policy` headers (draft-ietf-httpapi-ratelimit-headers) and the `X-RateLimit-*` set. A `429` includes `Retry-After` in seconds: wait that long before retrying.\n\n## Errors\n\nAll 4xx/5xx responses use one JSON shape: `{ \"error\": { \"type\", \"message\", \"requestId\" } }`, where `type` is a stable machine-readable code (e.g. `invalid_request`, `rate_limit_error`) and `requestId` can be quoted to support.",
    "version": "1.0.0",
    "contact": {}
  },
  "tags": [],
  "servers": [
    {
      "url": "https://api.adam.new",
      "description": "Production"
    }
  ],
  "components": {
    "securitySchemes": {
      "personalApiKey": {
        "scheme": "bearer",
        "bearerFormat": "adam_pk_…",
        "description": "A personal API key created in Adam. Send it as `Authorization: Bearer <key>`.",
        "type": "http"
      },
      "adamId": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://api.adam.new/auth/oauth2/authorize",
            "refreshUrl": "https://api.adam.new/auth/oauth2/token",
            "scopes": {
              "offline_access": "Issue a refresh token so access can be renewed without a new sign-in.",
              "automations:read": "List and inspect automations in the selected workspace.",
              "automations:write": "Create, edit, pause, resume, and delete automations in the selected workspace.",
              "billing:read": "Read subscription, entitlement, and usage information for the selected workspace.",
              "files:read": "List files produced by projects and tasks.",
              "files:write": "Upload task attachments and project files.",
              "integrations:read": "List available and connected integrations in the selected workspace.",
              "projects:read": "List and read projects in the selected workspace.",
              "projects:write": "Create and update projects in the selected workspace.",
              "tasks:read": "List tasks, task status, and task messages.",
              "tasks:write": "Create, update, message, answer, and cancel tasks in the selected workspace."
            },
            "tokenUrl": "https://api.adam.new/auth/oauth2/token"
          }
        },
        "description": "Adam ID OAuth 2.0 authorization code flow with PKCE (S256). Send resource=https://api.adam.new/v1 on the authorization request and every token request, including refresh-token grants. Protected-resource metadata: https://api.adam.new/.well-known/oauth-protected-resource/v1."
      }
    },
    "schemas": {
      "GetPublicApiAuthContextResponseDto": {
        "type": "object",
        "properties": {
          "credentialType": {
            "type": "string",
            "enum": [
              "personal_api_key",
              "oauth_access_token"
            ]
          },
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name",
              "email"
            ]
          },
          "team": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "slug"
            ]
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "projects:read",
                "projects:write",
                "tasks:read",
                "tasks:write",
                "files:read",
                "files:write",
                "billing:read",
                "integrations:read",
                "automations:read",
                "automations:write"
              ]
            }
          }
        },
        "required": [
          "credentialType",
          "user",
          "team",
          "scopes"
        ]
      },
      "PublicApiErrorDto": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "requestId": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "message"
            ]
          }
        },
        "required": [
          "error"
        ]
      },
      "ListPublicApiModelsResponseDto": {
        "type": "object",
        "properties": {
          "models": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "fastAvailable": {
                  "type": "boolean"
                },
                "requiresPlan": {
                  "type": "boolean"
                }
              },
              "required": [
                "slug",
                "name",
                "description",
                "fastAvailable",
                "requiresPlan"
              ]
            }
          }
        },
        "required": [
          "models"
        ]
      },
      "ListPublicApiAutomationsResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListPublicApiAutomationsResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/ListPublicApiAutomationsResponseDto__schema0"
            }
          }
        ]
      },
      "ListPublicApiAutomationsResponseDto": {
        "type": "object",
        "properties": {
          "automations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "type": "string"
                },
                "prompt": {
                  "type": "string"
                },
                "effort": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high",
                        "xhigh"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "enabled": {
                  "type": "boolean"
                },
                "trigger": {
                  "type": "string",
                  "enum": [
                    "schedule",
                    "webhook"
                  ]
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "recurring",
                    "one_time"
                  ]
                },
                "cron": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "timezone": {
                  "type": "string"
                },
                "runAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "nextRunAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "triggerProvider": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "composio"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "triggerEvent": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "triggerApp": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "triggerConfig": {
                  "anyOf": [
                    {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "$ref": "#/components/schemas/ListPublicApiAutomationsResponseDto__schema0"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "taskId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "private",
                    "team"
                  ]
                },
                "lastRunAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lastStatus": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "running",
                        "completed",
                        "failed",
                        "skipped"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "runCount": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "id",
                "name",
                "prompt",
                "effort",
                "enabled",
                "trigger",
                "type",
                "cron",
                "timezone",
                "runAt",
                "nextRunAt",
                "triggerProvider",
                "triggerEvent",
                "triggerApp",
                "triggerConfig",
                "taskId",
                "visibility",
                "lastRunAt",
                "lastStatus",
                "runCount",
                "createdAt",
                "updatedAt"
              ]
            }
          }
        },
        "required": [
          "automations"
        ]
      },
      "CreatePublicApiAutomationRequestDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreatePublicApiAutomationRequestDto__schema0"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/CreatePublicApiAutomationRequestDto__schema0"
            }
          }
        ]
      },
      "CreatePublicApiAutomationRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20000
          },
          "effort": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high",
                  "xhigh"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "type": "boolean"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "team"
            ]
          },
          "trigger": {
            "type": "string",
            "enum": [
              "schedule",
              "webhook"
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "recurring",
              "one_time"
            ]
          },
          "cron": {
            "type": "string",
            "minLength": 1
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "runAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "triggerProvider": {
            "type": "string",
            "const": "composio"
          },
          "triggerEvent": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "triggerApp": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "triggerConfig": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/CreatePublicApiAutomationRequestDto__schema0"
            }
          }
        },
        "required": [
          "name",
          "prompt",
          "trigger",
          "type"
        ]
      },
      "GetPublicApiAutomationResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto__schema0"
            }
          }
        ]
      },
      "GetPublicApiAutomationResponseDto": {
        "type": "object",
        "properties": {
          "automation": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "type": "string"
              },
              "prompt": {
                "type": "string"
              },
              "effort": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "low",
                      "medium",
                      "high",
                      "xhigh"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "enabled": {
                "type": "boolean"
              },
              "trigger": {
                "type": "string",
                "enum": [
                  "schedule",
                  "webhook"
                ]
              },
              "type": {
                "type": "string",
                "enum": [
                  "recurring",
                  "one_time"
                ]
              },
              "cron": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "timezone": {
                "type": "string"
              },
              "runAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextRunAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "triggerProvider": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "composio"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "triggerEvent": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "triggerApp": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "triggerConfig": {
                "anyOf": [
                  {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "$ref": "#/components/schemas/GetPublicApiAutomationResponseDto__schema0"
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "taskId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "team"
                ]
              },
              "lastRunAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastStatus": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "running",
                      "completed",
                      "failed",
                      "skipped"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "runCount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "name",
              "prompt",
              "effort",
              "enabled",
              "trigger",
              "type",
              "cron",
              "timezone",
              "runAt",
              "nextRunAt",
              "triggerProvider",
              "triggerEvent",
              "triggerApp",
              "triggerConfig",
              "taskId",
              "visibility",
              "lastRunAt",
              "lastStatus",
              "runCount",
              "createdAt",
              "updatedAt"
            ]
          }
        },
        "required": [
          "automation"
        ]
      },
      "UpdatePublicApiAutomationRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20000
          },
          "effort": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high",
                  "xhigh"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "cron": {
            "type": "string",
            "minLength": 1
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "runAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "team"
            ]
          }
        }
      },
      "DeletePublicApiResourceResponseDto": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "deleted"
        ]
      },
      "GetPublicApiBillingSummaryResponseDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "trialing",
                  "past_due",
                  "canceled",
                  "incomplete",
                  "unpaid",
                  "none"
                ]
              },
              "isTrial": {
                "type": "boolean"
              },
              "interval": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "annual"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "priceCents": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "unlimited": {
                "type": "boolean"
              },
              "renewsAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "cancelAtPeriodEnd": {
                "type": "boolean"
              }
            },
            "required": [
              "name",
              "status",
              "isTrial",
              "interval",
              "priceCents",
              "unlimited",
              "renewsAt",
              "cancelAtPeriodEnd"
            ]
          },
          "usage": {
            "type": "object",
            "properties": {
              "included": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "period": {
                        "type": "string",
                        "enum": [
                          "daily",
                          "weekly"
                        ]
                      },
                      "remainingPercent": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "resetsAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "period",
                      "remainingPercent",
                      "resetsAt"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "ultra": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "period": {
                        "type": "string",
                        "enum": [
                          "daily",
                          "weekly"
                        ]
                      },
                      "remainingPercent": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 100
                      },
                      "resetsAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "period",
                      "remainingPercent",
                      "resetsAt"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "topUpFundsDollars": {
                "type": "number",
                "minimum": 0
              }
            },
            "required": [
              "included",
              "ultra",
              "topUpFundsDollars"
            ]
          }
        },
        "required": [
          "plan",
          "usage"
        ]
      },
      "ListPublicApiIntegrationsResponseDto": {
        "type": "object",
        "properties": {
          "integrations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "defaultScope": {
                  "type": "string",
                  "enum": [
                    "team",
                    "user"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "available",
                    "coming-soon",
                    "connected"
                  ]
                },
                "connection": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "scope": {
                          "type": "string",
                          "enum": [
                            "team",
                            "user"
                          ]
                        },
                        "connectedAt": {
                          "type": "string",
                          "format": "date-time",
                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                        }
                      },
                      "required": [
                        "scope",
                        "connectedAt"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "slug",
                "name",
                "description",
                "defaultScope",
                "status",
                "connection"
              ]
            }
          }
        },
        "required": [
          "integrations"
        ]
      },
      "GetPublicApiIntegrationResponseDto": {
        "type": "object",
        "properties": {
          "integration": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "defaultScope": {
                "type": "string",
                "enum": [
                  "team",
                  "user"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "coming-soon",
                  "connected"
                ]
              },
              "connection": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "scope": {
                        "type": "string",
                        "enum": [
                          "team",
                          "user"
                        ]
                      },
                      "connectedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "scope",
                      "connectedAt"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "slug",
              "name",
              "description",
              "defaultScope",
              "status",
              "connection"
            ]
          }
        },
        "required": [
          "integration"
        ]
      },
      "CreatePublicApiUploadResponseDto": {
        "type": "object",
        "properties": {
          "upload": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "mediaType": {
                "type": "string"
              },
              "size": {
                "type": "number"
              },
              "expiresAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name",
              "mediaType",
              "size",
              "expiresAt"
            ]
          }
        },
        "required": [
          "upload"
        ]
      },
      "ListPublicApiProjectsResponseDto": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "private",
                    "team"
                  ]
                },
                "memoryScope": {
                  "type": "string",
                  "enum": [
                    "project",
                    "workspace"
                  ]
                },
                "taskCount": {
                  "type": "number"
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "description",
                "visibility",
                "memoryScope",
                "taskCount",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "projects",
          "nextCursor"
        ]
      },
      "CreatePublicApiProjectRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "description": {
            "type": "string",
            "maxLength": 4000
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "team"
            ]
          },
          "memoryScope": {
            "type": "string",
            "enum": [
              "project",
              "workspace"
            ]
          }
        },
        "required": [
          "name"
        ]
      },
      "GetPublicApiProjectResponseDto": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "team"
                ]
              },
              "memoryScope": {
                "type": "string",
                "enum": [
                  "project",
                  "workspace"
                ]
              },
              "taskCount": {
                "type": "number"
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name",
              "description",
              "visibility",
              "memoryScope",
              "taskCount",
              "createdAt",
              "updatedAt"
            ]
          }
        },
        "required": [
          "project"
        ]
      },
      "UpdatePublicApiProjectRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ]
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "team"
            ]
          },
          "memoryScope": {
            "type": "string",
            "enum": [
              "project",
              "workspace"
            ]
          }
        }
      },
      "ListPublicApiFilesResponseDto": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "mediaType": {
                  "type": "string"
                },
                "size": {
                  "type": "number"
                },
                "taskId": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "projectId": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "downloadUrl": {
                  "type": "string",
                  "format": "uri"
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "mediaType",
                "size",
                "taskId",
                "projectId",
                "downloadUrl",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "files",
          "nextCursor"
        ]
      },
      "GetPublicApiFileResponseDto": {
        "type": "object",
        "properties": {
          "file": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "mediaType": {
                "type": "string"
              },
              "size": {
                "type": "number"
              },
              "taskId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "projectId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "downloadUrl": {
                "type": "string",
                "format": "uri"
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name",
              "mediaType",
              "size",
              "taskId",
              "projectId",
              "downloadUrl",
              "createdAt",
              "updatedAt"
            ]
          }
        },
        "required": [
          "file"
        ]
      },
      "ListPublicApiTasksResponseDto": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "queued",
                    "running",
                    "awaiting_input",
                    "completed",
                    "cancelled",
                    "failed"
                  ]
                },
                "projectId": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "model": {
                  "type": "object",
                  "properties": {
                    "slug": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64,
                          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "fast": {
                      "type": "boolean"
                    },
                    "effort": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "low",
                            "medium",
                            "high",
                            "xhigh"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "slug",
                    "fast",
                    "effort"
                  ]
                },
                "pendingInteraction": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "question",
                            "approval"
                          ]
                        },
                        "prompt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "prompt"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "title",
                "status",
                "projectId",
                "model",
                "pendingInteraction",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "tasks",
          "nextCursor"
        ]
      },
      "CreatePublicApiTaskRequestDto": {
        "type": "object",
        "properties": {
          "prompt": {
            "default": "",
            "type": "string",
            "maxLength": 100000
          },
          "attachments": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uploadId": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "uploadId"
              ]
            }
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "model": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              "fast": {
                "default": false,
                "type": "boolean"
              },
              "effort": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "low",
                      "medium",
                      "high",
                      "xhigh"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "slug"
            ],
            "additionalProperties": false
          },
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "model"
        ]
      },
      "GetPublicApiTaskResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetPublicApiTaskResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/GetPublicApiTaskResponseDto__schema0"
            }
          }
        ]
      },
      "GetPublicApiTaskResponseDto": {
        "type": "object",
        "properties": {
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "queued",
                  "running",
                  "awaiting_input",
                  "completed",
                  "cancelled",
                  "failed"
                ]
              },
              "projectId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "model": {
                "type": "object",
                "properties": {
                  "slug": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "fast": {
                    "type": "boolean"
                  },
                  "effort": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "low",
                          "medium",
                          "high",
                          "xhigh"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "slug",
                  "fast",
                  "effort"
                ]
              },
              "pendingInteraction": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "question",
                          "approval"
                        ]
                      },
                      "prompt": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "prompt"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "status",
              "projectId",
              "model",
              "pendingInteraction",
              "createdAt",
              "updatedAt"
            ]
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "user",
                    "assistant"
                  ]
                },
                "parts": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "reasoning"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "text"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "text"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "text"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "file"
                          },
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "mediaType": {
                            "type": "string"
                          },
                          "downloadUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        },
                        "required": [
                          "type",
                          "id",
                          "name",
                          "mediaType",
                          "downloadUrl"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "source_url"
                          },
                          "sourceId": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "sourceId",
                          "url",
                          "title"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "source_document"
                          },
                          "sourceId": {
                            "type": "string"
                          },
                          "mediaType": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "filename": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "sourceId",
                          "mediaType",
                          "title",
                          "filename"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "reasoning_file"
                          },
                          "mediaType": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          }
                        },
                        "required": [
                          "type",
                          "mediaType",
                          "url"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "data"
                          },
                          "name": {
                            "type": "string"
                          },
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "data": {
                            "$ref": "#/components/schemas/GetPublicApiTaskResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "name",
                          "id",
                          "data"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "custom"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "providerMetadata": {
                            "$ref": "#/components/schemas/GetPublicApiTaskResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "kind"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "step_start"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_call"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "input": {
                            "$ref": "#/components/schemas/GetPublicApiTaskResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_result"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "const": "success"
                          },
                          "output": {
                            "$ref": "#/components/schemas/GetPublicApiTaskResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name",
                          "status"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_result"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "const": "error"
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name",
                          "status"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_result"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "const": "denied"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name",
                          "status"
                        ]
                      }
                    ]
                  }
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "id",
                "role",
                "parts",
                "createdAt"
              ]
            }
          }
        },
        "required": [
          "task",
          "messages"
        ]
      },
      "ListPublicApiTaskMessagesResponseDto__schema0": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto__schema0"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto__schema0"
            }
          }
        ]
      },
      "ListPublicApiTaskMessagesResponseDto": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "user",
                    "assistant"
                  ]
                },
                "parts": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "reasoning"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "text"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "text"
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "text"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "file"
                          },
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "mediaType": {
                            "type": "string"
                          },
                          "downloadUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        },
                        "required": [
                          "type",
                          "id",
                          "name",
                          "mediaType",
                          "downloadUrl"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "source_url"
                          },
                          "sourceId": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "title": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "sourceId",
                          "url",
                          "title"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "source_document"
                          },
                          "sourceId": {
                            "type": "string"
                          },
                          "mediaType": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "filename": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "sourceId",
                          "mediaType",
                          "title",
                          "filename"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "reasoning_file"
                          },
                          "mediaType": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          }
                        },
                        "required": [
                          "type",
                          "mediaType",
                          "url"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "data"
                          },
                          "name": {
                            "type": "string"
                          },
                          "id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "data": {
                            "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "name",
                          "id",
                          "data"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "custom"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "providerMetadata": {
                            "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "kind"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "step_start"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_call"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "input": {
                            "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_result"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "const": "success"
                          },
                          "output": {
                            "$ref": "#/components/schemas/ListPublicApiTaskMessagesResponseDto__schema0"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name",
                          "status"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_result"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "const": "error"
                          },
                          "error": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name",
                          "status"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "tool_result"
                          },
                          "toolCallId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "const": "denied"
                          }
                        },
                        "required": [
                          "type",
                          "toolCallId",
                          "name",
                          "status"
                        ]
                      }
                    ]
                  }
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "id",
                "role",
                "parts",
                "createdAt"
              ]
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "messages",
          "nextCursor"
        ]
      },
      "UpdatePublicApiTaskRequestDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "projectId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "AppendPublicApiTaskMessageRequestDto": {
        "type": "object",
        "properties": {
          "content": {
            "default": "",
            "type": "string",
            "maxLength": 100000
          },
          "attachments": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uploadId": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "uploadId"
              ]
            }
          },
          "model": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              "fast": {
                "default": false,
                "type": "boolean"
              },
              "effort": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "low",
                      "medium",
                      "high",
                      "xhigh"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "slug"
            ],
            "additionalProperties": false
          }
        }
      },
      "AppendPublicApiTaskMessageResponseDto": {
        "type": "object",
        "properties": {
          "accepted": {
            "type": "boolean",
            "const": true
          },
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "queued",
                  "running",
                  "awaiting_input",
                  "completed",
                  "cancelled",
                  "failed"
                ]
              },
              "projectId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "model": {
                "type": "object",
                "properties": {
                  "slug": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "fast": {
                    "type": "boolean"
                  },
                  "effort": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "low",
                          "medium",
                          "high",
                          "xhigh"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "slug",
                  "fast",
                  "effort"
                ]
              },
              "pendingInteraction": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "question",
                          "approval"
                        ]
                      },
                      "prompt": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "prompt"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "status",
              "projectId",
              "model",
              "pendingInteraction",
              "createdAt",
              "updatedAt"
            ]
          }
        },
        "required": [
          "accepted",
          "task"
        ]
      },
      "ResolvePublicApiTaskInteractionRequestDto": {
        "type": "object",
        "properties": {
          "response": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 20000
              },
              {
                "type": "object",
                "properties": {
                  "answers": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "details": {
                          "type": "string",
                          "maxLength": 20000
                        },
                        "question": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 2000
                        },
                        "selected": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          }
                        }
                      },
                      "required": [
                        "question",
                        "selected"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "answers"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "response"
        ]
      },
      "ResolvePublicApiTaskInteractionResponseDto": {
        "type": "object",
        "properties": {
          "resolved": {
            "type": "boolean"
          },
          "task": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "queued",
                  "running",
                  "awaiting_input",
                  "completed",
                  "cancelled",
                  "failed"
                ]
              },
              "projectId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "model": {
                "type": "object",
                "properties": {
                  "slug": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "fast": {
                    "type": "boolean"
                  },
                  "effort": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "low",
                          "medium",
                          "high",
                          "xhigh"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "slug",
                  "fast",
                  "effort"
                ]
              },
              "pendingInteraction": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "question",
                          "approval"
                        ]
                      },
                      "prompt": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "prompt"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "title",
              "status",
              "projectId",
              "model",
              "pendingInteraction",
              "createdAt",
              "updatedAt"
            ]
          }
        },
        "required": [
          "resolved",
          "task"
        ]
      }
    },
    "headers": {
      "Deprecation": {
        "description": "RFC 9745 structured-field date (`@<Unix timestamp>`) indicating when this operation became or will become deprecated.",
        "schema": {
          "pattern": "^@[0-9]+$",
          "type": "string"
        }
      },
      "DeprecationLink": {
        "description": "RFC 8288 Link header with rel=\"deprecation\" pointing to migration guidance. Policy: https://docs.adam.new/api-reference/introduction#versioning-and-deprecation.",
        "schema": {
          "type": "string"
        }
      },
      "Sunset": {
        "description": "RFC 8594 HTTP-date indicating when a deprecated operation is expected to become unavailable.",
        "schema": {
          "format": "http-date",
          "type": "string"
        }
      }
    }
  },
  "externalDocs": {
    "description": "Adam API versioning and deprecation policy",
    "url": "https://docs.adam.new/api-reference/introduction#versioning-and-deprecation"
  },
  "x-versioning-policy": {
    "deprecationHeaders": [
      "Deprecation",
      "Sunset",
      "Link"
    ],
    "minimumSunsetNoticeDays": 90,
    "policyUrl": "https://docs.adam.new/api-reference/introduction#versioning-and-deprecation",
    "strategy": "URL path major versioning"
  }
}