{
  "openapi": "3.1.0",
  "info": {
    "title": "Recursive Product API",
    "version": "1.0.0",
    "description": "The Recursive Product API: typed operations for sessions, tasks, plans, automations, plugins, inbox, search, and settings on a running Recursive instance. Authenticate with a bearer token or recursive_token cookie. Projected onto MCP tools and the bundled `recursive` CLI.",
    "contact": {
      "name": "Recursive Developers",
      "email": "support@futureindetail.com",
      "url": "https://recursive.computer/contact"
    },
    "license": {
      "name": "Terms of Service",
      "url": "https://recursive.computer/terms"
    },
    "x-deprecation-policy": "Operations are versioned by URL path prefix (/api/product/v1/…). A breaking change ships as a new version prefix; the previous version keeps working for at least 6 months. Deprecated operations are announced in release notes and marked at runtime with `Deprecation` and `Sunset` HTTP response headers carrying the retirement date. Non-breaking additive changes (new optional fields, new operations) do not bump the version.",
    "x-rate-limit-policy": "Requests are limited per token using a rolling 60-second window (600 requests per minute by default). Every response carries RFC 9331 RateLimit headers (`RateLimit-Policy`, `RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`). When exceeded, endpoints reply 429 with `Retry-After` set to the number of seconds until the window resets.",
    "x-stability": "Each operation carries an `x-recursive-stability` extension: `stable` (backwards-compatible), `experimental` (may change between minor releases), or `internal` (not for third-party use)."
  },
  "servers": [
    {
      "url": "/",
      "description": "Current Recursive host"
    }
  ],
  "paths": {
    "/api/product/v1/adapters/cli-status": {
      "get": {
        "operationId": "adapters.cli-status.list",
        "summary": "Probe CLI install status for each adapter.",
        "description": "Probe CLI install status for each adapter.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "description": "Bypass cached status and re-probe before answering. Defaults to `false`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters/{adapterType}/cli-update": {
      "get": {
        "operationId": "adapters.cli-update.get",
        "summary": "Get the current CLI update job for one adapter.",
        "description": "Get the current CLI update job for one adapter.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "adapterType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Agent adapter identifier, e.g. `claude-code`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "post": {
        "operationId": "adapters.cli-update.start",
        "summary": "Start or join the CLI update job for one adapter.",
        "description": "Start or join the CLI update job for one adapter.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "adapterType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Agent adapter identifier, e.g. `claude-code`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters/cli-update": {
      "get": {
        "operationId": "adapters.cli-update.list",
        "summary": "List in-flight adapter CLI update jobs.",
        "description": "List in-flight adapter CLI update jobs.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters": {
      "get": {
        "operationId": "adapters.list",
        "summary": "List registered agent adapters.",
        "description": "List registered agent adapters.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters/load-errors": {
      "get": {
        "operationId": "adapters.load-errors.list",
        "summary": "List adapter modules that failed to load.",
        "description": "List adapter modules that failed to load.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters/{adapterType}/readiness": {
      "get": {
        "operationId": "adapters.readiness.get",
        "summary": "Resolve CLI, app, authentication, and model readiness for one adapter.",
        "description": "Resolve CLI, app, authentication, and model readiness for one adapter.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "adapterType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Agent adapter identifier, e.g. `claude-code`."
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "description": "Bypass cached status and re-probe before answering. Defaults to `false`.",
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters/{adapterType}/usage": {
      "get": {
        "operationId": "adapters.usage.get",
        "summary": "Read the cached usage snapshot for one adapter.",
        "description": "Read the cached usage snapshot for one adapter.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "adapterType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Agent adapter identifier, e.g. `claude-code`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "post": {
        "operationId": "adapters.usage.refresh",
        "summary": "Refresh and cache the usage snapshot for one adapter.",
        "description": "Refresh and cache the usage snapshot for one adapter.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "adapterType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Agent adapter identifier, e.g. `claude-code`."
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "force": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "force": null
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "503": {
            "description": "503 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "operation_unavailable"
            ]
          }
        },
        "x-recursive-capability": "adapters.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/adapters/usage": {
      "get": {
        "operationId": "adapters.usage.list",
        "summary": "List cached provider usage snapshots for usage-capable adapters.",
        "description": "List cached provider usage snapshots for usage-capable adapters.",
        "tags": [
          "adapters"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "adapters.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/sources/commands": {
      "get": {
        "operationId": "agent-config.commands.search",
        "summary": "Find available command metadata.",
        "description": "Find available command metadata.",
        "tags": [
          "agent-config"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Free-text search across names and descriptions.",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "name": "intent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "search",
                "autocomplete"
              ]
            }
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "root",
            "in": "query",
            "required": false,
            "description": "Optional file/worktree root; the provider must authorize it independently.",
            "schema": {
              "type": "string",
              "description": "Optional file/worktree root; the provider must authorize it independently."
            }
          },
          {
            "name": "entity_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "maxItems": 32,
              "items": {
                "type": "string"
              }
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "entity_type": {
                            "type": "string",
                            "minLength": 1
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1
                          },
                          "description": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number"
                          },
                          "reference": {
                            "type": "object",
                            "properties": {
                              "plugin_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_type": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "version": {
                                "type": "integer"
                              },
                              "label_snapshot": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "plugin_id",
                              "entity_type",
                              "entity_id"
                            ],
                            "additionalProperties": false
                          },
                          "data": {
                            "type": "object",
                            "description": "Source-owned selection metadata. No document bodies, credentials, or executable callbacks."
                          }
                        },
                        "required": [
                          "id",
                          "entity_type",
                          "label",
                          "score"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "configs.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/agent-config/manifest": {
      "get": {
        "operationId": "agent-config.manifest.get",
        "summary": "Legacy GET /api/agent-config/manifest.",
        "description": "Legacy GET /api/agent-config/manifest.",
        "tags": [
          "agent-config"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/sources/rules": {
      "get": {
        "operationId": "agent-config.rules.search",
        "summary": "Find available rule metadata.",
        "description": "Find available rule metadata.",
        "tags": [
          "agent-config"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Free-text search across names and descriptions.",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "name": "intent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "search",
                "autocomplete"
              ]
            }
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "root",
            "in": "query",
            "required": false,
            "description": "Optional file/worktree root; the provider must authorize it independently.",
            "schema": {
              "type": "string",
              "description": "Optional file/worktree root; the provider must authorize it independently."
            }
          },
          {
            "name": "entity_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "maxItems": 32,
              "items": {
                "type": "string"
              }
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "entity_type": {
                            "type": "string",
                            "minLength": 1
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1
                          },
                          "description": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number"
                          },
                          "reference": {
                            "type": "object",
                            "properties": {
                              "plugin_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_type": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "version": {
                                "type": "integer"
                              },
                              "label_snapshot": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "plugin_id",
                              "entity_type",
                              "entity_id"
                            ],
                            "additionalProperties": false
                          },
                          "data": {
                            "type": "object",
                            "description": "Source-owned selection metadata. No document bodies, credentials, or executable callbacks."
                          }
                        },
                        "required": [
                          "id",
                          "entity_type",
                          "label",
                          "score"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "configs.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/sources/skills": {
      "get": {
        "operationId": "agent-config.skills.search",
        "summary": "Find available skill metadata without loading execution snapshots.",
        "description": "Find available skill metadata without loading execution snapshots.",
        "tags": [
          "agent-config"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Free-text search across names and descriptions.",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "name": "intent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "search",
                "autocomplete"
              ]
            }
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "root",
            "in": "query",
            "required": false,
            "description": "Optional file/worktree root; the provider must authorize it independently.",
            "schema": {
              "type": "string",
              "description": "Optional file/worktree root; the provider must authorize it independently."
            }
          },
          {
            "name": "entity_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "maxItems": 32,
              "items": {
                "type": "string"
              }
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "entity_type": {
                            "type": "string",
                            "minLength": 1
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1
                          },
                          "description": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number"
                          },
                          "reference": {
                            "type": "object",
                            "properties": {
                              "plugin_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_type": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "version": {
                                "type": "integer"
                              },
                              "label_snapshot": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "plugin_id",
                              "entity_type",
                              "entity_id"
                            ],
                            "additionalProperties": false
                          },
                          "data": {
                            "type": "object",
                            "description": "Source-owned selection metadata. No document bodies, credentials, or executable callbacks."
                          }
                        },
                        "required": [
                          "id",
                          "entity_type",
                          "label",
                          "score"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "configs.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/agents": {
      "get": {
        "operationId": "agents.list",
        "summary": "List agents visible to the caller.",
        "description": "List agents visible to the caller.",
        "tags": [
          "agents"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "agents.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/openapi.json": {
      "get": {
        "operationId": "api.describe",
        "summary": "Get the OpenAPI description of the current Product API.",
        "description": "Returns the live OpenAPI 3.1 contract for all active public core and plugin operations.",
        "tags": [
          "api"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "openapi": {
                      "type": "string",
                      "const": "3.1.0"
                    },
                    "info": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string"
                        },
                        "version": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "title",
                        "version"
                      ],
                      "additionalProperties": false
                    },
                    "servers": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "paths": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object"
                      }
                    },
                    "components": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object"
                      }
                    }
                  },
                  "required": [
                    "openapi",
                    "info",
                    "servers",
                    "paths",
                    "components"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "api.read",
        "x-recursive-stability": "stable",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/catalog/tools": {
      "get": {
        "operationId": "catalog.tools.list",
        "summary": "List MCP tools with descriptions.",
        "description": "Browse every available Recursive platform tool. Only a small discovery spine ships inline; fetch deferred schemas here, then invoke them through workspace_mcp.",
        "tags": [
          "catalog"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "audience",
            "in": "query",
            "required": false,
            "description": "Audience filter. Default: all.",
            "schema": {
              "type": "string",
              "enum": [
                "orchestrator",
                "agent",
                "shared",
                "dashboard",
                "any"
              ],
              "description": "Audience filter. Default: all."
            }
          },
          {
            "name": "names",
            "in": "query",
            "required": false,
            "description": "Return full tool schemas (name, description, inputSchema) for these names instead of catalog summaries.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Return full tool schemas (name, description, inputSchema) for these names instead of catalog summaries."
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Search tool names and descriptions. Returns matching full schemas so they can be invoked through workspace_mcp.",
            "schema": {
              "type": "string",
              "description": "Search tool names and descriptions. Returns matching full schemas so they can be invoked through workspace_mcp."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "Catalog tool row."
                      }
                    },
                    "invoke_with": {
                      "type": "string"
                    },
                    "hint": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "total",
                    "tools"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/all-files": {
      "get": {
        "operationId": "coding.all-files.get",
        "summary": "Legacy GET /api/workspace/all-files.",
        "description": "Legacy GET /api/workspace/all-files.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/apply-stash": {
      "post": {
        "operationId": "coding.apply-stash.create",
        "summary": "Legacy POST /api/workspace/apply-stash.",
        "description": "Legacy POST /api/workspace/apply-stash.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/change-scopes": {
      "get": {
        "operationId": "coding.change-scopes.get",
        "summary": "Legacy GET /api/workspace/change-scopes.",
        "description": "Legacy GET /api/workspace/change-scopes.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/commit-context": {
      "get": {
        "operationId": "coding.commit-context.get",
        "summary": "Legacy GET /api/workspace/commit-context.",
        "description": "Legacy GET /api/workspace/commit-context.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/commit-detail": {
      "get": {
        "operationId": "coding.commit-detail.get",
        "summary": "Legacy GET /api/workspace/commit-detail.",
        "description": "Legacy GET /api/workspace/commit-detail.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/commit-plan": {
      "get": {
        "operationId": "coding.commit-plan.get",
        "summary": "Legacy GET /api/workspace/commit-plan.",
        "description": "Legacy GET /api/workspace/commit-plan.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-at-commit": {
      "get": {
        "operationId": "coding.file-at-commit.get",
        "summary": "Legacy GET /api/workspace/file-at-commit.",
        "description": "Legacy GET /api/workspace/file-at-commit.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-blame": {
      "get": {
        "operationId": "coding.file-blame.get",
        "summary": "Legacy GET /api/workspace/file-blame.",
        "description": "Legacy GET /api/workspace/file-blame.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-content": {
      "get": {
        "operationId": "coding.file-content.get",
        "summary": "Legacy GET /api/workspace/file-content.",
        "description": "Legacy GET /api/workspace/file-content.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-diff": {
      "get": {
        "operationId": "coding.file-diff.get",
        "summary": "Legacy GET /api/workspace/file-diff.",
        "description": "Legacy GET /api/workspace/file-diff.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-history": {
      "get": {
        "operationId": "coding.file-history.get",
        "summary": "Legacy GET /api/workspace/file-history.",
        "description": "Legacy GET /api/workspace/file-history.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-raw": {
      "get": {
        "operationId": "coding.file-raw.get",
        "summary": "Legacy GET /api/workspace/file-raw.",
        "description": "Legacy GET /api/workspace/file-raw.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string",
                  "format": "binary",
                  "description": "Raw file bytes."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "413": {
            "description": "413 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-restore": {
      "post": {
        "operationId": "coding.file-restore.create",
        "summary": "Legacy POST /api/workspace/file-restore.",
        "description": "Legacy POST /api/workspace/file-restore.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-save": {
      "post": {
        "operationId": "coding.file-save.create",
        "summary": "Legacy POST /api/workspace/file-save.",
        "description": "Legacy POST /api/workspace/file-save.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/file-snapshot": {
      "get": {
        "operationId": "coding.file-snapshot.get",
        "summary": "Legacy GET /api/workspace/file-snapshot.",
        "description": "Legacy GET /api/workspace/file-snapshot.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/files": {
      "get": {
        "operationId": "coding.files.get",
        "summary": "Legacy GET /api/workspace/files.",
        "description": "Legacy GET /api/workspace/files.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/sources/files": {
      "get": {
        "operationId": "coding.files.search",
        "summary": "Find project files for reference pickers.",
        "description": "Find project files for reference pickers.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Free-text search across names and descriptions.",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "name": "intent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "search",
                "autocomplete"
              ]
            }
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "root",
            "in": "query",
            "required": false,
            "description": "Optional file/worktree root; the provider must authorize it independently.",
            "schema": {
              "type": "string",
              "description": "Optional file/worktree root; the provider must authorize it independently."
            }
          },
          {
            "name": "entity_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "maxItems": 32,
              "items": {
                "type": "string"
              }
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "entity_type": {
                            "type": "string",
                            "minLength": 1
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1
                          },
                          "description": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number"
                          },
                          "reference": {
                            "type": "object",
                            "properties": {
                              "plugin_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_type": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "version": {
                                "type": "integer"
                              },
                              "label_snapshot": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "plugin_id",
                              "entity_type",
                              "entity_id"
                            ],
                            "additionalProperties": false
                          },
                          "data": {
                            "type": "object",
                            "description": "Source-owned selection metadata. No document bodies, credentials, or executable callbacks."
                          }
                        },
                        "required": [
                          "id",
                          "entity_type",
                          "label",
                          "score"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "has_more": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "files.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/fork": {
      "post": {
        "operationId": "coding.fork.create",
        "summary": "Legacy POST /api/workspace/fork.",
        "description": "Legacy POST /api/workspace/fork.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-branch-diff": {
      "get": {
        "operationId": "coding.git-branch-diff.get",
        "summary": "Legacy GET /api/workspace/git-branch-diff.",
        "description": "Legacy GET /api/workspace/git-branch-diff.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-branch-file-diff": {
      "get": {
        "operationId": "coding.git-branch-file-diff.get",
        "summary": "Legacy GET /api/workspace/git-branch-file-diff.",
        "description": "Legacy GET /api/workspace/git-branch-file-diff.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-branches": {
      "get": {
        "operationId": "coding.git-branches.get",
        "summary": "Legacy GET /api/workspace/git-branches.",
        "description": "Legacy GET /api/workspace/git-branches.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-commit": {
      "post": {
        "operationId": "coding.git-commit.create",
        "summary": "Legacy POST /api/workspace/git-commit.",
        "description": "Legacy POST /api/workspace/git-commit.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-create-worktree": {
      "post": {
        "operationId": "coding.git-create-worktree.create",
        "summary": "Legacy POST /api/workspace/git-create-worktree.",
        "description": "Legacy POST /api/workspace/git-create-worktree.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-delete-branch": {
      "post": {
        "operationId": "coding.git-delete-branch.create",
        "summary": "Legacy POST /api/workspace/git-delete-branch.",
        "description": "Legacy POST /api/workspace/git-delete-branch.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-discard": {
      "post": {
        "operationId": "coding.git-discard.create",
        "summary": "Legacy POST /api/workspace/git-discard.",
        "description": "Legacy POST /api/workspace/git-discard.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-graph": {
      "get": {
        "operationId": "coding.git-graph.get",
        "summary": "Legacy GET /api/workspace/git-graph.",
        "description": "Legacy GET /api/workspace/git-graph.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-pull-request-action": {
      "post": {
        "operationId": "coding.git-pull-request-action.create",
        "summary": "Legacy POST /api/workspace/git-pull-request-action.",
        "description": "Legacy POST /api/workspace/git-pull-request-action.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-pull-request": {
      "get": {
        "operationId": "coding.git-pull-request.get",
        "summary": "Legacy GET /api/workspace/git-pull-request.",
        "description": "Legacy GET /api/workspace/git-pull-request.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-pull-requests": {
      "get": {
        "operationId": "coding.git-pull-requests.get",
        "summary": "Legacy GET /api/workspace/git-pull-requests.",
        "description": "Legacy GET /api/workspace/git-pull-requests.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-pull": {
      "post": {
        "operationId": "coding.git-pull.create",
        "summary": "Legacy POST /api/workspace/git-pull.",
        "description": "Legacy POST /api/workspace/git-pull.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-push": {
      "post": {
        "operationId": "coding.git-push.create",
        "summary": "Legacy POST /api/workspace/git-push.",
        "description": "Legacy POST /api/workspace/git-push.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-stage-scope": {
      "post": {
        "operationId": "coding.git-stage-scope.create",
        "summary": "Legacy POST /api/workspace/git-stage-scope.",
        "description": "Legacy POST /api/workspace/git-stage-scope.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-stage": {
      "post": {
        "operationId": "coding.git-stage.create",
        "summary": "Legacy POST /api/workspace/git-stage.",
        "description": "Legacy POST /api/workspace/git-stage.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-stash-file-diff": {
      "post": {
        "operationId": "coding.git-stash-file-diff.create",
        "summary": "Legacy POST /api/workspace/git-stash-file-diff.",
        "description": "Legacy POST /api/workspace/git-stash-file-diff.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-stash-list": {
      "get": {
        "operationId": "coding.git-stash-list.get",
        "summary": "Legacy GET /api/workspace/git-stash-list.",
        "description": "Legacy GET /api/workspace/git-stash-list.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-stash-show": {
      "post": {
        "operationId": "coding.git-stash-show.create",
        "summary": "Legacy POST /api/workspace/git-stash-show.",
        "description": "Legacy POST /api/workspace/git-stash-show.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-stash": {
      "post": {
        "operationId": "coding.git-stash.create",
        "summary": "Legacy POST /api/workspace/git-stash.",
        "description": "Legacy POST /api/workspace/git-stash.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-status-detailed": {
      "get": {
        "operationId": "coding.git-status-detailed.get",
        "summary": "Legacy GET /api/workspace/git-status-detailed.",
        "description": "Legacy GET /api/workspace/git-status-detailed.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-status": {
      "get": {
        "operationId": "coding.git-status.get",
        "summary": "Legacy GET /api/workspace/git-status.",
        "description": "Legacy GET /api/workspace/git-status.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-switch-branch": {
      "post": {
        "operationId": "coding.git-switch-branch.create",
        "summary": "Legacy POST /api/workspace/git-switch-branch.",
        "description": "Legacy POST /api/workspace/git-switch-branch.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/git-unstage": {
      "post": {
        "operationId": "coding.git-unstage.create",
        "summary": "Legacy POST /api/workspace/git-unstage.",
        "description": "Legacy POST /api/workspace/git-unstage.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/resolve-revert-conflicts": {
      "post": {
        "operationId": "coding.resolve-revert-conflicts.create",
        "summary": "Legacy POST /api/workspace/resolve-revert-conflicts.",
        "description": "Legacy POST /api/workspace/resolve-revert-conflicts.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/revert-to-turn": {
      "post": {
        "operationId": "coding.revert-to-turn.create",
        "summary": "Legacy POST /api/workspace/revert-to-turn.",
        "description": "Legacy POST /api/workspace/revert-to-turn.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/revert-turns": {
      "post": {
        "operationId": "coding.revert-turns.create",
        "summary": "Legacy POST /api/workspace/revert-turns.",
        "description": "Legacy POST /api/workspace/revert-turns.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/search-commits": {
      "get": {
        "operationId": "coding.search-commits.get",
        "summary": "Legacy GET /api/workspace/search-commits.",
        "description": "Legacy GET /api/workspace/search-commits.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/search-files": {
      "get": {
        "operationId": "coding.search-files.get",
        "summary": "Legacy GET /api/workspace/search-files.",
        "description": "Legacy GET /api/workspace/search-files.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/session-commit": {
      "post": {
        "operationId": "coding.session-commit.create",
        "summary": "Legacy POST /api/workspace/session-commit.",
        "description": "Legacy POST /api/workspace/session-commit.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/session-diff-stats": {
      "get": {
        "operationId": "coding.session-diff-stats.get",
        "summary": "Legacy GET /api/workspace/session-diff-stats.",
        "description": "Legacy GET /api/workspace/session-diff-stats.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/session-drafts": {
      "get": {
        "operationId": "coding.session-drafts.get",
        "summary": "Legacy GET /api/workspace/session-drafts.",
        "description": "Legacy GET /api/workspace/session-drafts.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/session-edits": {
      "get": {
        "operationId": "coding.session-edits.get",
        "summary": "Legacy GET /api/workspace/session-edits.",
        "description": "Legacy GET /api/workspace/session-edits.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/session-previews": {
      "get": {
        "operationId": "coding.session-previews.get",
        "summary": "Legacy GET /api/workspace/session-previews.",
        "description": "Legacy GET /api/workspace/session-previews.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/session-revert": {
      "post": {
        "operationId": "coding.session-revert.create",
        "summary": "Legacy POST /api/workspace/session-revert.",
        "description": "Legacy POST /api/workspace/session-revert.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/stash": {
      "delete": {
        "operationId": "coding.stash.delete",
        "summary": "Legacy DELETE /api/workspace/stash.",
        "description": "Legacy DELETE /api/workspace/stash.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "get": {
        "operationId": "coding.stash.get",
        "summary": "Legacy GET /api/workspace/stash.",
        "description": "Legacy GET /api/workspace/stash.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/stashes": {
      "get": {
        "operationId": "coding.stashes.get",
        "summary": "Legacy GET /api/workspace/stashes.",
        "description": "Legacy GET /api/workspace/stashes.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/unwatch": {
      "post": {
        "operationId": "coding.unwatch.create",
        "summary": "Legacy POST /api/workspace/unwatch.",
        "description": "Legacy POST /api/workspace/unwatch.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/verify-worktree": {
      "post": {
        "operationId": "coding.verify-worktree.create",
        "summary": "Legacy POST /api/workspace/verify-worktree.",
        "description": "Legacy POST /api/workspace/verify-worktree.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/coding/watch": {
      "post": {
        "operationId": "coding.watch.create",
        "summary": "Legacy POST /api/workspace/watch.",
        "description": "Legacy POST /api/workspace/watch.",
        "tags": [
          "coding"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/costs/by-agent": {
      "get": {
        "operationId": "costs.by-agent.get",
        "summary": "Legacy GET /api/costs/by-agent.",
        "description": "Legacy GET /api/costs/by-agent.",
        "tags": [
          "costs"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/costs/by-session": {
      "get": {
        "operationId": "costs.by-session.get",
        "summary": "Legacy GET /api/costs/by-session.",
        "description": "Legacy GET /api/costs/by-session.",
        "tags": [
          "costs"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/cost-events": {
      "post": {
        "operationId": "costs.events.ingest",
        "summary": "Legacy POST /api/cost-events.",
        "description": "Legacy POST /api/cost-events.",
        "tags": [
          "costs"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/costs/summary": {
      "get": {
        "operationId": "costs.summary.get",
        "summary": "Legacy GET /api/costs/summary.",
        "description": "Legacy GET /api/costs/summary.",
        "tags": [
          "costs"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/datasets": {
      "get": {
        "operationId": "dataset.list",
        "summary": "List portable datasets available to the caller.",
        "description": "List portable datasets available to the caller.",
        "tags": [
          "dataset"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "datasets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "Provider-defined dataset payload; record fields are validated against the owning collection schema before persistence."
                      }
                    },
                    "connections": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "Provider-defined dataset payload; record fields are validated against the owning collection schema before persistence."
                      }
                    }
                  },
                  "required": [
                    "datasets",
                    "connections"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "datasets.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/datasets/query": {
      "get": {
        "operationId": "dataset.query",
        "summary": "Read records from a declared portable dataset collection.",
        "description": "Read records from a declared portable dataset collection.",
        "tags": [
          "dataset"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "owner_plugin_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "collection",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "index",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "equals",
            "in": "query",
            "required": false,
            "schema": {
              "type": [
                "string",
                "number",
                "boolean",
                "null"
              ]
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "records": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "Provider-defined dataset payload; record fields are validated against the owning collection schema before persistence."
                      }
                    },
                    "next_cursor": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "records",
                    "next_cursor"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "default": {
            "description": "Default problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "project_required"
            ]
          }
        },
        "x-recursive-capability": "datasets.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/datasets/sync": {
      "post": {
        "operationId": "dataset.sync",
        "summary": "Run a connector sync and persist its declared dataset batches.",
        "description": "Run a connector sync and persist its declared dataset batches.",
        "tags": [
          "dataset"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "scope": {
                    "type": "object",
                    "description": "Connector-specific sync options validated by the selected provider."
                  },
                  "source_batch": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "provider_id"
                ],
                "additionalProperties": false
              },
              "example": {
                "provider_id": "string",
                "scope": {},
                "source_batch": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "report": {
                      "type": "object",
                      "properties": {
                        "providerId": {
                          "type": "string"
                        },
                        "startedAt": {
                          "type": "string"
                        },
                        "finishedAt": {
                          "type": "string"
                        },
                        "inserted": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "updated": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "skipped": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "nextCursor": {
                          "type": "string"
                        },
                        "sourceBatch": {
                          "type": "string"
                        },
                        "errors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "message": {
                                "type": "string"
                              },
                              "fatal": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "code",
                              "message"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "records": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "array",
                            "items": {
                              "description": "Provider-defined record validated by the destination collection schema."
                            }
                          }
                        }
                      },
                      "required": [
                        "providerId",
                        "startedAt",
                        "finishedAt",
                        "inserted",
                        "updated",
                        "skipped"
                      ],
                      "additionalProperties": false
                    },
                    "persisted": {
                      "type": "object",
                      "properties": {
                        "sourceBatch": {
                          "type": "string"
                        },
                        "ingestedAt": {
                          "type": "string"
                        },
                        "inserted": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "skipped": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "collections": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "inserted": {
                                "type": "integer",
                                "minimum": 0
                              },
                              "skipped": {
                                "type": "integer",
                                "minimum": 0
                              }
                            },
                            "required": [
                              "name",
                              "inserted",
                              "skipped"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "sourceBatch",
                        "ingestedAt",
                        "inserted",
                        "skipped",
                        "collections"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "report",
                    "persisted"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "429": {
            "description": "429 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "quota_exceeded"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "default": {
            "description": "Default problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_record",
              "storage_error"
            ]
          }
        },
        "x-recursive-capability": "datasets.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/entity-references/resolve": {
      "post": {
        "operationId": "entities.references.resolve",
        "summary": "Resolve owner-qualified entity references.",
        "description": "Resolve owner-qualified entity references.",
        "tags": [
          "entities"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "references": {
                    "type": "array",
                    "maxItems": 100,
                    "items": {
                      "type": "object",
                      "properties": {
                        "plugin_id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "entity_type": {
                          "type": "string",
                          "minLength": 1
                        },
                        "entity_id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "version": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "label_snapshot": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "entity_type",
                        "entity_id"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "references"
                ],
                "additionalProperties": false
              },
              "example": {
                "references": [
                  {
                    "entity_type": "string",
                    "entity_id": "string"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "references": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "plugin_id": {
                            "type": "string"
                          },
                          "entity_type": {
                            "type": "string"
                          },
                          "entity_id": {
                            "type": "string"
                          },
                          "version": {
                            "type": "integer"
                          },
                          "label_snapshot": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "resolved",
                              "unresolved"
                            ]
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "label": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "entity_type",
                          "entity_id",
                          "status",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "references"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/greetings": {
      "get": {
        "operationId": "greetings.list",
        "summary": "List greeting packs contributed by installed plugins.",
        "description": "List greeting packs contributed by installed plugins.",
        "tags": [
          "greetings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/license/tiers": {
      "get": {
        "operationId": "license.tiers.get",
        "summary": "List license tier features and device limits.",
        "description": "List license tier features and device limits.",
        "tags": [
          "license"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "license.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/merge-queue": {
      "get": {
        "operationId": "merge-queue.list",
        "summary": "Legacy GET /api/merge-queue.",
        "description": "Legacy GET /api/merge-queue.",
        "tags": [
          "merge-queue"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/metrics/pricing": {
      "get": {
        "operationId": "metrics.pricing.list",
        "summary": "List model pricing entries.",
        "description": "List model pricing entries.",
        "tags": [
          "metrics"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "pricing": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "Pricing row."
                      }
                    },
                    "summary": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "pricing",
                    "summary"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "put": {
        "operationId": "metrics.pricing.update",
        "summary": "Set canonical or offering-specific model pricing.",
        "description": "Set canonical or offering-specific model pricing.",
        "tags": [
          "metrics"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "model_name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "provider": {
                    "type": "string",
                    "minLength": 1
                  },
                  "canonical_id": {
                    "type": "string"
                  },
                  "selection": {
                    "type": "string"
                  },
                  "adapter": {
                    "type": "string"
                  },
                  "pricing_mode": {
                    "type": "string",
                    "enum": [
                      "subscription",
                      "api",
                      "credits"
                    ]
                  },
                  "input_per_1m": {
                    "type": "number"
                  },
                  "output_per_1m": {
                    "type": "number"
                  },
                  "cache_read_per_1m": {
                    "type": "number"
                  },
                  "cache_write_per_1m": {
                    "type": "number"
                  }
                },
                "required": [
                  "model_name",
                  "provider"
                ],
                "additionalProperties": false
              },
              "example": {
                "model_name": "string",
                "provider": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Updated pricing payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/models/catalog": {
      "get": {
        "operationId": "models.catalog.get",
        "summary": "Return canonical model catalog with availability and pricing.",
        "description": "Return canonical model catalog with availability and pricing.",
        "tags": [
          "models"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/models/defaults": {
      "get": {
        "operationId": "models.defaults.get",
        "summary": "Legacy model defaults endpoint (empty list).",
        "description": "Legacy model defaults endpoint (empty list).",
        "tags": [
          "models"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/models/intelligence/refresh": {
      "post": {
        "operationId": "models.intelligence.refresh",
        "summary": "Refresh local model-intelligence sources and report their status.",
        "description": "Refresh local model-intelligence sources and report their status.",
        "tags": [
          "models"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "refresh": {
                      "type": "object",
                      "description": "Per-source refresh outcomes, including skips and retained snapshots."
                    },
                    "status": {
                      "type": "object",
                      "description": "Redacted local intelligence-source freshness, retry state, and credential availability."
                    }
                  },
                  "required": [
                    "refresh",
                    "status"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/models/intelligence/status": {
      "get": {
        "operationId": "models.intelligence.status",
        "summary": "Read local model-intelligence source status.",
        "description": "Read local model-intelligence source status.",
        "tags": [
          "models"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Redacted local intelligence-source freshness, retry state, and credential availability."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/models": {
      "get": {
        "operationId": "models.list",
        "summary": "List adapter-discovered models for the model picker.",
        "description": "List adapter-discovered models for the model picker.",
        "tags": [
          "models"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/operation-approvals/{approvalId}": {
      "get": {
        "operationId": "operations.approvals.get",
        "summary": "Read a saved operation approval.",
        "description": "Read a saved operation approval.",
        "tags": [
          "operations"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "approvalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Saved operation approval and execution result."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "operations.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/operation-approvals": {
      "post": {
        "operationId": "operations.approvals.propose",
        "summary": "Save an exact operation proposal and its current preview.",
        "description": "Save an exact operation proposal and its current preview.",
        "tags": [
          "operations"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operation_id": {
                    "type": "string"
                  },
                  "input": {
                    "type": "object"
                  },
                  "path_parameters": {
                    "type": "object"
                  }
                },
                "required": [
                  "operation_id",
                  "input"
                ],
                "additionalProperties": false
              },
              "example": {
                "operation_id": "string",
                "input": {},
                "path_parameters": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Saved operation approval and execution result."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "operations.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/operation-approvals/{approvalId}/resolve": {
      "post": {
        "operationId": "operations.approvals.resolve",
        "summary": "Approve or cancel the saved proposal. Requires a user action.",
        "description": "Approve or cancel the saved proposal. Requires a user action.",
        "tags": [
          "operations"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "approvalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "approve",
                      "cancel"
                    ]
                  }
                },
                "required": [
                  "decision"
                ],
                "additionalProperties": false
              },
              "example": {
                "decision": "approve"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Saved operation approval and execution result."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "operations.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/operations/{operationId}:cancel": {
      "post": {
        "operationId": "operations.cancel",
        "summary": "Cancel a durable operation that has not reached a terminal state.",
        "description": "Cancel a durable operation that has not reached a terminal state.",
        "tags": [
          "operations"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "operationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Durable operation identifier returned when the operation was started."
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "operation_id": {
                      "type": "string"
                    },
                    "request_id": {
                      "type": "string"
                    },
                    "project_id": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "accepted",
                        "running",
                        "succeeded",
                        "failed",
                        "cancelled"
                      ]
                    },
                    "accepted_at": {
                      "type": "string"
                    },
                    "started_at": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "finished_at": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "result": {},
                    "error": {}
                  },
                  "required": [
                    "id",
                    "operation_id",
                    "request_id",
                    "project_id",
                    "status",
                    "accepted_at",
                    "started_at",
                    "finished_at",
                    "result",
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "operations.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/operations/{operationId}": {
      "get": {
        "operationId": "operations.get",
        "summary": "Get the current state of a durable operation.",
        "description": "Get the current state of a durable operation.",
        "tags": [
          "operations"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "operationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Durable operation identifier returned when the operation was started."
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "operation_id": {
                      "type": "string"
                    },
                    "request_id": {
                      "type": "string"
                    },
                    "project_id": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "accepted",
                        "running",
                        "succeeded",
                        "failed",
                        "cancelled"
                      ]
                    },
                    "accepted_at": {
                      "type": "string"
                    },
                    "started_at": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "finished_at": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "result": {},
                    "error": {}
                  },
                  "required": [
                    "id",
                    "operation_id",
                    "request_id",
                    "project_id",
                    "status",
                    "accepted_at",
                    "started_at",
                    "finished_at",
                    "result",
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "operations.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/permissions/allowlist": {
      "get": {
        "operationId": "permissions.allowlist.get",
        "summary": "Legacy GET /api/permissions/allowlist.",
        "description": "Legacy GET /api/permissions/allowlist.",
        "tags": [
          "permissions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/accounts": {
      "post": {
        "operationId": "plugins.accounts.change",
        "summary": "Save, activate, forget, or assign a plugin account.",
        "description": "Save, activate, forget, or assign a plugin account.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "add",
                      "activate",
                      "forget",
                      "assign-agent"
                    ]
                  },
                  "account_id": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "agent_id": {
                    "type": "string"
                  }
                },
                "required": [
                  "action"
                ],
                "additionalProperties": false
              },
              "example": {
                "action": "add",
                "account_id": null,
                "agent_id": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      },
      "get": {
        "operationId": "plugins.accounts.get",
        "summary": "Get connected account summaries without credentials.",
        "description": "Get connected account summaries without credentials.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/catalog": {
      "get": {
        "operationId": "plugins.catalog.list",
        "summary": "List installable plugins from the configured registry.",
        "description": "List installable plugins from the configured registry.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Filter results to a marketplace category slug.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provides",
            "in": "query",
            "required": false,
            "description": "Filter results to plugins providing this capability (e.g. `skills`, `themes`).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Free-text search across names and descriptions.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "last_fetched_at": {
                      "type": "string"
                    },
                    "registry_version": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "data",
                    "last_fetched_at",
                    "registry_version"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "503": {
            "description": "503 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "upstream_unavailable"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/catalog:refresh": {
      "post": {
        "operationId": "plugins.catalog.refresh",
        "summary": "Refresh the configured plugin registry.",
        "description": "Refresh the configured plugin registry.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "last_fetched_at": {
                      "type": "string"
                    },
                    "registry_version": {
                      "type": "integer"
                    },
                    "count": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "last_fetched_at",
                    "registry_version",
                    "count"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "503": {
            "description": "503 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "upstream_unavailable"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}/elements": {
      "put": {
        "operationId": "plugins.elements.set",
        "summary": "Set excluded contribution elements for an installed plugin.",
        "description": "Set excluded contribution elements for an installed plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "exclude": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "required": [
                  "exclude"
                ],
                "additionalProperties": false
              },
              "example": {
                "exclude": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}/enabled": {
      "put": {
        "operationId": "plugins.enabled.set",
        "summary": "Enable or disable an installed plugin.",
        "description": "Enable or disable an installed plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "enabled"
                ],
                "additionalProperties": false
              },
              "example": {
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "enabled": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "enabled"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}": {
      "get": {
        "operationId": "plugins.get",
        "summary": "Get public plugin manifest and lifecycle details.",
        "description": "Get public plugin manifest and lifecycle details.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/health": {
      "get": {
        "operationId": "plugins.health.get",
        "summary": "Inspect plugin load and validation findings.",
        "description": "Inspect plugin load and validation findings.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "plugins": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "total": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "plugins",
                    "total"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/history": {
      "get": {
        "operationId": "plugins.history.list",
        "summary": "List immutable installed-source versions retained for a plugin.",
        "description": "List immutable installed-source versions retained for a plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "versions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "plugin_id": {
                            "type": "string"
                          },
                          "version": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "source_digest": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "origin": {
                            "type": "string"
                          },
                          "validation": {
                            "type": "string",
                            "enum": [
                              "valid"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "plugin_id",
                          "version",
                          "source_digest",
                          "created_at",
                          "origin",
                          "validation"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "versions"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/history/{versionId}:restore": {
      "post": {
        "operationId": "plugins.history.restore",
        "summary": "Transactionally restore one retained plugin source version.",
        "description": "Transactionally restore one retained plugin source version.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "versionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Installed plugin source version identifier (see plugin history)."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}:install": {
      "post": {
        "operationId": "plugins.install",
        "summary": "Install a plugin from the configured catalog.",
        "description": "Install a plugin from the configured catalog.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "exclude": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "exclude": [
                  "string"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins:install": {
      "post": {
        "operationId": "plugins.install.request",
        "summary": "Install a catalog plugin or a reviewed repository source.",
        "description": "Install a catalog plugin or a reviewed repository source.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "repo": {
                    "type": "string",
                    "minLength": 1
                  },
                  "plugin_path": {
                    "type": "string",
                    "minLength": 1
                  },
                  "expected_commit": {
                    "type": "string",
                    "minLength": 1
                  },
                  "exclude": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                },
                "additionalProperties": false
              },
              "example": {}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}/items/{type}/{itemId}/content": {
      "get": {
        "operationId": "plugins.items.content.get",
        "summary": "Read bounded text content contributed by an installed plugin.",
        "description": "Read bounded text content contributed by an installed plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin item type (for example `skill`, `tool`, or `rule`)."
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin item identifier within the plugin namespace."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins": {
      "get": {
        "operationId": "plugins.list",
        "summary": "List plugins available to the current app and caller.",
        "description": "List plugins available to the current app and caller.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "required": false,
            "description": "Filter by install source: `bundled`, `installed`, or `local`.",
            "schema": {
              "type": "string",
              "enum": [
                "bundled",
                "installed",
                "local"
              ]
            }
          },
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "description": "Filter by enablement state. `true` returns only enabled items.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "name": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "source": {
                            "type": "string",
                            "enum": [
                              "bundled",
                              "installed",
                              "local"
                            ]
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "provides": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "icon": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "color": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "thumbnail": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "version",
                          "description",
                          "source",
                          "enabled",
                          "provides",
                          "icon",
                          "color",
                          "thumbnail"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "next_cursor": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "data",
                    "next_cursor"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/marketplace/generate": {
      "post": {
        "operationId": "plugins.marketplace.generate",
        "summary": "Legacy POST /api/plugins/marketplace/generate.",
        "description": "Legacy POST /api/plugins/marketplace/generate.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/oauth/info": {
      "get": {
        "operationId": "plugins.oauth.info",
        "summary": "Get plugin OAuth connection status and setup metadata.",
        "description": "Get plugin OAuth connection status and setup metadata.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/oauth/start": {
      "post": {
        "operationId": "plugins.oauth.start",
        "summary": "Start a plugin OAuth connection using the server callback origin.",
        "description": "Start a plugin OAuth connection using the server callback origin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "503": {
            "description": "503 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "upstream_unavailable"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/onboarding/verify": {
      "post": {
        "operationId": "plugins.onboarding.verify",
        "summary": "Verify the installed plugin’s declared onboarding operation.",
        "description": "Verify the installed plugin’s declared onboarding operation.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/providers": {
      "get": {
        "operationId": "plugins.providers.list",
        "summary": "List provider entries composed into the plugin marketplace.",
        "description": "List provider entries composed into the plugin marketplace.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}:rollback": {
      "post": {
        "operationId": "plugins.rollback",
        "summary": "Restore the previous installed version of a plugin.",
        "description": "Restore the previous installed version of a plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}/settings": {
      "get": {
        "operationId": "plugins.settings.get",
        "summary": "Get redacted settings for an installed plugin.",
        "description": "Get redacted settings for an installed plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "patch": {
        "operationId": "plugins.settings.update",
        "summary": "Update settings for an installed plugin.",
        "description": "Update settings for an installed plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugin-settings": {
      "get": {
        "operationId": "plugins.settings.list",
        "summary": "Legacy GET /api/plugin-settings.",
        "description": "Legacy GET /api/plugin-settings.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sounds": {
      "get": {
        "operationId": "plugins.sounds.list",
        "summary": "Legacy GET /api/sounds.",
        "description": "Legacy GET /api/sounds.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/surface-prefs": {
      "get": {
        "operationId": "plugins.surface-prefs.get",
        "summary": "Get per-surface visibility overrides for a plugin in the current workspace.",
        "description": "Get per-surface visibility overrides for a plugin in the current workspace.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "surfaces": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string",
                        "enum": [
                          "enabled",
                          "disabled"
                        ]
                      }
                    }
                  },
                  "required": [
                    "surfaces"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "put": {
        "operationId": "plugins.surface-prefs.set",
        "summary": "Set per-surface visibility overrides for a plugin in the current workspace.",
        "description": "Set per-surface visibility overrides for a plugin in the current workspace.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "surfaces": {
                    "type": "object",
                    "additionalProperties": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "enabled",
                        "disabled",
                        null
                      ]
                    }
                  }
                },
                "required": [
                  "surfaces"
                ],
                "additionalProperties": false
              },
              "example": {
                "surfaces": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "surfaces": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string",
                        "enum": [
                          "enabled",
                          "disabled"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "surfaces"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/themes": {
      "get": {
        "operationId": "plugins.themes.list",
        "summary": "Legacy GET /api/themes.",
        "description": "Legacy GET /api/themes.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}:uninstall": {
      "post": {
        "operationId": "plugins.uninstall",
        "summary": "Uninstall an installed plugin or disable an optional bundled plugin.",
        "description": "Uninstall an installed plugin or disable an optional bundled plugin.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "purge": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "purge": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}:update": {
      "post": {
        "operationId": "plugins.update",
        "summary": "Update an installed plugin to the selected upstream revision.",
        "description": "Update an installed plugin to the selected upstream revision.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expected_commit": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "expected_commit": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}/update-preview": {
      "get": {
        "operationId": "plugins.update.preview",
        "summary": "Preview an available plugin update and rollback state.",
        "description": "Preview an available plugin update and rollback state.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "503": {
            "description": "503 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "upstream_unavailable"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins:update": {
      "post": {
        "operationId": "plugins.update.request",
        "summary": "Update one installed plugin or all updateable plugins.",
        "description": "Update one installed plugin or all updateable plugins.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "all": {
                    "type": "boolean"
                  },
                  "expected_commit": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "id": "string",
                "all": true,
                "expected_commit": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/visibility": {
      "get": {
        "operationId": "plugins.visibility.list",
        "summary": "Resolve all plugin visibility for the current project.",
        "description": "Resolve all plugin visibility for the current project.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": true,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/project-visibility": {
      "put": {
        "operationId": "plugins.visibility.project.set",
        "summary": "Set plugin visibility for the current project.",
        "description": "Set plugin visibility for the current project.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": true,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "visibility": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "enum": [
                      "enabled",
                      "disabled",
                      null
                    ]
                  }
                },
                "required": [
                  "visibility"
                ],
                "additionalProperties": false
              },
              "example": {
                "visibility": "enabled"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "project_id": {
                      "type": "string"
                    },
                    "visibility": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "enabled",
                        "disabled",
                        null
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "project_id",
                    "visibility"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/plugins/{pluginId}/visibility": {
      "get": {
        "operationId": "plugins.visibility.resolve",
        "summary": "Resolve whether a plugin is visible for the current project.",
        "description": "Resolve whether a plugin is visible for the current project.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": true,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "visible": {
                      "type": "boolean"
                    },
                    "reason": {
                      "type": "string",
                      "enum": [
                        "manual",
                        "detected",
                        "not_detected",
                        "default"
                      ]
                    },
                    "detected_files": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "visible",
                    "reason",
                    "detected_files"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/plugins/{pluginId}/workspace-visibility": {
      "get": {
        "operationId": "plugins.visibility.workspace.get",
        "summary": "Get plugin visibility for the current workspace.",
        "description": "Get plugin visibility for the current workspace.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "enabled"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "plugins.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "put": {
        "operationId": "plugins.visibility.workspace.set",
        "summary": "Set plugin visibility for the current workspace.",
        "description": "Set plugin visibility for the current workspace.",
        "tags": [
          "plugins"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "pluginId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Plugin identifier, e.g. `build-pipeline`."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "enabled"
                ],
                "additionalProperties": false
              },
              "example": {
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "enabled": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "enabled"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "write_failed"
            ]
          }
        },
        "x-recursive-capability": "plugins.manage",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": [
          "plugins"
        ]
      }
    },
    "/api/product/v1/project-lanes/assign-file": {
      "post": {
        "operationId": "project-lanes.assign-file.create",
        "summary": "Legacy POST /api/project-lanes/assign-file.",
        "description": "Legacy POST /api/project-lanes/assign-file.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/assign": {
      "post": {
        "operationId": "project-lanes.assign.create",
        "summary": "Legacy POST /api/project-lanes/assign.",
        "description": "Legacy POST /api/project-lanes/assign.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/commits/detail": {
      "get": {
        "operationId": "project-lanes.commits.detail.get",
        "summary": "Legacy GET /api/project-lanes/commits/detail.",
        "description": "Legacy GET /api/project-lanes/commits/detail.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/commits/move": {
      "post": {
        "operationId": "project-lanes.commits.move.create",
        "summary": "Legacy POST /api/project-lanes/commits/move.",
        "description": "Legacy POST /api/project-lanes/commits/move.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/commits/reorder": {
      "post": {
        "operationId": "project-lanes.commits.reorder.create",
        "summary": "Legacy POST /api/project-lanes/commits/reorder.",
        "description": "Legacy POST /api/project-lanes/commits/reorder.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/commits/squash": {
      "post": {
        "operationId": "project-lanes.commits.squash.create",
        "summary": "Legacy POST /api/project-lanes/commits/squash.",
        "description": "Legacy POST /api/project-lanes/commits/squash.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/dispose-batch": {
      "post": {
        "operationId": "project-lanes.dispose-batch.create",
        "summary": "Legacy POST /api/project-lanes/dispose-batch.",
        "description": "Legacy POST /api/project-lanes/dispose-batch.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/dispose": {
      "post": {
        "operationId": "project-lanes.dispose.create",
        "summary": "Legacy POST /api/project-lanes/dispose.",
        "description": "Legacy POST /api/project-lanes/dispose.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/finish": {
      "post": {
        "operationId": "project-lanes.finish.create",
        "summary": "Legacy POST /api/project-lanes/finish.",
        "description": "Legacy POST /api/project-lanes/finish.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes": {
      "get": {
        "operationId": "project-lanes.list",
        "summary": "Legacy GET /api/project-lanes.",
        "description": "Legacy GET /api/project-lanes.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/merge": {
      "post": {
        "operationId": "project-lanes.merge.create",
        "summary": "Legacy POST /api/project-lanes/merge.",
        "description": "Legacy POST /api/project-lanes/merge.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/open-pr": {
      "post": {
        "operationId": "project-lanes.open-pr.create",
        "summary": "Legacy POST /api/project-lanes/open-pr.",
        "description": "Legacy POST /api/project-lanes/open-pr.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/pr-drafts/create": {
      "post": {
        "operationId": "project-lanes.pr-drafts.create",
        "summary": "Legacy POST /api/project-lanes/pr-drafts/create.",
        "description": "Legacy POST /api/project-lanes/pr-drafts/create.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/pr-drafts/generate": {
      "post": {
        "operationId": "project-lanes.pr-drafts.generate",
        "summary": "Legacy POST /api/project-lanes/pr-drafts/generate.",
        "description": "Legacy POST /api/project-lanes/pr-drafts/generate.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/pr-drafts": {
      "get": {
        "operationId": "project-lanes.pr-drafts.list",
        "summary": "Legacy GET /api/project-lanes/pr-drafts.",
        "description": "Legacy GET /api/project-lanes/pr-drafts.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/push": {
      "post": {
        "operationId": "project-lanes.push.create",
        "summary": "Legacy POST /api/project-lanes/push.",
        "description": "Legacy POST /api/project-lanes/push.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-lanes/uncommit": {
      "post": {
        "operationId": "project-lanes.uncommit.create",
        "summary": "Legacy POST /api/project-lanes/uncommit.",
        "description": "Legacy POST /api/project-lanes/uncommit.",
        "tags": [
          "project-lanes"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-worktrees": {
      "get": {
        "operationId": "project-worktrees.list",
        "summary": "Legacy GET /api/project-worktrees.",
        "description": "Legacy GET /api/project-worktrees.",
        "tags": [
          "project-worktrees"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-branches": {
      "get": {
        "operationId": "projects.branches.get",
        "summary": "Legacy GET /api/project-branches.",
        "description": "Legacy GET /api/project-branches.",
        "tags": [
          "projects"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-git-branches": {
      "get": {
        "operationId": "projects.git-branches.get",
        "summary": "Legacy GET /api/project-git-branches.",
        "description": "Legacy GET /api/project-git-branches.",
        "tags": [
          "projects"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/images/upload": {
      "post": {
        "operationId": "projects.images.upload",
        "summary": "Legacy POST /api/images/upload.",
        "description": "Legacy POST /api/images/upload.",
        "tags": [
          "projects"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/project-references": {
      "get": {
        "operationId": "projects.references.list",
        "summary": "List project references for cross-plugin presentation.",
        "description": "List project references for cross-plugin presentation.",
        "tags": [
          "projects"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "color": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "icon": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "logo": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "workspace",
                          "project"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "color",
                      "kind"
                    ],
                    "additionalProperties": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "projects.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/providers/catalog": {
      "get": {
        "operationId": "providers.catalog.get",
        "summary": "List approved bundled inference providers with configuration state.",
        "description": "List approved bundled inference providers with configuration state.",
        "tags": [
          "providers"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/providers/{providerId}/settings": {
      "get": {
        "operationId": "providers.settings.get",
        "summary": "Get the user-scoped configuration for one bundled provider.",
        "description": "Get the user-scoped configuration for one bundled provider.",
        "tags": [
          "providers"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "providerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Model provider identifier, e.g. `anthropic`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "patch": {
        "operationId": "providers.settings.update",
        "summary": "Patch the user-scoped configuration for one bundled provider.",
        "description": "Patch the user-scoped configuration for one bundled provider.",
        "tags": [
          "providers"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "providerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Model provider identifier, e.g. `anthropic`."
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string"
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "apiKey": "string",
                "enabled": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/providers/{providerId}/verify": {
      "post": {
        "operationId": "providers.verify",
        "summary": "Verify configured credentials for one bundled provider.",
        "description": "Verify configured credentials for one bundled provider.",
        "tags": [
          "providers"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "providerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Model provider identifier, e.g. `anthropic`."
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/reference/tool-taxonomy": {
      "get": {
        "operationId": "reference.tool-taxonomy",
        "summary": "Describe MCP tool taxonomy by audience.",
        "description": "Describe MCP tool taxonomy by audience.",
        "tags": [
          "reference"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Tool taxonomy payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          },
          "501": {
            "description": "501 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_configured"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/schemas/entities": {
      "get": {
        "operationId": "schemas.entities.list",
        "summary": "List entity schema definitions.",
        "description": "List entity schema definitions.",
        "tags": [
          "schemas"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/schemas/fields": {
      "get": {
        "operationId": "schemas.fields.list",
        "summary": "List field type definitions.",
        "description": "List field type definitions.",
        "tags": [
          "schemas"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/embeddings/cancel": {
      "post": {
        "operationId": "search.embeddings.cancel.create",
        "summary": "Legacy POST /api/search/embeddings/cancel.",
        "description": "Legacy POST /api/search/embeddings/cancel.",
        "tags": [
          "search"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/embeddings/index-stats": {
      "get": {
        "operationId": "search.embeddings.index-stats.get",
        "summary": "Legacy GET /api/search/embeddings/index-stats.",
        "description": "Legacy GET /api/search/embeddings/index-stats.",
        "tags": [
          "search"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/embeddings/reindex": {
      "post": {
        "operationId": "search.embeddings.reindex.create",
        "summary": "Legacy POST /api/search/embeddings/reindex.",
        "description": "Legacy POST /api/search/embeddings/reindex.",
        "tags": [
          "search"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Operation accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "started": {
                      "const": true
                    },
                    "total": {
                      "type": "integer",
                      "minimum": 0
                    }
                  },
                  "required": [
                    "ok",
                    "started",
                    "total"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/embeddings/status": {
      "get": {
        "operationId": "search.embeddings.status.get",
        "summary": "Legacy GET /api/search/embeddings/status.",
        "description": "Legacy GET /api/search/embeddings/status.",
        "tags": [
          "search"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/embeddings/toggle": {
      "post": {
        "operationId": "search.embeddings.toggle.create",
        "summary": "Legacy POST /api/search/embeddings/toggle.",
        "description": "Legacy POST /api/search/embeddings/toggle.",
        "tags": [
          "search"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/search/providers": {
      "get": {
        "operationId": "search.providers.query",
        "summary": "Query explicitly selected search providers through their ordinary operation authority.",
        "description": "Query explicitly selected search providers through their ordinary operation authority.",
        "tags": [
          "search"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Free-text search across names and descriptions.",
            "schema": {
              "type": "string",
              "maxLength": 512
            }
          },
          {
            "name": "intent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "search",
                "autocomplete"
              ]
            }
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "root",
            "in": "query",
            "required": false,
            "description": "Optional file/worktree root; the provider must authorize it independently.",
            "schema": {
              "type": "string",
              "description": "Optional file/worktree root; the provider must authorize it independently."
            }
          },
          {
            "name": "entity_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "maxItems": 32,
              "items": {
                "type": "string"
              }
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "sources",
            "in": "query",
            "required": false,
            "description": "Source operation ids. An empty array selects none.",
            "schema": {
              "type": "array",
              "maxItems": 32,
              "items": {
                "type": "string"
              },
              "description": "Source operation ids. An empty array selects none."
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "surface",
            "in": "query",
            "required": false,
            "description": "Select providers advertising this surface when sources is omitted.",
            "schema": {
              "type": "string",
              "maxLength": 128,
              "description": "Select providers advertising this surface when sources is omitted."
            }
          },
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "suggestions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "entity_type": {
                            "type": "string",
                            "minLength": 1
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1
                          },
                          "description": {
                            "type": "string"
                          },
                          "icon": {
                            "type": "string"
                          },
                          "score": {
                            "type": "number"
                          },
                          "reference": {
                            "type": "object",
                            "properties": {
                              "plugin_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_type": {
                                "type": "string",
                                "minLength": 1
                              },
                              "entity_id": {
                                "type": "string",
                                "minLength": 1
                              },
                              "version": {
                                "type": "integer"
                              },
                              "label_snapshot": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "plugin_id",
                              "entity_type",
                              "entity_id"
                            ],
                            "additionalProperties": false
                          },
                          "data": {
                            "type": "object",
                            "description": "Source-owned selection metadata. No document bodies, credentials, or executable callbacks."
                          },
                          "source": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "entity_type",
                          "label",
                          "score",
                          "source"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "counts": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "integer"
                      }
                    },
                    "has_more": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "boolean"
                      }
                    },
                    "unavailable": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "suggestions",
                    "counts",
                    "has_more",
                    "unavailable"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "search.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/server-info": {
      "get": {
        "operationId": "server.info.get",
        "summary": "Workspace bootstrap payload for shell and adapters.",
        "description": "Workspace bootstrap payload for shell and adapters.",
        "tags": [
          "server"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/session-artifacts": {
      "get": {
        "operationId": "session-artifacts.list",
        "summary": "Legacy GET /api/session-artifacts.",
        "description": "Legacy GET /api/session-artifacts.",
        "tags": [
          "session-artifacts"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "description": "Open HTTP route list payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/archived": {
      "get": {
        "operationId": "sessions.archived.list",
        "summary": "Page through archived sessions with a stable cursor.",
        "description": "Page through archived sessions with a stable cursor.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/search": {
      "get": {
        "operationId": "sessions.search",
        "summary": "Keyword search over session id, title, prompt, and preview.",
        "description": "Keyword search over session id, title, prompt, and preview.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/search-content": {
      "get": {
        "operationId": "sessions.search.content",
        "summary": "Keyword search over session event and plan file contents.",
        "description": "Keyword search over session event and plan file contents.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/search-hybrid": {
      "get": {
        "operationId": "sessions.search.hybrid",
        "summary": "Hybrid keyword + semantic search over session and plan contents.",
        "description": "Hybrid keyword + semantic search over session and plan contents.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/search-semantic": {
      "get": {
        "operationId": "sessions.search.semantic",
        "summary": "Semantic search over session and plan contents.",
        "description": "Semantic search over session and plan contents.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/signal-error": {
      "post": {
        "operationId": "sessions.signal-error",
        "summary": "Mark a session as errored with a user-visible message.",
        "description": "Mark a session as errored with a user-visible message.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "session_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "session_id"
                ],
                "additionalProperties": false
              },
              "example": {
                "session_id": "string",
                "message": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/spawn": {
      "post": {
        "operationId": "sessions.spawn",
        "summary": "Create and start a session from the legacy spawn contract.",
        "description": "Create and start a session from the legacy spawn contract.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "execution_failed"
            ]
          }
        },
        "x-recursive-capability": "sessions.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/trash": {
      "delete": {
        "operationId": "sessions.trash.delete",
        "summary": "Permanently delete one trashed session directory.",
        "description": "Permanently delete one trashed session directory.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "trash_path": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "trash_path"
                ],
                "additionalProperties": false
              },
              "example": {
                "trash_path": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "get": {
        "operationId": "sessions.trash.list",
        "summary": "List trashed sessions still inside the retention window.",
        "description": "List trashed sessions still inside the retention window.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/trash/purge": {
      "post": {
        "operationId": "sessions.trash.purge",
        "summary": "Purge expired or project-scoped trashed sessions.",
        "description": "Purge expired or project-scoped trashed sessions.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/sessions/trash/restore": {
      "post": {
        "operationId": "sessions.trash.restore",
        "summary": "Restore a trashed session inside the caller-visible project scope.",
        "description": "Restore a trashed session inside the caller-visible project scope.",
        "tags": [
          "sessions"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Unique key used to safely retry this operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "trash_path": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "trash_path"
                ],
                "additionalProperties": false
              },
              "example": {
                "trash_path": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "sessions.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/agent-avatar/remove": {
      "post": {
        "operationId": "settings.agent-avatar.remove",
        "summary": "Remove the workspace agent avatar image.",
        "description": "Remove the workspace agent avatar image.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/agent-avatar/upload": {
      "post": {
        "operationId": "settings.agent-avatar.upload",
        "summary": "Upload the workspace agent avatar image.",
        "description": "Upload the workspace agent avatar image.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "data:image/*;base64,... payload"
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "data": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/avatar/remove": {
      "post": {
        "operationId": "settings.avatar.remove",
        "summary": "Remove the signed-in user avatar image.",
        "description": "Remove the signed-in user avatar image.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/avatar/upload": {
      "post": {
        "operationId": "settings.avatar.upload",
        "summary": "Upload the signed-in user avatar image.",
        "description": "Upload the signed-in user avatar image.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "data:image/*;base64,... payload"
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "data": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/mcp-issues": {
      "get": {
        "operationId": "settings.mcp-issues.get",
        "summary": "List adapter MCP connection issues from settings.",
        "description": "List adapter MCP connection issues from settings.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "post": {
        "operationId": "settings.mcp-issues.update",
        "summary": "Resolve or snooze an adapter MCP connection issue.",
        "description": "Resolve or snooze an adapter MCP connection issue.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/sounds/remove": {
      "post": {
        "operationId": "settings.sound.remove",
        "summary": "Remove an uploaded notification sound.",
        "description": "Remove an uploaded notification sound.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "slug": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "slug"
                ],
                "additionalProperties": false
              },
              "example": {
                "slug": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/sounds/upload": {
      "post": {
        "operationId": "settings.sound.upload",
        "summary": "Upload a custom notification sound.",
        "description": "Upload a custom notification sound.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "data:audio/*;base64,... payload"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "data": "string",
                "name": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/sounds": {
      "get": {
        "operationId": "settings.sounds.list",
        "summary": "List user-uploaded notification sounds.",
        "description": "List user-uploaded notification sounds.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/settings/workspace-overrides": {
      "delete": {
        "operationId": "settings.workspace-overrides.delete",
        "summary": "Clear workspace-scoped settings overrides.",
        "description": "Clear workspace-scoped settings overrides.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "get": {
        "operationId": "settings.workspace-overrides.get",
        "summary": "Read workspace-scoped settings overrides.",
        "description": "Read workspace-scoped settings overrides.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "put": {
        "operationId": "settings.workspace-overrides.put",
        "summary": "Patch workspace-scoped settings overrides.",
        "description": "Patch workspace-scoped settings overrides.",
        "tags": [
          "settings"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "settings.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/tasks/references": {
      "get": {
        "operationId": "tasks.references.list",
        "summary": "List task references for cross-plugin presentation.",
        "description": "List task references for cross-plugin presentation.",
        "tags": [
          "tasks"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "project": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "effort": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "status",
                      "project",
                      "effort"
                    ],
                    "additionalProperties": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "tasks.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/usage/dashboard": {
      "get": {
        "operationId": "usage.dashboard.get",
        "summary": "Legacy GET /api/usage/dashboard.",
        "description": "Legacy GET /api/usage/dashboard.",
        "tags": [
          "usage"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/usage/stats": {
      "get": {
        "operationId": "usage.stats.get",
        "summary": "Legacy GET /api/usage/stats.",
        "description": "Legacy GET /api/usage/stats.",
        "tags": [
          "usage"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces/active": {
      "get": {
        "operationId": "workspaces.active.get",
        "summary": "Read the active workspace manifest.",
        "description": "Read the active workspace manifest.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "404": {
            "description": "404 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "not_found"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspaces.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces/active/remove-logo": {
      "post": {
        "operationId": "workspaces.active.logo.remove",
        "summary": "Legacy POST /api/workspaces/active/remove-logo.",
        "description": "Legacy POST /api/workspaces/active/remove-logo.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces/active/upload-logo": {
      "post": {
        "operationId": "workspaces.active.logo.upload",
        "summary": "Legacy POST /api/workspaces/active/upload-logo.",
        "description": "Legacy POST /api/workspaces/active/upload-logo.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces": {
      "post": {
        "operationId": "workspaces.create",
        "summary": "Legacy POST /api/workspaces.",
        "description": "Legacy POST /api/workspaces.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "slug": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "icon": {
                      "type": "string"
                    },
                    "logoUrl": {
                      "type": "string"
                    },
                    "owner": {
                      "type": "string"
                    },
                    "members": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "server_url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "slug",
                    "name",
                    "owner",
                    "members",
                    "server_url",
                    "created_at"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "409": {
            "description": "409 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "conflict"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error",
              "invalid_argument"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      },
      "get": {
        "operationId": "workspaces.list",
        "summary": "Legacy GET /api/workspaces.",
        "description": "Legacy GET /api/workspaces.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces/loaded": {
      "get": {
        "operationId": "workspaces.loaded.get",
        "summary": "Inspect loaded workspace registry state.",
        "description": "Inspect loaded workspace registry state.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Open HTTP route payload."
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspaces.read",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces/switch": {
      "post": {
        "operationId": "workspaces.switch",
        "summary": "Legacy POST /api/workspaces/switch.",
        "description": "Legacy POST /api/workspaces/switch.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    },
    "/api/product/v1/workspaces/unload": {
      "post": {
        "operationId": "workspaces.unload",
        "summary": "Legacy POST /api/workspaces/unload.",
        "description": "Legacy POST /api/workspaces/unload.",
        "tags": [
          "workspaces"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "cookieAuth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Recursive-Project-Id",
            "in": "header",
            "required": false,
            "description": "Project scope for the operation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation completed.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {},
                      "description": "Open HTTP route list payload."
                    },
                    {
                      "type": "object",
                      "description": "Open HTTP route payload."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "invalid_argument",
              "invalid_json"
            ]
          },
          "401": {
            "description": "401 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "unauthenticated"
            ]
          },
          "403": {
            "description": "403 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "forbidden"
            ]
          },
          "500": {
            "description": "500 problem response.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "x-recursive-error-codes": [
              "internal_error"
            ]
          }
        },
        "x-recursive-capability": "workspace.write",
        "x-recursive-stability": "experimental",
        "x-recursive-result": "immediate",
        "x-recursive-emits": []
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Recursive token"
      },
      "cookieAuth": {
        "type": "apiKey",
        "in": "cookie",
        "name": "recursive_token"
      }
    },
    "schemas": {
      "Problem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "detail": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "retryable": {
            "type": "boolean"
          },
          "fix": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "pointer": {
                  "type": "string"
                },
                "keyword": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "pointer",
                "keyword",
                "message"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "type",
          "title",
          "status",
          "detail",
          "code",
          "request_id",
          "retryable"
        ],
        "additionalProperties": false
      }
    }
  },
  "externalDocs": {
    "description": "Getting started and developer resources",
    "url": "https://recursive.computer/docs/getting-started"
  },
  "tags": [
    {
      "name": "adapters",
      "description": "Adapters operations (10). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "agent-config",
      "description": "Agent-config operations (4). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "agents",
      "description": "Agents operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "api",
      "description": "Api operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "catalog",
      "description": "Catalog operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "coding",
      "description": "Coding operations (58). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "costs",
      "description": "Costs operations (4). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "dataset",
      "description": "Dataset operations (3). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "entities",
      "description": "Entities operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "greetings",
      "description": "Greetings operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "license",
      "description": "License operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "merge-queue",
      "description": "Merge-queue operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "metrics",
      "description": "Metrics operations (2). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "models",
      "description": "Models operations (5). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "operations",
      "description": "Operations operations (5). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "permissions",
      "description": "Permissions operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "plugins",
      "description": "Plugins operations (36). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "project-lanes",
      "description": "Project-lanes operations (17). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "project-worktrees",
      "description": "Project-worktrees operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "projects",
      "description": "Projects operations (4). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "providers",
      "description": "Providers operations (4). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "reference",
      "description": "Reference operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "schemas",
      "description": "Schemas operations (2). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "search",
      "description": "Search operations (6). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "server",
      "description": "Server operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "session-artifacts",
      "description": "Session-artifacts operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "sessions",
      "description": "Sessions operations (11). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "settings",
      "description": "Settings operations (12). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "tasks",
      "description": "Tasks operations (1). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "usage",
      "description": "Usage operations (2). Each operation is also available as an MCP tool and via the `recursive` CLI."
    },
    {
      "name": "workspaces",
      "description": "Workspaces operations (8). Each operation is also available as an MCP tool and via the `recursive` CLI."
    }
  ]
}