{
  "openapi": "3.1.0",
  "info": {
    "title": "Volundr",
    "description": "Volundr \u2014 self-hosted AI-native development platform",
    "version": "0.69.1"
  },
  "paths": {
    "/api/v1/volundr/feature-flags": {
      "get": {
        "tags": [
          "Features"
        ],
        "summary": "Get Feature Flags",
        "description": "Return feature flags derived from server configuration.\n\nLets the frontend adapt its UI based on what the backend supports\n(e.g. local mounts are only meaningful in k3s / CLI mode).",
        "operationId": "get_feature_flags_api_v1_volundr_feature_flags_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Get Feature Flags Api V1 Volundr Feature Flags Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/auth/config": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Get Auth Config",
        "description": "Public auth discovery endpoint for CLI and external clients.\n\nReturns OIDC configuration so CLI clients can auto-discover how\nto authenticate. This endpoint does NOT require authentication.",
        "operationId": "get_auth_config_api_v1_volundr_auth_config_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Get Auth Config Api V1 Volundr Auth Config Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions": {
      "get": {
        "tags": [
          "Sessions"
        ],
        "summary": "List Sessions",
        "description": "List all sessions. Archived sessions are excluded by default.",
        "operationId": "list_sessions_api_v1_volundr_sessions_get",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SessionStatus"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by session status",
              "title": "Status"
            },
            "description": "Filter by session status"
          },
          {
            "name": "include_archived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Include archived sessions in results",
              "default": false,
              "title": "Include Archived"
            },
            "description": "Include archived sessions in results"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SessionResponse"
                  },
                  "title": "Response List Sessions Api V1 Volundr Sessions Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Create Session",
        "description": "Create and start a new session.\n\nCreates the session record then immediately starts its pods.\nIf template_name is set, the template provides defaults for\nrepo/branch/model. The profile (explicit or from template) is\npassed to the pod manager to build task_args.",
        "operationId": "create_session_api_v1_volundr_sessions_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          }
        }
      }
    },
    "/api/v1/volundr/sessions/stream": {
      "get": {
        "tags": [
          "Sessions"
        ],
        "summary": "Stream Sessions",
        "description": "Stream real-time session updates via Server-Sent Events (SSE).\n\nThis endpoint provides a real-time stream of session events including:\n- session_created: When a new session is created\n- session_updated: When a session is updated (status, activity, etc.)\n- session_deleted: When a session is deleted\n- stats_updated: Periodic stats updates (every 30s)\n- heartbeat: Keep-alive signal (every 30s)\n\nEvents are formatted as SSE:\n```\nevent: session_updated\ndata: {\"id\": \"...\", \"status\": \"running\", ...}\n\n```",
        "operationId": "stream_sessions_api_v1_volundr_sessions_stream_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/archive-stopped": {
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Archive Stopped Sessions",
        "description": "Bulk archive all stopped sessions.",
        "operationId": "archive_stopped_sessions_api_v1_volundr_sessions_archive_stopped_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "title": "Response Archive Stopped Sessions Api V1 Volundr Sessions Archive Stopped Post"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}": {
      "get": {
        "tags": [
          "Sessions"
        ],
        "summary": "Get Session",
        "description": "Get a session by ID.",
        "operationId": "get_session_api_v1_volundr_sessions__session_id__get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Sessions"
        ],
        "summary": "Update Session",
        "description": "Update a session.",
        "operationId": "update_session_api_v1_volundr_sessions__session_id__put",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Sessions"
        ],
        "summary": "Delete Session",
        "description": "Delete a session with optional resource cleanup.",
        "operationId": "delete_session_api_v1_volundr_sessions__session_id__delete",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DeleteSessionBody"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/start": {
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Start Session",
        "description": "Restart a session's pods.\n\nUsed to relaunch a stopped or failed session. An optional\nprofile_name in the body overrides the default profile.",
        "operationId": "start_session_api_v1_volundr_sessions__session_id__start_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/SessionStart"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Data"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/stop": {
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Stop Session",
        "description": "Stop a session's pods.",
        "operationId": "stop_session_api_v1_volundr_sessions__session_id__stop_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/activity": {
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Report Activity",
        "description": "Report a session activity state change from Skuld.\n\nUpdates the session's activity_state and broadcasts a\nsession_activity SSE event for downstream consumers (e.g. Tyr).",
        "operationId": "report_activity_api_v1_volundr_sessions__session_id__activity_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityReport"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Unprocessable Entity"
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/archive": {
      "patch": {
        "tags": [
          "Sessions"
        ],
        "summary": "Archive Session",
        "description": "Archive a session. Stops pod if running.",
        "operationId": "archive_session_api_v1_volundr_sessions__session_id__archive_patch",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/restore": {
      "patch": {
        "tags": [
          "Sessions"
        ],
        "summary": "Restore Session",
        "description": "Restore an archived session to stopped state.",
        "operationId": "restore_session_api_v1_volundr_sessions__session_id__restore_patch",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/models": {
      "get": {
        "tags": [
          "Models & Stats"
        ],
        "summary": "List Models",
        "description": "List available models.",
        "operationId": "list_models_api_v1_volundr_models_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ModelInfo"
                  },
                  "type": "array",
                  "title": "Response List Models Api V1 Volundr Models Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/stats": {
      "get": {
        "tags": [
          "Models & Stats"
        ],
        "summary": "Get Stats",
        "description": "Get aggregate statistics for the dashboard.",
        "operationId": "get_stats_api_v1_volundr_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/usage": {
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Report Token Usage",
        "description": "Report token usage for a session.",
        "operationId": "report_token_usage_api_v1_volundr_sessions__session_id__usage_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenUsageReport"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenUsageResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/logs": {
      "get": {
        "tags": [
          "Sessions"
        ],
        "summary": "Get Session Logs",
        "description": "Proxy log retrieval from a running session pod.\n\nFetches logs from the Skuld broker's in-memory log buffer via its\n``GET /api/logs`` endpoint.",
        "operationId": "get_session_logs_api_v1_volundr_sessions__session_id__logs_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          },
          {
            "name": "lines",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2000,
              "minimum": 1,
              "description": "Number of log lines to retrieve",
              "default": 100,
              "title": "Lines"
            },
            "description": "Number of log lines to retrieve"
          },
          {
            "name": "level",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Minimum log level (DEBUG, INFO, WARNING, ERROR)",
              "default": "DEBUG",
              "title": "Level"
            },
            "description": "Minimum log level (DEBUG, INFO, WARNING, ERROR)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Session Logs Api V1 Volundr Sessions  Session Id  Logs Get"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Bad Gateway"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/messages": {
      "post": {
        "tags": [
          "Sessions"
        ],
        "summary": "Send Session Message",
        "description": "Send a user message to a running session via its WebSocket.",
        "operationId": "send_session_message_api_v1_volundr_sessions__session_id__messages_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Send Session Message Api V1 Volundr Sessions  Session Id  Messages Post"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Bad Gateway"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/conversation": {
      "get": {
        "tags": [
          "Sessions"
        ],
        "summary": "Get Conversation",
        "description": "Proxy conversation history retrieval from a running session pod.",
        "operationId": "get_conversation_api_v1_volundr_sessions__session_id__conversation_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Conversation Api V1 Volundr Sessions  Session Id  Conversation Get"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Bad Gateway"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/providers": {
      "get": {
        "tags": [
          "Repositories"
        ],
        "summary": "List Providers",
        "description": "List all configured git providers.",
        "operationId": "list_providers_api_v1_volundr_providers_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProviderResponse"
                  },
                  "type": "array",
                  "title": "Response List Providers Api V1 Volundr Providers Get"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/repos/branches": {
      "get": {
        "tags": [
          "Repositories"
        ],
        "summary": "List Branches",
        "description": "List branches for a repository using the user's credentials.",
        "operationId": "list_branches_api_v1_volundr_repos_branches_get",
        "parameters": [
          {
            "name": "repo_url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Repository URL",
              "title": "Repo Url"
            },
            "description": "Repository URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "title": "Response List Branches Api V1 Volundr Repos Branches Get"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/chronicle": {
      "post": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Report Chronicle",
        "description": "Ingest chronicle data reported by the Skuld broker at shutdown.\n\nCreates a new DRAFT chronicle or enriches an existing one.\nMirrors the ``/sessions/{id}/usage`` pattern for token reporting.",
        "operationId": "report_chronicle_api_v1_volundr_sessions__session_id__chronicle_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BrokerChronicleReport"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChronicleResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Get Session Chronicle",
        "description": "Get the most recent chronicle for a session.",
        "operationId": "get_session_chronicle_api_v1_volundr_sessions__session_id__chronicle_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique session identifier",
              "title": "Session Id"
            },
            "description": "Unique session identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChronicleResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/chronicles": {
      "get": {
        "tags": [
          "Chronicles"
        ],
        "summary": "List Chronicles",
        "description": "List chronicles with optional filters.",
        "operationId": "list_chronicles_api_v1_volundr_chronicles_get",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by project name",
              "title": "Project"
            },
            "description": "Filter by project name"
          },
          {
            "name": "repo",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by repository URL",
              "title": "Repo"
            },
            "description": "Filter by repository URL"
          },
          {
            "name": "model_name",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by LLM model name",
              "title": "Model Name"
            },
            "description": "Filter by LLM model name"
          },
          {
            "name": "tags",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated tags to filter by",
              "title": "Tags"
            },
            "description": "Comma-separated tags to filter by"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "description": "Maximum number of results to return",
              "default": 50,
              "title": "Limit"
            },
            "description": "Maximum number of results to return"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of results to skip for pagination",
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of results to skip for pagination"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChronicleResponse"
                  },
                  "title": "Response List Chronicles Api V1 Volundr Chronicles Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Create Chronicle",
        "description": "Create a chronicle from a session's current state.",
        "operationId": "create_chronicle_api_v1_volundr_chronicles_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChronicleCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChronicleResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/chronicles/{chronicle_id}": {
      "get": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Get Chronicle",
        "description": "Get a chronicle by ID.",
        "operationId": "get_chronicle_api_v1_volundr_chronicles__chronicle_id__get",
        "parameters": [
          {
            "name": "chronicle_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique chronicle identifier",
              "title": "Chronicle Id"
            },
            "description": "Unique chronicle identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChronicleResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Update Chronicle",
        "description": "Update a chronicle's mutable fields.",
        "operationId": "update_chronicle_api_v1_volundr_chronicles__chronicle_id__patch",
        "parameters": [
          {
            "name": "chronicle_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique chronicle identifier",
              "title": "Chronicle Id"
            },
            "description": "Unique chronicle identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChronicleUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChronicleResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Delete Chronicle",
        "description": "Delete a chronicle.",
        "operationId": "delete_chronicle_api_v1_volundr_chronicles__chronicle_id__delete",
        "parameters": [
          {
            "name": "chronicle_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique chronicle identifier",
              "title": "Chronicle Id"
            },
            "description": "Unique chronicle identifier"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/chronicles/{chronicle_id}/reforge": {
      "post": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Reforge Chronicle",
        "description": "Relaunch a session from a chronicle entry.",
        "operationId": "reforge_chronicle_api_v1_volundr_chronicles__chronicle_id__reforge_post",
        "parameters": [
          {
            "name": "chronicle_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique chronicle identifier",
              "title": "Chronicle Id"
            },
            "description": "Unique chronicle identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/chronicles/{chronicle_id}/chain": {
      "get": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Get Chronicle Chain",
        "description": "Get the full reforge chain for a chronicle.",
        "operationId": "get_chronicle_chain_api_v1_volundr_chronicles__chronicle_id__chain_get",
        "parameters": [
          {
            "name": "chronicle_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique chronicle identifier",
              "title": "Chronicle Id"
            },
            "description": "Unique chronicle identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChronicleResponse"
                  },
                  "title": "Response Get Chronicle Chain Api V1 Volundr Chronicles  Chronicle Id  Chain Get"
                }
              }
            }
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/chronicles/{session_id}/timeline": {
      "get": {
        "tags": [
          "Timeline"
        ],
        "summary": "Get Timeline",
        "description": "Get the event timeline for a session's chronicle.",
        "operationId": "get_timeline_api_v1_volundr_chronicles__session_id__timeline_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session identifier for timeline lookup",
              "title": "Session Id"
            },
            "description": "Session identifier for timeline lookup"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimelineResponseModel"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Timeline"
        ],
        "summary": "Add Timeline Event",
        "description": "Add a timeline event for a session's chronicle.",
        "operationId": "add_timeline_event_api_v1_volundr_chronicles__session_id__timeline_post",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session identifier for timeline lookup",
              "title": "Session Id"
            },
            "description": "Session identifier for timeline lookup"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimelineEventCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimelineEventResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/chronicles/{session_id}/diff": {
      "get": {
        "tags": [
          "Chronicles"
        ],
        "summary": "Get Chronicle Diff",
        "description": "Get git diff for a file in a session workspace via Skuld.",
        "operationId": "get_chronicle_diff_api_v1_volundr_chronicles__session_id__diff_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session identifier for diff lookup",
              "title": "Session Id"
            },
            "description": "Session identifier for diff lookup"
          },
          {
            "name": "file",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "File path relative to workspace",
              "title": "File"
            },
            "description": "File path relative to workspace"
          },
          {
            "name": "base",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Diff base: last-commit or default-branch",
              "default": "last-commit",
              "title": "Base"
            },
            "description": "Diff base: last-commit or default-branch"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Chronicle Diff Api V1 Volundr Chronicles  Session Id  Diff Get"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest__ErrorResponse"
                }
              }
            },
            "description": "Bad Gateway"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/workspaces": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "summary": "List Workspaces",
        "description": "List the current user's workspaces.",
        "operationId": "list_workspaces_api_v1_volundr_workspaces_get",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by workspace status (active, archived)",
              "title": "Status"
            },
            "description": "Filter by workspace status (active, archived)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkspaceResponse"
                  },
                  "title": "Response List Workspaces Api V1 Volundr Workspaces Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/workspaces/{session_id}": {
      "delete": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Delete Workspace",
        "description": "Delete a workspace PVC by session ID.",
        "operationId": "delete_workspace_api_v1_volundr_workspaces__session_id__delete",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session identifier whose workspace to delete",
              "title": "Session Id"
            },
            "description": "Session identifier whose workspace to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/admin/workspaces": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "List All Workspaces",
        "description": "List all workspaces (admin only).",
        "operationId": "list_all_workspaces_api_v1_volundr_admin_workspaces_get",
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by user ID (IDP sub claim)",
              "title": "User Id"
            },
            "description": "Filter by user ID (IDP sub claim)"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by workspace status (active, archived)",
              "title": "Status"
            },
            "description": "Filter by workspace status (active, archived)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkspaceResponse"
                  },
                  "title": "Response List All Workspaces Api V1 Volundr Admin Workspaces Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/workspaces/bulk-delete": {
      "post": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Bulk Delete Workspaces",
        "description": "Delete multiple workspaces by session IDs.",
        "operationId": "bulk_delete_workspaces_api_v1_volundr_workspaces_bulk_delete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "type": "object",
                "title": "Body"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/admin/workspaces/bulk-delete": {
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "Admin Bulk Delete Workspaces",
        "description": "Delete multiple workspaces by session IDs (admin).",
        "operationId": "admin_bulk_delete_workspaces_api_v1_volundr_admin_workspaces_bulk_delete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": true,
                "type": "object",
                "title": "Body"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/profiles": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "summary": "List Profiles",
        "description": "List all forge profiles.",
        "operationId": "list_profiles_api_v1_volundr_profiles_get",
        "parameters": [
          {
            "name": "workload_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by workload type (e.g. session)",
              "title": "Workload Type"
            },
            "description": "Filter by workload type (e.g. session)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  },
                  "title": "Response List Profiles Api V1 Volundr Profiles Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Profiles"
        ],
        "summary": "Create Profile",
        "description": "Create a new forge profile.",
        "operationId": "create_profile_api_v1_volundr_profiles_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/profiles/{profile_name}": {
      "get": {
        "tags": [
          "Profiles"
        ],
        "summary": "Get Profile",
        "description": "Get a forge profile by name.",
        "operationId": "get_profile_api_v1_volundr_profiles__profile_name__get",
        "parameters": [
          {
            "name": "profile_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Profile name to retrieve",
              "title": "Profile Name"
            },
            "description": "Profile name to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Profiles"
        ],
        "summary": "Update Profile",
        "description": "Update an existing forge profile.",
        "operationId": "update_profile_api_v1_volundr_profiles__profile_name__put",
        "parameters": [
          {
            "name": "profile_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Profile name to update",
              "title": "Profile Name"
            },
            "description": "Profile name to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Profiles"
        ],
        "summary": "Delete Profile",
        "description": "Delete a forge profile.",
        "operationId": "delete_profile_api_v1_volundr_profiles__profile_name__delete",
        "parameters": [
          {
            "name": "profile_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Profile name to delete",
              "title": "Profile Name"
            },
            "description": "Profile name to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/templates": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "List Templates",
        "description": "List all workspace templates (loaded from configuration).",
        "operationId": "list_templates_api_v1_volundr_templates_get",
        "parameters": [
          {
            "name": "workload_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by workload type (e.g. session)",
              "title": "Workload Type"
            },
            "description": "Filter by workload type (e.g. session)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemplateResponse"
                  },
                  "title": "Response List Templates Api V1 Volundr Templates Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/templates/{template_name}": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "Get Template",
        "description": "Get a workspace template by name (loaded from configuration).",
        "operationId": "get_template_api_v1_volundr_templates__template_name__get",
        "parameters": [
          {
            "name": "template_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Template name to retrieve",
              "title": "Template Name"
            },
            "description": "Template name to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_profiles__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/resources": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get Cluster Resources",
        "description": "Discover available cluster resource types and capacity.",
        "operationId": "get_cluster_resources_api_v1_volundr_resources_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClusterResourceInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/mcp-servers": {
      "get": {
        "tags": [
          "MCP Servers"
        ],
        "summary": "List Mcp Servers",
        "description": "List available MCP server configurations.",
        "operationId": "list_mcp_servers_api_v1_volundr_mcp_servers_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MCPServerResponse"
                  },
                  "type": "array",
                  "title": "Response List Mcp Servers Api V1 Volundr Mcp Servers Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/mcp-servers/{server_name}": {
      "get": {
        "tags": [
          "MCP Servers"
        ],
        "summary": "Get Mcp Server",
        "description": "Get an MCP server configuration by name.",
        "operationId": "get_mcp_server_api_v1_volundr_mcp_servers__server_name__get",
        "parameters": [
          {
            "name": "server_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "MCP server name to retrieve",
              "title": "Server Name"
            },
            "description": "MCP server name to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MCPServerResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_secrets__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/secrets": {
      "get": {
        "tags": [
          "Secrets"
        ],
        "summary": "List Secrets",
        "description": "List available Kubernetes secrets (metadata only, no values).",
        "operationId": "list_secrets_api_v1_volundr_secrets_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SecretResponse"
                  },
                  "type": "array",
                  "title": "Response List Secrets Api V1 Volundr Secrets Get"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Secrets"
        ],
        "summary": "Create Secret",
        "description": "Create a new Kubernetes secret.\n\nThe secret is automatically labeled for discovery by the secrets list endpoint.\nSecret values are never returned in responses.",
        "operationId": "create_secret_api_v1_volundr_secrets_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecretCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_secrets__ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_secrets__ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/secrets/{secret_name}": {
      "get": {
        "tags": [
          "Secrets"
        ],
        "summary": "Get Secret",
        "description": "Get a Kubernetes secret's metadata by name.",
        "operationId": "get_secret_api_v1_volundr_secrets__secret_name__get",
        "parameters": [
          {
            "name": "secret_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Kubernetes secret name to retrieve",
              "title": "Secret Name"
            },
            "description": "Kubernetes secret name to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_secrets__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/prompts": {
      "get": {
        "tags": [
          "Prompts"
        ],
        "summary": "List Prompts",
        "description": "List saved prompts with optional scope/repo filter.",
        "operationId": "list_prompts_api_v1_volundr_prompts_get",
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/PromptScope"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by scope (global or project)",
              "title": "Scope"
            },
            "description": "Filter by scope (global or project)"
          },
          {
            "name": "repo",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by repository URL",
              "title": "Repo"
            },
            "description": "Filter by repository URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PromptResponse"
                  },
                  "title": "Response List Prompts Api V1 Volundr Prompts Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Prompts"
        ],
        "summary": "Create Prompt",
        "description": "Create a new saved prompt.",
        "operationId": "create_prompt_api_v1_volundr_prompts_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromptCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromptResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/prompts/{prompt_id}": {
      "put": {
        "tags": [
          "Prompts"
        ],
        "summary": "Update Prompt",
        "description": "Update a saved prompt.",
        "operationId": "update_prompt_api_v1_volundr_prompts__prompt_id__put",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique identifier of the prompt to update",
              "title": "Prompt Id"
            },
            "description": "Unique identifier of the prompt to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromptUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromptResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_prompts__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Prompts"
        ],
        "summary": "Delete Prompt",
        "description": "Delete a saved prompt.",
        "operationId": "delete_prompt_api_v1_volundr_prompts__prompt_id__delete",
        "parameters": [
          {
            "name": "prompt_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique identifier of the prompt to delete",
              "title": "Prompt Id"
            },
            "description": "Unique identifier of the prompt to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_prompts__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/prompts/search": {
      "get": {
        "tags": [
          "Prompts"
        ],
        "summary": "Search Prompts",
        "description": "Search saved prompts by name and content.",
        "operationId": "search_prompts_api_v1_volundr_prompts_search_get",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "Search query to match against prompt name and content",
              "title": "Q"
            },
            "description": "Search query to match against prompt name and content"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PromptResponse"
                  },
                  "title": "Response Search Prompts Api V1 Volundr Prompts Search Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/presets": {
      "get": {
        "tags": [
          "Presets"
        ],
        "summary": "List Presets",
        "description": "List presets with optional filters.",
        "operationId": "list_presets_api_v1_volundr_presets_get",
        "parameters": [
          {
            "name": "cli_tool",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by CLI tool (e.g. claude, aider)",
              "title": "Cli Tool"
            },
            "description": "Filter by CLI tool (e.g. claude, aider)"
          },
          {
            "name": "is_default",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by default flag",
              "title": "Is Default"
            },
            "description": "Filter by default flag"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PresetResponse"
                  },
                  "title": "Response List Presets Api V1 Volundr Presets Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Presets"
        ],
        "summary": "Create Preset",
        "description": "Create a new preset.",
        "operationId": "create_preset_api_v1_volundr_presets_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PresetCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresetResponse"
                }
              }
            }
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_presets__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/presets/{preset_id}": {
      "get": {
        "tags": [
          "Presets"
        ],
        "summary": "Get Preset",
        "description": "Get a preset by ID.",
        "operationId": "get_preset_api_v1_volundr_presets__preset_id__get",
        "parameters": [
          {
            "name": "preset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique preset identifier",
              "title": "Preset Id"
            },
            "description": "Unique preset identifier"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresetResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_presets__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Presets"
        ],
        "summary": "Update Preset",
        "description": "Update a preset.",
        "operationId": "update_preset_api_v1_volundr_presets__preset_id__put",
        "parameters": [
          {
            "name": "preset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique preset identifier",
              "title": "Preset Id"
            },
            "description": "Unique preset identifier"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PresetUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresetResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_presets__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_presets__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Presets"
        ],
        "summary": "Delete Preset",
        "description": "Delete a preset.",
        "operationId": "delete_preset_api_v1_volundr_presets__preset_id__delete",
        "parameters": [
          {
            "name": "preset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Unique preset identifier",
              "title": "Preset Id"
            },
            "description": "Unique preset identifier"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_presets__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/repos/prs": {
      "post": {
        "tags": [
          "Repositories"
        ],
        "summary": "Create Pr",
        "description": "Create a pull request from a session.",
        "operationId": "create_pr_api_v1_volundr_repos_prs_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PRCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PullRequestResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_git__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_git__ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Repositories"
        ],
        "summary": "List Prs",
        "description": "List pull requests for a repository.",
        "operationId": "list_prs_api_v1_volundr_repos_prs_get",
        "parameters": [
          {
            "name": "repo_url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Repository URL",
              "title": "Repo Url"
            },
            "description": "Repository URL"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Filter by status (open, closed, merged, all)",
              "default": "open",
              "title": "Status"
            },
            "description": "Filter by status (open, closed, merged, all)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PullRequestResponse"
                  },
                  "title": "Response List Prs Api V1 Volundr Repos Prs Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/repos/prs/{pr_number}": {
      "get": {
        "tags": [
          "Repositories"
        ],
        "summary": "Get Pr",
        "description": "Get a pull request by number.",
        "operationId": "get_pr_api_v1_volundr_repos_prs__pr_number__get",
        "parameters": [
          {
            "name": "pr_number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Pull request number",
              "title": "Pr Number"
            },
            "description": "Pull request number"
          },
          {
            "name": "repo_url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Repository URL",
              "title": "Repo Url"
            },
            "description": "Repository URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PullRequestResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_git__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/repos/prs/{pr_number}/merge": {
      "post": {
        "tags": [
          "Repositories"
        ],
        "summary": "Merge Pr",
        "description": "Merge a pull request.",
        "operationId": "merge_pr_api_v1_volundr_repos_prs__pr_number__merge_post",
        "parameters": [
          {
            "name": "pr_number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Pull request number",
              "title": "Pr Number"
            },
            "description": "Pull request number"
          },
          {
            "name": "repo_url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Repository URL",
              "title": "Repo Url"
            },
            "description": "Repository URL"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PRMergeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeResultResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_git__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_git__ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/repos/prs/{pr_number}/ci": {
      "get": {
        "tags": [
          "Repositories"
        ],
        "summary": "Get Ci Status",
        "description": "Get CI status for a branch.",
        "operationId": "get_ci_status_api_v1_volundr_repos_prs__pr_number__ci_get",
        "parameters": [
          {
            "name": "pr_number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Pull request number",
              "title": "Pr Number"
            },
            "description": "Pull request number"
          },
          {
            "name": "repo_url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Repository URL",
              "title": "Repo Url"
            },
            "description": "Repository URL"
          },
          {
            "name": "branch",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Branch name",
              "title": "Branch"
            },
            "description": "Branch name"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CIStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/repos/confidence": {
      "post": {
        "tags": [
          "Repositories"
        ],
        "summary": "Calculate Confidence",
        "description": "Calculate merge confidence for a set of changes.",
        "operationId": "calculate_confidence_api_v1_volundr_repos_confidence_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfidenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeConfidenceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/me": {
      "get": {
        "tags": [
          "Tenants",
          "Identity"
        ],
        "summary": "Get Me",
        "description": "Get the current authenticated user's identity.",
        "operationId": "get_me_api_v1_volundr_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/users": {
      "get": {
        "tags": [
          "Tenants",
          "Users"
        ],
        "summary": "List Users",
        "description": "List all users (admin only).",
        "operationId": "list_users_api_v1_volundr_users_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserResponse"
                  },
                  "type": "array",
                  "title": "Response List Users Api V1 Volundr Users Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tenants": {
      "get": {
        "tags": [
          "Tenants"
        ],
        "summary": "List Tenants",
        "description": "List tenants.",
        "operationId": "list_tenants_api_v1_volundr_tenants_get",
        "parameters": [
          {
            "name": "parent_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by parent tenant ID",
              "title": "Parent Id"
            },
            "description": "Filter by parent tenant ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TenantResponse"
                  },
                  "title": "Response List Tenants Api V1 Volundr Tenants Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "Create Tenant",
        "description": "Create a new tenant (admin only).",
        "operationId": "create_tenant_api_v1_volundr_tenants_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TenantCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tenants/{tenant_id}": {
      "get": {
        "tags": [
          "Tenants"
        ],
        "summary": "Get Tenant",
        "description": "Get a tenant by ID.",
        "operationId": "get_tenant_api_v1_volundr_tenants__tenant_id__get",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tenants"
        ],
        "summary": "Delete Tenant",
        "description": "Delete a tenant (admin only).",
        "operationId": "delete_tenant_api_v1_volundr_tenants__tenant_id__delete",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Tenants"
        ],
        "summary": "Update Tenant",
        "description": "Update tenant settings (admin only).",
        "operationId": "update_tenant_api_v1_volundr_tenants__tenant_id__put",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TenantUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tenants/{tenant_id}/members": {
      "get": {
        "tags": [
          "Tenants"
        ],
        "summary": "List Members",
        "description": "List members of a tenant.",
        "operationId": "list_members_api_v1_volundr_tenants__tenant_id__members_get",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MemberResponse"
                  },
                  "title": "Response List Members Api V1 Volundr Tenants  Tenant Id  Members Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "Add Member",
        "description": "Add a member to a tenant (admin only).",
        "operationId": "add_member_api_v1_volundr_tenants__tenant_id__members_post",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tenants/{tenant_id}/members/{user_id}": {
      "delete": {
        "tags": [
          "Tenants"
        ],
        "summary": "Remove Member",
        "description": "Remove a member from a tenant (admin only).",
        "operationId": "remove_member_api_v1_volundr_tenants__tenant_id__members__user_id__delete",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/users/{user_id}/reprovision": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "Reprovision User",
        "description": "Re-provision storage for a user (admin only).",
        "operationId": "reprovision_user_api_v1_volundr_users__user_id__reprovision_post",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tenants/{tenant_id}/reprovision": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "Reprovision Tenant",
        "description": "Re-provision storage for all users in a tenant (admin only).",
        "operationId": "reprovision_tenant_api_v1_volundr_tenants__tenant_id__reprovision_post",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/admin/settings": {
      "get": {
        "tags": [
          "Admin Settings"
        ],
        "summary": "Get Admin Settings",
        "description": "Get admin settings (admin only).",
        "operationId": "get_admin_settings_api_v1_volundr_admin_settings_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSettingsResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Admin Settings"
        ],
        "summary": "Update Admin Settings",
        "description": "Update admin settings (admin only).",
        "operationId": "update_admin_settings_api_v1_volundr_admin_settings_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminSettingsUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSettingsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/credentials/types": {
      "get": {
        "tags": [
          "Credentials"
        ],
        "summary": "List Credential Types",
        "description": "List available credential types with field info.",
        "operationId": "list_credential_types_api_v1_volundr_credentials_types_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SecretTypeInfoResponse"
                  },
                  "type": "array",
                  "title": "Response List Credential Types Api V1 Volundr Credentials Types Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/credentials": {
      "get": {
        "tags": [
          "Credentials"
        ],
        "summary": "List Credentials",
        "description": "List the current user's credentials (metadata only).",
        "operationId": "list_credentials_api_v1_volundr_credentials_get",
        "parameters": [
          {
            "name": "secret_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by secret type (api_key, oauth_token, etc.)",
              "title": "Secret Type"
            },
            "description": "Filter by secret type (api_key, oauth_token, etc.)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Credentials"
        ],
        "summary": "Create Credential",
        "description": "Create a credential for the current user.",
        "operationId": "create_credential_api_v1_volundr_credentials_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/credentials/{name}": {
      "get": {
        "tags": [
          "Credentials"
        ],
        "summary": "Get Credential",
        "description": "Get a credential's metadata by name.",
        "operationId": "get_credential_api_v1_volundr_credentials__name__get",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Credential name to retrieve",
              "title": "Name"
            },
            "description": "Credential name to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Credentials"
        ],
        "summary": "Delete Credential",
        "description": "Delete a credential for the current user.",
        "operationId": "delete_credential_api_v1_volundr_credentials__name__delete",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Credential name to delete",
              "title": "Name"
            },
            "description": "Credential name to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/credentials/tenant/list": {
      "get": {
        "tags": [
          "Credentials"
        ],
        "summary": "List Tenant Credentials",
        "description": "List tenant shared credentials (admin only).",
        "operationId": "list_tenant_credentials_api_v1_volundr_credentials_tenant_list_get",
        "parameters": [
          {
            "name": "secret_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by secret type (api_key, oauth_token, etc.)",
              "title": "Secret Type"
            },
            "description": "Filter by secret type (api_key, oauth_token, etc.)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/credentials/tenant": {
      "post": {
        "tags": [
          "Credentials"
        ],
        "summary": "Create Tenant Credential",
        "description": "Create a tenant shared credential (admin only).",
        "operationId": "create_tenant_credential_api_v1_volundr_credentials_tenant_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/credentials/tenant/{name}": {
      "delete": {
        "tags": [
          "Credentials"
        ],
        "summary": "Delete Tenant Credential",
        "description": "Delete a tenant shared credential (admin only).",
        "operationId": "delete_tenant_credential_api_v1_volundr_credentials_tenant__name__delete",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Tenant credential name to delete",
              "title": "Name"
            },
            "description": "Tenant credential name to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/events": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Ingest Event",
        "description": "Ingest a single session event into the pipeline.",
        "operationId": "ingest_event_api_v1_volundr_events_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventIngestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionEventResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/events/batch": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Ingest Event Batch",
        "description": "Ingest a batch of session events into the pipeline.",
        "operationId": "ingest_event_batch_api_v1_volundr_events_batch_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventBatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SessionEventResponse"
                  },
                  "type": "array",
                  "title": "Response Ingest Event Batch Api V1 Volundr Events Batch Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/events": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Session Events",
        "description": "Query events for a session.",
        "operationId": "get_session_events_api_v1_volundr_sessions__session_id__events_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session UUID to query events for",
              "title": "Session Id"
            },
            "description": "Session UUID to query events for"
          },
          {
            "name": "event_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by event type (e.g. message_user)",
              "title": "Event Type"
            },
            "description": "Filter by event type (e.g. message_user)"
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Return events after this ISO 8601 timestamp",
              "title": "After"
            },
            "description": "Return events after this ISO 8601 timestamp"
          },
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Return events before this ISO 8601 timestamp",
              "title": "Before"
            },
            "description": "Return events before this ISO 8601 timestamp"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2000,
              "minimum": 1,
              "description": "Maximum number of events to return",
              "default": 200,
              "title": "Limit"
            },
            "description": "Maximum number of events to return"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of events to skip for pagination",
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of events to skip for pagination"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SessionEventResponse"
                  },
                  "title": "Response Get Session Events Api V1 Volundr Sessions  Session Id  Events Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/events/counts": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Event Counts",
        "description": "Get event type counts for a session.",
        "operationId": "get_event_counts_api_v1_volundr_sessions__session_id__events_counts_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session UUID to get event counts for",
              "title": "Session Id"
            },
            "description": "Session UUID to get event counts for"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "integer"
                  },
                  "title": "Response Get Event Counts Api V1 Volundr Sessions  Session Id  Events Counts Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/sessions/{session_id}/events/tokens": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Token Timeline",
        "description": "Get token burn timeline for a session.",
        "operationId": "get_token_timeline_api_v1_volundr_sessions__session_id__events_tokens_get",
        "parameters": [
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Session UUID to get token timeline for",
              "title": "Session Id"
            },
            "description": "Session UUID to get token timeline for"
          },
          {
            "name": "bucket_seconds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 3600,
              "minimum": 60,
              "description": "Time bucket size in seconds for aggregation",
              "default": 300,
              "title": "Bucket Seconds"
            },
            "description": "Time bucket size in seconds for aggregation"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "title": "Response Get Token Timeline Api V1 Volundr Sessions  Session Id  Events Tokens Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/events/health": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get Sink Health",
        "description": "Get health status of all event sinks.",
        "operationId": "get_sink_health_api_v1_volundr_events_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SinkHealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/integrations/catalog": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List Catalog",
        "description": "List all available integration definitions from the catalog.",
        "operationId": "list_catalog_api_v1_volundr_integrations_catalog_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CatalogEntryResponse"
                  },
                  "type": "array",
                  "title": "Response List Catalog Api V1 Volundr Integrations Catalog Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/integrations": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "List Integrations",
        "description": "List the current user's integration connections.",
        "operationId": "list_integrations_api_v1_volundr_integrations_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IntegrationResponse"
                  },
                  "type": "array",
                  "title": "Response List Integrations Api V1 Volundr Integrations Get"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Create Integration",
        "description": "Create a new integration connection.",
        "operationId": "create_integration_api_v1_volundr_integrations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/integrations/{connection_id}": {
      "put": {
        "tags": [
          "Integrations"
        ],
        "summary": "Update Integration",
        "description": "Update an integration connection.",
        "operationId": "update_integration_api_v1_volundr_integrations__connection_id__put",
        "parameters": [
          {
            "name": "connection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Integration connection UUID to update",
              "title": "Connection Id"
            },
            "description": "Integration connection UUID to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Integrations"
        ],
        "summary": "Delete Integration",
        "description": "Delete an integration connection.",
        "operationId": "delete_integration_api_v1_volundr_integrations__connection_id__delete",
        "parameters": [
          {
            "name": "connection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Integration connection UUID to delete",
              "title": "Connection Id"
            },
            "description": "Integration connection UUID to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/integrations/{connection_id}/test": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Test Integration",
        "description": "Test an integration connection by instantiating the adapter.",
        "operationId": "test_integration_api_v1_volundr_integrations__connection_id__test_post",
        "parameters": [
          {
            "name": "connection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Integration connection UUID to test",
              "title": "Connection Id"
            },
            "description": "Integration connection UUID to test"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationTestResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tracker/status": {
      "get": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "Get Status",
        "description": "Check the connection to the issue tracker.",
        "operationId": "get_status_api_v1_volundr_tracker_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tracker/issues": {
      "get": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "Search Issues",
        "description": "Search issues by query string.",
        "operationId": "search_issues_api_v1_volundr_tracker_issues_get",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "Search query string",
              "title": "Q"
            },
            "description": "Search query string"
          },
          {
            "name": "project_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by tracker project ID",
              "title": "Project Id"
            },
            "description": "Filter by tracker project ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IssueResponse"
                  },
                  "title": "Response Search Issues Api V1 Volundr Tracker Issues Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tracker/issues/recent": {
      "get": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "Get Recent Issues",
        "description": "Get recent issues for a project.",
        "operationId": "get_recent_issues_api_v1_volundr_tracker_issues_recent_get",
        "parameters": [
          {
            "name": "project_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Tracker project ID",
              "title": "Project Id"
            },
            "description": "Tracker project ID"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Maximum number of issues to return",
              "default": 10,
              "title": "Limit"
            },
            "description": "Maximum number of issues to return"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IssueResponse"
                  },
                  "title": "Response Get Recent Issues Api V1 Volundr Tracker Issues Recent Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tracker/issues/{issue_id}": {
      "patch": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "Update Issue",
        "description": "Update the status of an issue.",
        "operationId": "update_issue_api_v1_volundr_tracker_issues__issue_id__patch",
        "parameters": [
          {
            "name": "issue_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Issue Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueStatusUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssueResponse"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_tracker__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tracker/mappings": {
      "get": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "List Mappings",
        "description": "List all project mappings.",
        "operationId": "list_mappings_api_v1_volundr_tracker_mappings_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MappingResponse"
                  },
                  "type": "array",
                  "title": "Response List Mappings Api V1 Volundr Tracker Mappings Get"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "Create Mapping",
        "description": "Create a new project mapping.",
        "operationId": "create_mapping_api_v1_volundr_tracker_mappings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MappingCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/volundr/tracker/mappings/{mapping_id}": {
      "delete": {
        "tags": [
          "Issue Tracker"
        ],
        "summary": "Delete Mapping",
        "description": "Delete a project mapping.",
        "operationId": "delete_mapping_api_v1_volundr_tracker_mappings__mapping_id__delete",
        "parameters": [
          {
            "name": "mapping_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Mapping Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/volundr__adapters__inbound__rest_tracker__ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ActivityReport": {
        "properties": {
          "state": {
            "type": "string",
            "title": "State",
            "description": "Activity state (active/idle/tool_executing)"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Activity metadata"
          }
        },
        "type": "object",
        "required": [
          "state"
        ],
        "title": "ActivityReport",
        "description": "Request model for reporting session activity state."
      },
      "AdminSettingsResponse": {
        "properties": {
          "storage": {
            "$ref": "#/components/schemas/AdminStorageSettings",
            "description": "Storage-related settings"
          }
        },
        "type": "object",
        "required": [
          "storage"
        ],
        "title": "AdminSettingsResponse",
        "description": "Full admin settings response."
      },
      "AdminSettingsUpdate": {
        "properties": {
          "storage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdminStorageSettings"
              },
              {
                "type": "null"
              }
            ],
            "description": "Storage settings to update (null to skip)"
          }
        },
        "type": "object",
        "title": "AdminSettingsUpdate",
        "description": "Request model for updating admin settings."
      },
      "AdminStorageSettings": {
        "properties": {
          "home_enabled": {
            "type": "boolean",
            "title": "Home Enabled",
            "description": "Whether home PVC provisioning is enabled for users"
          },
          "file_manager_enabled": {
            "type": "boolean",
            "title": "File Manager Enabled",
            "description": "Whether the file manager tab is visible in sessions",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "home_enabled"
        ],
        "title": "AdminStorageSettings",
        "description": "Response/request model for storage settings."
      },
      "BrokerChronicleReport": {
        "properties": {
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary",
            "description": "AI-generated summary of work accomplished"
          },
          "key_changes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Key Changes",
            "description": "List of key changes made during the session"
          },
          "unfinished_work": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unfinished Work",
            "description": "Incomplete work for the next session"
          },
          "duration_seconds": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Seconds",
            "description": "Session duration in seconds"
          }
        },
        "type": "object",
        "title": "BrokerChronicleReport",
        "description": "Request model for broker-reported chronicle data at session shutdown.",
        "example": {
          "duration_seconds": 1800,
          "key_changes": [
            "Fixed token expiry check in jwt_validator.py",
            "Added regression test for expired tokens"
          ],
          "summary": "Fixed JWT validation bypass in auth middleware",
          "unfinished_work": "Refresh token rotation not yet implemented"
        }
      },
      "CIStatusResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status",
            "description": "CI status (passing, failing, pending, unknown)"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "CIStatusResponse",
        "description": "Response model for CI status."
      },
      "CatalogEntryResponse": {
        "properties": {
          "slug": {
            "type": "string",
            "title": "Slug",
            "description": "Unique integration identifier",
            "examples": [
              "linear"
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Human-readable integration name",
            "examples": [
              "Linear"
            ]
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Integration description",
            "examples": [
              "Issue tracking with Linear"
            ]
          },
          "integration_type": {
            "type": "string",
            "title": "Integration Type",
            "description": "Integration category",
            "examples": [
              "issue_tracker"
            ]
          },
          "adapter": {
            "type": "string",
            "title": "Adapter",
            "description": "Fully-qualified adapter class path",
            "examples": [
              "volundr.adapters.trackers.linear.LinearAdapter"
            ]
          },
          "icon": {
            "type": "string",
            "title": "Icon",
            "description": "Icon identifier for the UI",
            "examples": [
              "linear"
            ]
          },
          "credential_schema": {
            "additionalProperties": true,
            "type": "object",
            "title": "Credential Schema",
            "description": "JSON Schema for required credentials",
            "examples": [
              {
                "properties": {
                  "token": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            ]
          },
          "config_schema": {
            "additionalProperties": true,
            "type": "object",
            "title": "Config Schema",
            "description": "JSON Schema for adapter configuration",
            "examples": [
              {
                "properties": {
                  "team_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            ]
          },
          "mcp_server": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MCPServerSpecResponse"
              },
              {
                "type": "null"
              }
            ],
            "description": "MCP server spec if this integration provides one"
          },
          "auth_type": {
            "type": "string",
            "title": "Auth Type",
            "description": "Authentication type (api_key, oauth2_authorization_code)",
            "default": "api_key",
            "examples": [
              "api_key"
            ]
          },
          "oauth_scopes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Oauth Scopes",
            "description": "OAuth scopes if auth_type is OAuth",
            "examples": [
              [
                "read",
                "write"
              ]
            ]
          }
        },
        "type": "object",
        "required": [
          "slug",
          "name",
          "description",
          "integration_type",
          "adapter",
          "icon",
          "credential_schema",
          "config_schema"
        ],
        "title": "CatalogEntryResponse",
        "description": "Response model for a single catalog entry."
      },
      "ChronicleCreate": {
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid",
            "title": "Session Id",
            "description": "Session ID to create a chronicle entry for"
          }
        },
        "type": "object",
        "required": [
          "session_id"
        ],
        "title": "ChronicleCreate",
        "description": "Request model for creating a chronicle from a session.",
        "example": {
          "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        }
      },
      "ChronicleResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique chronicle identifier"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id",
            "description": "Session that produced this chronicle"
          },
          "status": {
            "$ref": "#/components/schemas/ChronicleStatus",
            "description": "Draft or complete"
          },
          "project": {
            "type": "string",
            "title": "Project",
            "description": "Project name from the repository"
          },
          "repo": {
            "type": "string",
            "title": "Repo",
            "description": "Git repository URL"
          },
          "branch": {
            "type": "string",
            "title": "Branch",
            "description": "Git branch used during the session"
          },
          "model": {
            "type": "string",
            "title": "Model",
            "description": "LLM model used during the session"
          },
          "config_snapshot": {
            "additionalProperties": true,
            "type": "object",
            "title": "Config Snapshot",
            "description": "Session configuration snapshot"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary",
            "description": "AI-generated summary of work accomplished"
          },
          "key_changes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Key Changes",
            "description": "Significant changes made during the session"
          },
          "unfinished_work": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unfinished Work",
            "description": "Incomplete work for the next session"
          },
          "token_usage": {
            "type": "integer",
            "title": "Token Usage",
            "description": "Total tokens consumed"
          },
          "cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost",
            "description": "Estimated cost in USD"
          },
          "duration_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Seconds",
            "description": "Wall-clock session duration in seconds"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Tags",
            "description": "User-defined tags"
          },
          "parent_chronicle_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Chronicle Id",
            "description": "Parent chronicle for reforge chains"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp"
          }
        },
        "type": "object",
        "required": [
          "id",
          "session_id",
          "status",
          "project",
          "repo",
          "branch",
          "model",
          "config_snapshot",
          "summary",
          "key_changes",
          "unfinished_work",
          "token_usage",
          "cost",
          "duration_seconds",
          "tags",
          "parent_chronicle_id",
          "created_at",
          "updated_at"
        ],
        "title": "ChronicleResponse",
        "description": "Response model for a chronicle.",
        "example": {
          "branch": "fix/auth-bug",
          "config_snapshot": {},
          "cost": 0.47,
          "created_at": "2025-01-15T10:30:00Z",
          "duration_seconds": 1800,
          "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
          "key_changes": [
            "Fixed token expiry check",
            "Added regression test"
          ],
          "model": "claude-sonnet-4-6",
          "project": "backend",
          "repo": "github.com/acme/backend",
          "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "status": "complete",
          "summary": "Fixed JWT validation bypass",
          "tags": [
            "bugfix",
            "security"
          ],
          "token_usage": 125000,
          "updated_at": "2025-01-15T11:00:00Z"
        }
      },
      "ChronicleStatus": {
        "type": "string",
        "enum": [
          "draft",
          "complete"
        ],
        "title": "ChronicleStatus",
        "description": "Status of a chronicle entry."
      },
      "ChronicleUpdate": {
        "properties": {
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary",
            "description": "Updated summary of work accomplished"
          },
          "key_changes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Key Changes",
            "description": "Updated list of key changes"
          },
          "unfinished_work": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unfinished Work",
            "description": "Updated description of incomplete work"
          },
          "tags": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags",
            "description": "Updated tags for categorization"
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChronicleStatus"
              },
              {
                "type": "null"
              }
            ],
            "description": "New chronicle status (draft or complete)"
          }
        },
        "type": "object",
        "title": "ChronicleUpdate",
        "description": "Request model for updating a chronicle.",
        "example": {
          "key_changes": [
            "Fixed token expiry check",
            "Added regression test"
          ],
          "status": "complete",
          "summary": "Fixed JWT validation bypass in auth middleware",
          "tags": [
            "bugfix",
            "security"
          ]
        }
      },
      "CleanupTarget": {
        "type": "string",
        "enum": [
          "workspace_storage",
          "chronicles"
        ],
        "title": "CleanupTarget",
        "description": "Resources that can optionally be cleaned up when deleting a session."
      },
      "ClusterResourceInfoResponse": {
        "properties": {
          "resource_types": {
            "items": {
              "$ref": "#/components/schemas/ResourceTypeResponse"
            },
            "type": "array",
            "title": "Resource Types",
            "description": "Discovered resource types in the cluster"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/NodeResourceSummaryResponse"
            },
            "type": "array",
            "title": "Nodes",
            "description": "Per-node resource availability"
          }
        },
        "type": "object",
        "title": "ClusterResourceInfoResponse",
        "description": "Cluster resource discovery response."
      },
      "ConfidenceRequest": {
        "properties": {
          "tests_pass": {
            "type": "boolean",
            "title": "Tests Pass",
            "description": "Whether all tests pass"
          },
          "coverage_delta": {
            "type": "number",
            "title": "Coverage Delta",
            "description": "Change in code coverage percentage",
            "default": 0.0
          },
          "lines_changed": {
            "type": "integer",
            "title": "Lines Changed",
            "description": "Total lines changed"
          },
          "files_changed": {
            "type": "integer",
            "title": "Files Changed",
            "description": "Total files changed"
          },
          "has_dependency_changes": {
            "type": "boolean",
            "title": "Has Dependency Changes",
            "description": "Whether dependency files were modified",
            "default": false
          },
          "change_categories": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Change Categories",
            "description": "Categories of changes (e.g. bugfix, feature)"
          }
        },
        "type": "object",
        "required": [
          "tests_pass",
          "lines_changed",
          "files_changed"
        ],
        "title": "ConfidenceRequest",
        "description": "Request to calculate merge confidence."
      },
      "CredentialCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[a-z0-9_-]+$",
            "title": "Name",
            "description": "Credential name (lowercase alphanumeric, hyphens, underscores)",
            "examples": [
              "my-api-key"
            ]
          },
          "secret_type": {
            "type": "string",
            "title": "Secret Type",
            "description": "Secret type (api_key, oauth_token, git_credential, etc.)",
            "default": "generic",
            "examples": [
              "api_key"
            ]
          },
          "data": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Data",
            "description": "Key-value pairs of secret data",
            "examples": [
              {
                "token": "sk-abc123"
              }
            ]
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata",
            "description": "Optional metadata labels for the credential",
            "examples": [
              {
                "environment": "production"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "name",
          "data"
        ],
        "title": "CredentialCreate",
        "description": "Request model for storing a credential."
      },
      "CredentialListResponse": {
        "properties": {
          "credentials": {
            "items": {
              "$ref": "#/components/schemas/CredentialResponse"
            },
            "type": "array",
            "title": "Credentials",
            "description": "List of credential metadata entries (values are never included)"
          }
        },
        "type": "object",
        "required": [
          "credentials"
        ],
        "title": "CredentialListResponse",
        "description": "Response model for listing credentials."
      },
      "CredentialResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique credential identifier",
            "examples": [
              "a1b2c3d4"
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Credential name",
            "examples": [
              "my-api-key"
            ]
          },
          "secret_type": {
            "type": "string",
            "title": "Secret Type",
            "description": "Secret type classification",
            "examples": [
              "api_key"
            ]
          },
          "keys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Keys",
            "description": "List of secret data key names",
            "examples": [
              [
                "token",
                "secret"
              ]
            ]
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "description": "Credential metadata labels",
            "examples": [
              {
                "environment": "production"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp",
            "examples": [
              "2025-01-15T10:30:00Z"
            ]
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp",
            "examples": [
              "2025-01-15T10:30:00Z"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "secret_type",
          "keys",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "title": "CredentialResponse",
        "description": "Response model for a credential (metadata only, NEVER values)."
      },
      "DeleteSessionBody": {
        "properties": {
          "cleanup": {
            "items": {
              "$ref": "#/components/schemas/CleanupTarget"
            },
            "type": "array",
            "title": "Cleanup",
            "description": "Resources to permanently delete alongside the session"
          }
        },
        "type": "object",
        "title": "DeleteSessionBody",
        "description": "Optional request body for session deletion with cleanup targets."
      },
      "EventBatchRequest": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/EventIngestRequest"
            },
            "type": "array",
            "maxItems": 500,
            "minItems": 1,
            "title": "Events",
            "description": "List of events to ingest (max 500 per batch)"
          }
        },
        "type": "object",
        "required": [
          "events"
        ],
        "title": "EventBatchRequest",
        "description": "Batch event submission."
      },
      "EventIngestRequest": {
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid",
            "title": "Session Id",
            "description": "Session this event belongs to",
            "examples": [
              "550e8400-e29b-41d4-a716-446655440000"
            ]
          },
          "event_type": {
            "type": "string",
            "minLength": 1,
            "title": "Event Type",
            "description": "Event type (e.g. message_user, file_modified)",
            "examples": [
              "message_user"
            ]
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp",
            "description": "When the event occurred",
            "examples": [
              "2025-01-15T10:30:00Z"
            ]
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Event-type-specific payload",
            "examples": [
              {
                "content": "Hello"
              }
            ]
          },
          "sequence": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Sequence",
            "description": "Monotonic event sequence number",
            "examples": [
              0
            ]
          },
          "tokens_in": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokens In",
            "description": "Input tokens (token_usage events)",
            "examples": [
              150
            ]
          },
          "tokens_out": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokens Out",
            "description": "Output tokens (token_usage events)",
            "examples": [
              75
            ]
          },
          "cost": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost",
            "description": "Cost in USD (token_usage events)",
            "examples": [
              0.0025
            ]
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms",
            "description": "Duration in milliseconds (tool/terminal events)",
            "examples": [
              1200
            ]
          },
          "model": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "LLM model identifier (token_usage events)",
            "examples": [
              "claude-sonnet-4-6"
            ]
          }
        },
        "type": "object",
        "required": [
          "session_id",
          "event_type",
          "timestamp",
          "sequence"
        ],
        "title": "EventIngestRequest",
        "description": "Single event submission from a Skuld pod."
      },
      "GitProviderType": {
        "type": "string",
        "enum": [
          "github",
          "gitlab",
          "bitbucket",
          "generic"
        ],
        "title": "GitProviderType",
        "description": "Type of git hosting provider."
      },
      "GitSource": {
        "properties": {
          "type": {
            "type": "string",
            "const": "git",
            "title": "Type",
            "default": "git"
          },
          "repo": {
            "type": "string",
            "maxLength": 500,
            "title": "Repo",
            "description": "Git repository URL or shorthand (e.g. github.com/org/repo)",
            "default": ""
          },
          "branch": {
            "type": "string",
            "maxLength": 255,
            "title": "Branch",
            "description": "Git branch to checkout",
            "default": "main"
          },
          "base_branch": {
            "type": "string",
            "maxLength": 255,
            "title": "Base Branch",
            "description": "Branch to create feature branch from if it doesn't exist",
            "default": ""
          }
        },
        "type": "object",
        "title": "GitSource",
        "description": "Git repository workspace source."
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "IntegrationCreateRequest": {
        "properties": {
          "integration_type": {
            "type": "string",
            "maxLength": 50,
            "minLength": 1,
            "title": "Integration Type",
            "description": "Integration category (source_control, issue_tracker, etc.)",
            "examples": [
              "issue_tracker"
            ]
          },
          "adapter": {
            "type": "string",
            "maxLength": 500,
            "title": "Adapter",
            "description": "Fully-qualified adapter class path (empty for env-only integrations)",
            "default": "",
            "examples": [
              "volundr.adapters.trackers.linear.LinearAdapter"
            ]
          },
          "credential_name": {
            "type": "string",
            "maxLength": 253,
            "minLength": 1,
            "title": "Credential Name",
            "description": "Stored credential name for authentication",
            "examples": [
              "linear-api-key"
            ]
          },
          "config": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Config",
            "description": "Adapter-specific configuration key-value pairs",
            "examples": [
              {
                "team_id": "TEAM-1"
              }
            ]
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "description": "Whether the integration is active",
            "default": true,
            "examples": [
              true
            ]
          },
          "slug": {
            "type": "string",
            "maxLength": 100,
            "title": "Slug",
            "description": "Catalog entry slug (references IntegrationDefinition)",
            "default": "",
            "examples": [
              "linear"
            ]
          }
        },
        "type": "object",
        "required": [
          "integration_type",
          "credential_name"
        ],
        "title": "IntegrationCreateRequest",
        "description": "Request model for creating an integration connection."
      },
      "IntegrationResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique connection identifier"
          },
          "integration_type": {
            "type": "string",
            "title": "Integration Type",
            "description": "Integration category"
          },
          "adapter": {
            "type": "string",
            "title": "Adapter",
            "description": "Fully-qualified adapter class path"
          },
          "credential_name": {
            "type": "string",
            "title": "Credential Name",
            "description": "Stored credential name"
          },
          "config": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Config",
            "description": "Adapter-specific configuration"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "description": "Whether the integration is active"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp"
          },
          "slug": {
            "type": "string",
            "title": "Slug",
            "description": "Catalog entry slug",
            "default": ""
          }
        },
        "type": "object",
        "required": [
          "id",
          "integration_type",
          "adapter",
          "credential_name",
          "config",
          "enabled",
          "created_at",
          "updated_at"
        ],
        "title": "IntegrationResponse",
        "description": "Response model for an integration connection."
      },
      "IntegrationTestResult": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "description": "Whether the test connection succeeded",
            "examples": [
              true
            ]
          },
          "provider": {
            "type": "string",
            "title": "Provider",
            "description": "Provider name",
            "examples": [
              "Linear"
            ]
          },
          "workspace": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workspace",
            "description": "Workspace name if connected",
            "examples": [
              "My Workspace"
            ]
          },
          "user": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User",
            "description": "Authenticated user if connected",
            "examples": [
              "user@example.com"
            ]
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error",
            "description": "Error message if test failed",
            "examples": [
              null
            ]
          }
        },
        "type": "object",
        "required": [
          "success",
          "provider"
        ],
        "title": "IntegrationTestResult",
        "description": "Response model for testing an integration connection."
      },
      "IntegrationUpdateRequest": {
        "properties": {
          "credential_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 253
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Name",
            "description": "New credential name (null to keep current)",
            "examples": [
              "linear-api-key"
            ]
          },
          "config": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config",
            "description": "New adapter config (null to keep current)",
            "examples": [
              {
                "team_id": "TEAM-2"
              }
            ]
          },
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enabled",
            "description": "New enabled status (null to keep current)",
            "examples": [
              true
            ]
          }
        },
        "type": "object",
        "title": "IntegrationUpdateRequest",
        "description": "Request model for updating an integration connection."
      },
      "IssueResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique issue identifier"
          },
          "identifier": {
            "type": "string",
            "title": "Identifier",
            "description": "Human-readable issue key (e.g. PROJ-123)"
          },
          "title": {
            "type": "string",
            "title": "Title",
            "description": "Issue title"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Current issue status (e.g. In Progress)"
          },
          "assignee": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee",
            "description": "Assigned user, if any"
          },
          "labels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Labels",
            "description": "Labels attached to the issue"
          },
          "priority": {
            "type": "integer",
            "title": "Priority",
            "description": "Priority level (lower is higher priority)"
          },
          "url": {
            "type": "string",
            "title": "Url",
            "description": "URL to the issue in the tracker"
          }
        },
        "type": "object",
        "required": [
          "id",
          "identifier",
          "title",
          "status",
          "assignee",
          "labels",
          "priority",
          "url"
        ],
        "title": "IssueResponse",
        "description": "Response model for a tracker issue."
      },
      "IssueStatusUpdate": {
        "properties": {
          "status": {
            "type": "string",
            "minLength": 1,
            "title": "Status",
            "description": "New status value for the issue"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "IssueStatusUpdate",
        "description": "Request model for updating an issue's status."
      },
      "LocalMountSource": {
        "properties": {
          "type": {
            "type": "string",
            "const": "local_mount",
            "title": "Type",
            "default": "local_mount"
          },
          "local_path": {
            "type": "string",
            "title": "Local Path",
            "description": "Absolute path to use as workspace directly (mini/local mode)",
            "default": ""
          },
          "paths": {
            "items": {
              "$ref": "#/components/schemas/MountMapping"
            },
            "type": "array",
            "title": "Paths",
            "description": "Host-to-container path mappings for the workspace (cluster mode)"
          },
          "node_selector": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Node Selector",
            "description": "Kubernetes node selector labels to schedule on a specific node"
          }
        },
        "type": "object",
        "title": "LocalMountSource",
        "description": "Local filesystem mount workspace source.\n\nIn mini/local mode, only ``local_path`` is needed \u2014 the CLI runs\nClaude directly in that directory.  In cluster mode, ``paths``\nprovides host-to-container volume mappings."
      },
      "MCPServerResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "MCP server name",
            "examples": [
              "linear-mcp"
            ]
          },
          "type": {
            "type": "string",
            "title": "Type",
            "description": "Server type (stdio or sse)",
            "examples": [
              "stdio"
            ]
          },
          "command": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Command",
            "description": "Command to launch (stdio servers)",
            "examples": [
              "npx"
            ]
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url",
            "description": "Server URL (SSE servers)",
            "examples": [
              "http://localhost:3000/sse"
            ]
          },
          "args": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Args",
            "description": "Command-line arguments",
            "examples": [
              [
                "@linear/mcp-server"
              ]
            ]
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Server description",
            "default": "",
            "examples": [
              "Linear issue tracker MCP server"
            ]
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "title": "MCPServerResponse",
        "description": "Response model for an available MCP server configuration."
      },
      "MCPServerSpecResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "MCP server name",
            "examples": [
              "linear-mcp"
            ]
          },
          "command": {
            "type": "string",
            "title": "Command",
            "description": "Command to launch the server",
            "examples": [
              "npx"
            ]
          },
          "args": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Args",
            "description": "Command-line arguments",
            "examples": [
              [
                "@linear/mcp-server"
              ]
            ]
          },
          "env_from_credentials": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Env From Credentials",
            "description": "Map of env var name to credential field name",
            "examples": [
              {
                "LINEAR_API_KEY": "token"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "name",
          "command",
          "args",
          "env_from_credentials"
        ],
        "title": "MCPServerSpecResponse",
        "description": "Response model for an MCP server spec."
      },
      "MappingCreate": {
        "properties": {
          "repo_url": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Repo Url",
            "description": "Git repository URL to map"
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "title": "Project Id",
            "description": "Tracker project identifier"
          },
          "project_name": {
            "type": "string",
            "title": "Project Name",
            "description": "Human-readable project name",
            "default": ""
          }
        },
        "type": "object",
        "required": [
          "repo_url",
          "project_id"
        ],
        "title": "MappingCreate",
        "description": "Request model for creating a project mapping."
      },
      "MappingResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique mapping identifier"
          },
          "repo_url": {
            "type": "string",
            "title": "Repo Url",
            "description": "Mapped git repository URL"
          },
          "project_id": {
            "type": "string",
            "title": "Project Id",
            "description": "Tracker project identifier"
          },
          "project_name": {
            "type": "string",
            "title": "Project Name",
            "description": "Human-readable project name"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          }
        },
        "type": "object",
        "required": [
          "id",
          "repo_url",
          "project_id",
          "project_name",
          "created_at"
        ],
        "title": "MappingResponse",
        "description": "Response model for a project mapping."
      },
      "MeResponse": {
        "properties": {
          "user_id": {
            "type": "string",
            "title": "User Id",
            "description": "Current user identifier"
          },
          "email": {
            "type": "string",
            "title": "Email",
            "description": "Current user email"
          },
          "tenant_id": {
            "type": "string",
            "title": "Tenant Id",
            "description": "Tenant the user belongs to"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Roles",
            "description": "Roles assigned to the user"
          },
          "display_name": {
            "type": "string",
            "title": "Display Name",
            "description": "Human-readable display name"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Account status"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "email",
          "tenant_id",
          "roles",
          "display_name",
          "status"
        ],
        "title": "MeResponse",
        "description": "Response model for the current user."
      },
      "MemberCreate": {
        "properties": {
          "user_id": {
            "type": "string",
            "title": "User Id",
            "description": "ID of the user to add"
          },
          "role": {
            "type": "string",
            "title": "Role",
            "description": "Role to assign (e.g. volundr:admin)",
            "default": "volundr:developer"
          }
        },
        "type": "object",
        "required": [
          "user_id"
        ],
        "title": "MemberCreate",
        "description": "Request model for adding a tenant member."
      },
      "MemberResponse": {
        "properties": {
          "user_id": {
            "type": "string",
            "title": "User Id",
            "description": "User identifier"
          },
          "tenant_id": {
            "type": "string",
            "title": "Tenant Id",
            "description": "Tenant identifier"
          },
          "role": {
            "type": "string",
            "title": "Role",
            "description": "Assigned role"
          },
          "granted_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Granted At",
            "description": "ISO 8601 timestamp of role grant"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "tenant_id",
          "role",
          "granted_at"
        ],
        "title": "MemberResponse",
        "description": "Response model for a tenant member."
      },
      "MergeConfidenceResponse": {
        "properties": {
          "score": {
            "type": "number",
            "title": "Score",
            "description": "Confidence score from 0.0 to 1.0"
          },
          "factors": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Factors",
            "description": "Individual factor scores contributing to confidence"
          },
          "action": {
            "type": "string",
            "title": "Action",
            "description": "Recommended action (auto_merge, notify_then_merge, require_approval)"
          },
          "reason": {
            "type": "string",
            "title": "Reason",
            "description": "Human-readable rationale"
          }
        },
        "type": "object",
        "required": [
          "score",
          "factors",
          "action",
          "reason"
        ],
        "title": "MergeConfidenceResponse",
        "description": "Response model for merge confidence scoring."
      },
      "MergeResultResponse": {
        "properties": {
          "merged": {
            "type": "boolean",
            "title": "Merged",
            "description": "Whether the PR was successfully merged"
          }
        },
        "type": "object",
        "required": [
          "merged"
        ],
        "title": "MergeResultResponse",
        "description": "Response model for merge result."
      },
      "ModelInfo": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Model identifier"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Human-readable model name"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Model capabilities description"
          },
          "provider": {
            "$ref": "#/components/schemas/ModelProvider",
            "description": "Provider type: cloud or local"
          },
          "tier": {
            "$ref": "#/components/schemas/ModelTier",
            "description": "Model tier classification"
          },
          "color": {
            "type": "string",
            "title": "Color",
            "description": "UI color code for the model badge"
          },
          "cost_per_million_tokens": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost Per Million Tokens",
            "description": "Cost per million tokens in USD"
          },
          "vram_required": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vram Required",
            "description": "VRAM required for local models (e.g. 24GB)"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "description",
          "provider",
          "tier",
          "color"
        ],
        "title": "ModelInfo",
        "description": "Response model for available models."
      },
      "ModelProvider": {
        "type": "string",
        "enum": [
          "cloud",
          "local"
        ],
        "title": "ModelProvider",
        "description": "Provider type for LLM models."
      },
      "ModelTier": {
        "type": "string",
        "enum": [
          "frontier",
          "balanced",
          "execution",
          "reasoning"
        ],
        "title": "ModelTier",
        "description": "Tier classification for LLM models."
      },
      "MountMapping": {
        "properties": {
          "host_path": {
            "type": "string",
            "minLength": 1,
            "title": "Host Path",
            "description": "Absolute path on the host node filesystem"
          },
          "mount_path": {
            "type": "string",
            "minLength": 1,
            "title": "Mount Path",
            "description": "Absolute path inside the session container"
          },
          "read_only": {
            "type": "boolean",
            "title": "Read Only",
            "description": "Whether the mount is read-only",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "host_path",
          "mount_path"
        ],
        "title": "MountMapping",
        "description": "A single host-to-container path mapping."
      },
      "NodeResourceSummaryResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Kubernetes node name"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Labels",
            "description": "Node labels"
          },
          "allocatable": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Allocatable",
            "description": "Total allocatable resources on the node"
          },
          "allocated": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Allocated",
            "description": "Currently allocated resources"
          },
          "available": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Available",
            "description": "Available (unallocated) resources"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "NodeResourceSummaryResponse",
        "description": "Resource availability for a node."
      },
      "PRCreateRequest": {
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid",
            "title": "Session Id",
            "description": "Session ID to create a pull request from"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title",
            "description": "PR title (auto-generated from session if omitted)"
          },
          "target_branch": {
            "type": "string",
            "title": "Target Branch",
            "description": "Target branch for the pull request",
            "default": "main"
          }
        },
        "type": "object",
        "required": [
          "session_id"
        ],
        "title": "PRCreateRequest",
        "description": "Request to create a PR from a session.",
        "example": {
          "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "target_branch": "main",
          "title": "fix: resolve JWT validation bypass"
        }
      },
      "PRMergeRequest": {
        "properties": {
          "merge_method": {
            "type": "string",
            "title": "Merge Method",
            "description": "Merge method: merge, squash, or rebase",
            "default": "squash"
          }
        },
        "type": "object",
        "title": "PRMergeRequest",
        "description": "Request to merge a PR."
      },
      "PresetCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "description": "Human-readable preset name"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Description of the preset purpose",
            "default": ""
          },
          "is_default": {
            "type": "boolean",
            "title": "Is Default",
            "description": "Whether this is the default preset for its CLI tool",
            "default": false
          },
          "cli_tool": {
            "type": "string",
            "title": "Cli Tool",
            "description": "CLI tool this preset targets (e.g. claude, aider)",
            "default": ""
          },
          "workload_type": {
            "type": "string",
            "title": "Workload Type",
            "description": "Workload type (e.g. session)",
            "default": "session"
          },
          "model": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "Default LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "System prompt for the LLM"
          },
          "resource_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Resource Config",
            "description": "Resource allocation (cpu, memory, gpu)"
          },
          "mcp_servers": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Mcp Servers",
            "description": "MCP server configurations to attach"
          },
          "terminal_sidecar": {
            "additionalProperties": true,
            "type": "object",
            "title": "Terminal Sidecar",
            "description": "Terminal sidecar container config"
          },
          "skills": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Skills",
            "description": "Skill definitions for the session"
          },
          "rules": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Rules",
            "description": "Rule definitions for session behavior"
          },
          "env_vars": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Env Vars",
            "description": "Environment variables for the session pod"
          },
          "env_secret_refs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Env Secret Refs",
            "description": "K8s secret names to mount as env vars"
          },
          "source": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source",
            "description": "Workspace source (git or local_mount) as JSON"
          },
          "integration_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Integration Ids",
            "description": "Integration connection IDs to attach"
          },
          "setup_scripts": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Setup Scripts",
            "description": "Shell scripts for workspace setup"
          },
          "workload_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Workload Config",
            "description": "Additional workload-specific configuration"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "PresetCreate",
        "description": "Request model for creating a preset.",
        "example": {
          "cli_tool": "claude",
          "description": "High-resource preset for complex tasks",
          "is_default": false,
          "model": "claude-sonnet-4-6",
          "name": "claude-heavy",
          "resource_config": {
            "cpu": "4",
            "memory": "8Gi"
          },
          "workload_type": "session"
        }
      },
      "PresetResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique preset identifier"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Preset name"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Preset description"
          },
          "is_default": {
            "type": "boolean",
            "title": "Is Default",
            "description": "Whether this is the default preset"
          },
          "cli_tool": {
            "type": "string",
            "title": "Cli Tool",
            "description": "CLI tool target"
          },
          "workload_type": {
            "type": "string",
            "title": "Workload Type",
            "description": "Workload type"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "System prompt"
          },
          "resource_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Resource Config",
            "description": "Resource allocation config"
          },
          "mcp_servers": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Mcp Servers",
            "description": "MCP server configurations"
          },
          "terminal_sidecar": {
            "additionalProperties": true,
            "type": "object",
            "title": "Terminal Sidecar",
            "description": "Terminal sidecar config"
          },
          "skills": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Skills",
            "description": "Skill definitions"
          },
          "rules": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Rules",
            "description": "Rule definitions"
          },
          "env_vars": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Env Vars",
            "description": "Environment variables"
          },
          "env_secret_refs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Env Secret Refs",
            "description": "K8s secret references"
          },
          "source": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source",
            "description": "Workspace source configuration"
          },
          "integration_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Integration Ids",
            "description": "Integration connection IDs"
          },
          "setup_scripts": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Setup Scripts",
            "description": "Setup shell scripts"
          },
          "workload_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Workload Config",
            "description": "Workload-specific config"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "description",
          "is_default",
          "cli_tool",
          "workload_type",
          "model",
          "system_prompt",
          "resource_config",
          "mcp_servers",
          "terminal_sidecar",
          "skills",
          "rules",
          "env_vars",
          "env_secret_refs",
          "source",
          "integration_ids",
          "setup_scripts",
          "workload_config",
          "created_at",
          "updated_at"
        ],
        "title": "PresetResponse",
        "description": "Response model for a preset."
      },
      "PresetUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name",
            "description": "New preset name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "description": "New description"
          },
          "is_default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Default",
            "description": "New default flag"
          },
          "cli_tool": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cli Tool",
            "description": "New CLI tool target"
          },
          "workload_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workload Type",
            "description": "New workload type"
          },
          "model": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "New LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "New system prompt"
          },
          "resource_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Config",
            "description": "New resource config"
          },
          "mcp_servers": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mcp Servers",
            "description": "New MCP server list"
          },
          "terminal_sidecar": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Terminal Sidecar",
            "description": "New terminal sidecar config"
          },
          "skills": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Skills",
            "description": "New skill definitions"
          },
          "rules": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rules",
            "description": "New rule definitions"
          },
          "env_vars": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Env Vars",
            "description": "New environment variables"
          },
          "env_secret_refs": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Env Secret Refs",
            "description": "New K8s secret references"
          },
          "source": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source",
            "description": "New workspace source"
          },
          "integration_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Integration Ids",
            "description": "New integration connection IDs"
          },
          "setup_scripts": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Setup Scripts",
            "description": "New setup scripts"
          },
          "workload_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workload Config",
            "description": "New workload config"
          }
        },
        "type": "object",
        "title": "PresetUpdate",
        "description": "Request model for updating a preset (all fields optional)."
      },
      "ProfileCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "description": "Profile name"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Profile description",
            "default": ""
          },
          "workload_type": {
            "type": "string",
            "title": "Workload Type",
            "description": "Workload type",
            "default": "session"
          },
          "model": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "Default LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "System prompt for the LLM"
          },
          "resource_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Resource Config",
            "description": "Resource allocation (cpu, memory, gpu)"
          },
          "mcp_servers": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Mcp Servers",
            "description": "MCP server configurations"
          },
          "env_vars": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Env Vars",
            "description": "Environment variables for the session pod"
          },
          "env_secret_refs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Env Secret Refs",
            "description": "K8s secret names to mount as env vars"
          },
          "workload_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Workload Config",
            "description": "Additional workload-specific config"
          },
          "is_default": {
            "type": "boolean",
            "title": "Is Default",
            "description": "Whether this is the default profile",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ProfileCreateRequest",
        "description": "Request model for creating a forge profile.",
        "example": {
          "description": "Profile for GPU-intensive workloads",
          "is_default": false,
          "model": "claude-sonnet-4-6",
          "name": "gpu-heavy",
          "resource_config": {
            "cpu": "4",
            "gpu": "1",
            "memory": "16Gi"
          },
          "workload_type": "session"
        }
      },
      "ProfileResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Profile name"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Profile description"
          },
          "workload_type": {
            "type": "string",
            "title": "Workload Type",
            "description": "Workload type"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "Default LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "System prompt"
          },
          "resource_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Resource Config",
            "description": "Resource allocation config"
          },
          "mcp_servers": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Mcp Servers",
            "description": "MCP server configurations"
          },
          "env_vars": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Env Vars",
            "description": "Environment variables"
          },
          "env_secret_refs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Env Secret Refs",
            "description": "K8s secret references"
          },
          "workload_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Workload Config",
            "description": "Workload-specific config"
          },
          "is_default": {
            "type": "boolean",
            "title": "Is Default",
            "description": "Whether this is the default"
          }
        },
        "type": "object",
        "required": [
          "name",
          "description",
          "workload_type",
          "model",
          "system_prompt",
          "resource_config",
          "mcp_servers",
          "env_vars",
          "env_secret_refs",
          "workload_config",
          "is_default"
        ],
        "title": "ProfileResponse",
        "description": "Response model for a forge profile."
      },
      "ProfileUpdateRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name",
            "description": "New profile name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "description": "New description"
          },
          "workload_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workload Type",
            "description": "New workload type"
          },
          "model": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "New LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "New system prompt"
          },
          "resource_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Config",
            "description": "New resource config"
          },
          "mcp_servers": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mcp Servers",
            "description": "New MCP server list"
          },
          "env_vars": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Env Vars",
            "description": "New environment variables"
          },
          "env_secret_refs": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Env Secret Refs",
            "description": "New K8s secret references"
          },
          "workload_config": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workload Config",
            "description": "New workload config"
          },
          "is_default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Default",
            "description": "New default flag"
          }
        },
        "type": "object",
        "title": "ProfileUpdateRequest",
        "description": "Request model for updating a forge profile."
      },
      "PromptCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "description": "Human-readable prompt name"
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "title": "Content",
            "description": "The prompt text content"
          },
          "scope": {
            "$ref": "#/components/schemas/PromptScope",
            "description": "Visibility scope: global or project",
            "default": "global"
          },
          "project_repo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Repo",
            "description": "Repository URL when scope is project"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Tags",
            "description": "Tags for categorization and search"
          }
        },
        "type": "object",
        "required": [
          "name",
          "content"
        ],
        "title": "PromptCreate",
        "description": "Request model for creating a saved prompt."
      },
      "PromptResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique prompt identifier"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Prompt name"
          },
          "content": {
            "type": "string",
            "title": "Content",
            "description": "The prompt text content"
          },
          "scope": {
            "$ref": "#/components/schemas/PromptScope",
            "description": "Visibility scope"
          },
          "project_repo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Repo",
            "description": "Scoped repository URL"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Tags",
            "description": "Tags for categorization"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "content",
          "scope",
          "project_repo",
          "tags",
          "created_at",
          "updated_at"
        ],
        "title": "PromptResponse",
        "description": "Response model for a saved prompt."
      },
      "PromptScope": {
        "type": "string",
        "enum": [
          "global",
          "project"
        ],
        "title": "PromptScope",
        "description": "Scope of a saved prompt."
      },
      "PromptUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name",
            "description": "New prompt name"
          },
          "content": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Content",
            "description": "New prompt content"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PromptScope"
              },
              {
                "type": "null"
              }
            ],
            "description": "New visibility scope"
          },
          "project_repo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Repo",
            "description": "New repository URL for project scope"
          },
          "tags": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags",
            "description": "New tags list"
          }
        },
        "type": "object",
        "title": "PromptUpdate",
        "description": "Request model for updating a saved prompt."
      },
      "ProviderResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Provider name (e.g. GitHub)"
          },
          "type": {
            "$ref": "#/components/schemas/GitProviderType",
            "description": "Git provider type"
          },
          "orgs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Orgs",
            "description": "Configured organizations"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type",
          "orgs"
        ],
        "title": "ProviderResponse",
        "description": "Response model for a configured git provider."
      },
      "PullRequestResponse": {
        "properties": {
          "number": {
            "type": "integer",
            "title": "Number",
            "description": "PR number"
          },
          "title": {
            "type": "string",
            "title": "Title",
            "description": "PR title"
          },
          "url": {
            "type": "string",
            "title": "Url",
            "description": "Web URL for the pull request"
          },
          "repo_url": {
            "type": "string",
            "title": "Repo Url",
            "description": "Repository URL"
          },
          "provider": {
            "type": "string",
            "title": "Provider",
            "description": "Git provider (github, gitlab)"
          },
          "source_branch": {
            "type": "string",
            "title": "Source Branch",
            "description": "Source branch name"
          },
          "target_branch": {
            "type": "string",
            "title": "Target Branch",
            "description": "Target branch name"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "PR status (open, merged, closed)"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "description": "PR body/description"
          },
          "ci_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ci Status",
            "description": "CI pipeline status (passing, failing, pending)"
          },
          "review_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Status",
            "description": "Review status (approved, changes_requested, pending)"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp"
          }
        },
        "type": "object",
        "required": [
          "number",
          "title",
          "url",
          "repo_url",
          "provider",
          "source_branch",
          "target_branch",
          "status"
        ],
        "title": "PullRequestResponse",
        "description": "Response model for a pull request."
      },
      "ResourceTypeResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Resource type name (e.g. gpu)"
          },
          "resource_key": {
            "type": "string",
            "title": "Resource Key",
            "description": "K8s resource key (e.g. nvidia.com/gpu)"
          },
          "display_name": {
            "type": "string",
            "title": "Display Name",
            "description": "Human-readable display name"
          },
          "unit": {
            "type": "string",
            "title": "Unit",
            "description": "Unit of measurement (e.g. cores, GiB)"
          },
          "category": {
            "type": "string",
            "title": "Category",
            "description": "Category: compute, accelerator, or custom"
          }
        },
        "type": "object",
        "required": [
          "name",
          "resource_key",
          "display_name",
          "unit",
          "category"
        ],
        "title": "ResourceTypeResponse",
        "description": "A discoverable resource type."
      },
      "SecretCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 253,
            "minLength": 1,
            "title": "Name",
            "description": "Kubernetes secret name (DNS-compatible)",
            "examples": [
              "my-api-secret"
            ]
          },
          "data": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "minProperties": 1,
            "title": "Data",
            "description": "Key-value pairs of secret data",
            "examples": [
              {
                "token": "sk-abc123"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "name",
          "data"
        ],
        "title": "SecretCreateRequest",
        "description": "Request model for creating a Kubernetes secret."
      },
      "SecretResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Kubernetes secret name",
            "examples": [
              "my-api-secret"
            ]
          },
          "keys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Keys",
            "description": "List of data key names in the secret",
            "examples": [
              [
                "token",
                "secret"
              ]
            ]
          }
        },
        "type": "object",
        "required": [
          "name",
          "keys"
        ],
        "title": "SecretResponse",
        "description": "Response model for a Kubernetes secret (metadata only, no values)."
      },
      "SecretTypeInfoResponse": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type",
            "description": "Secret type identifier",
            "examples": [
              "api_key"
            ]
          },
          "label": {
            "type": "string",
            "title": "Label",
            "description": "Human-readable label",
            "examples": [
              "API Key"
            ]
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Description of the secret type",
            "examples": [
              "Token-based API authentication"
            ]
          },
          "fields": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Fields",
            "description": "Required fields for this secret type",
            "examples": [
              [
                {
                  "name": "token",
                  "required": true
                }
              ]
            ]
          },
          "default_mount_type": {
            "type": "string",
            "title": "Default Mount Type",
            "description": "Default mount type (env_file, file, template)",
            "examples": [
              "env_file"
            ]
          }
        },
        "type": "object",
        "required": [
          "type",
          "label",
          "description",
          "fields",
          "default_mount_type"
        ],
        "title": "SecretTypeInfoResponse",
        "description": "Response model for a secret type definition."
      },
      "SessionCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 63,
            "minLength": 1,
            "title": "Name",
            "description": "Session name (RFC 1123 label: lowercase alphanumeric and hyphens, must start and end with alphanumeric, max 63 characters)"
          },
          "model": {
            "type": "string",
            "maxLength": 100,
            "title": "Model",
            "description": "LLM model identifier (e.g. claude-sonnet-4-6)",
            "default": ""
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/GitSource"
              },
              {
                "$ref": "#/components/schemas/LocalMountSource"
              }
            ],
            "title": "Source",
            "description": "Workspace source (git repo or local mount)",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "git": "#/components/schemas/GitSource",
                "local_mount": "#/components/schemas/LocalMountSource"
              }
            }
          },
          "template_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Template Name",
            "description": "Workspace template name to apply"
          },
          "profile_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Profile Name",
            "description": "Forge profile name for resource allocation"
          },
          "preset_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preset Id",
            "description": "Preset ID for runtime configuration"
          },
          "workspace_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workspace Id",
            "description": "Existing workspace PVC to reuse"
          },
          "terminal_restricted": {
            "type": "boolean",
            "title": "Terminal Restricted",
            "description": "Whether to restrict terminal access",
            "default": false
          },
          "credential_names": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Credential Names",
            "description": "Credential names to inject into the pod"
          },
          "integration_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Integration Ids",
            "description": "Integration connection IDs to activate"
          },
          "resource_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Resource Config",
            "description": "Resource allocation overrides (cpu, memory, gpu)"
          },
          "system_prompt": {
            "type": "string",
            "maxLength": 100000,
            "title": "System Prompt",
            "description": "System prompt appended to Claude's default instructions",
            "default": ""
          },
          "initial_prompt": {
            "type": "string",
            "maxLength": 100000,
            "title": "Initial Prompt",
            "description": "Initial user message sent when the CLI starts",
            "default": ""
          },
          "issue_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Issue Id",
            "description": "Issue tracker ID to link to the session"
          },
          "issue_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2048
              },
              {
                "type": "null"
              }
            ],
            "title": "Issue Url",
            "description": "URL of the linked issue in the tracker"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "SessionCreate",
        "description": "Request model for creating a session.",
        "example": {
          "model": "claude-sonnet-4-6",
          "name": "fix-auth-bug",
          "profile_name": "default",
          "source": {
            "branch": "main",
            "repo": "github.com/acme/backend",
            "type": "git"
          }
        }
      },
      "SessionEventResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique event identifier",
            "examples": [
              "550e8400-e29b-41d4-a716-446655440000"
            ]
          },
          "session_id": {
            "type": "string",
            "format": "uuid",
            "title": "Session Id",
            "description": "Session this event belongs to",
            "examples": [
              "660e8400-e29b-41d4-a716-446655440000"
            ]
          },
          "event_type": {
            "type": "string",
            "title": "Event Type",
            "description": "Event type",
            "examples": [
              "message_user"
            ]
          },
          "timestamp": {
            "type": "string",
            "title": "Timestamp",
            "description": "ISO 8601 event timestamp",
            "examples": [
              "2025-01-15T10:30:00Z"
            ]
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "Event-type-specific payload",
            "examples": [
              {
                "content": "Hello"
              }
            ]
          },
          "sequence": {
            "type": "integer",
            "title": "Sequence",
            "description": "Monotonic sequence number",
            "examples": [
              0
            ]
          },
          "tokens_in": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokens In",
            "description": "Input tokens consumed",
            "examples": [
              150
            ]
          },
          "tokens_out": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokens Out",
            "description": "Output tokens generated",
            "examples": [
              75
            ]
          },
          "cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost",
            "description": "Cost in USD",
            "examples": [
              0.0025
            ]
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms",
            "description": "Duration in milliseconds",
            "examples": [
              1200
            ]
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "LLM model identifier",
            "examples": [
              "claude-sonnet-4-6"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "session_id",
          "event_type",
          "timestamp",
          "data",
          "sequence"
        ],
        "title": "SessionEventResponse",
        "description": "Response model for a session event."
      },
      "SessionResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique session identifier"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Human-readable session name"
          },
          "model": {
            "type": "string",
            "title": "Model",
            "description": "LLM model identifier"
          },
          "source": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/GitSource"
              },
              {
                "$ref": "#/components/schemas/LocalMountSource"
              }
            ],
            "title": "Source",
            "description": "Workspace source config",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "git": "#/components/schemas/GitSource",
                "local_mount": "#/components/schemas/LocalMountSource"
              }
            }
          },
          "status": {
            "$ref": "#/components/schemas/SessionStatus",
            "description": "Current lifecycle status"
          },
          "chat_endpoint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chat Endpoint",
            "description": "Skuld chat proxy URL (null when not running)"
          },
          "code_endpoint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code Endpoint",
            "description": "Editor IDE URL (null when not running)"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "ISO 8601 last update timestamp"
          },
          "last_active": {
            "type": "string",
            "title": "Last Active",
            "description": "ISO 8601 last activity timestamp"
          },
          "message_count": {
            "type": "integer",
            "title": "Message Count",
            "description": "Total chat messages exchanged"
          },
          "tokens_used": {
            "type": "integer",
            "title": "Tokens Used",
            "description": "Total tokens consumed"
          },
          "pod_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pod Name",
            "description": "Kubernetes pod name (null when not running)"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error",
            "description": "Error message if session is in failed state"
          },
          "tracker_issue_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tracker Issue Id",
            "description": "Linked issue tracker identifier"
          },
          "issue_tracker_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issue Tracker Url",
            "description": "Web URL for the linked issue in the tracker"
          },
          "preset_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preset Id",
            "description": "Preset used to configure this session"
          },
          "archived_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Archived At",
            "description": "ISO 8601 archive timestamp"
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id",
            "description": "User ID of the session owner"
          },
          "tenant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id",
            "description": "Tenant ID for multi-tenant isolation"
          },
          "activity_state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activity State",
            "description": "Current activity state (active/idle/tool_executing)"
          },
          "activity_metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Activity Metadata",
            "description": "Metadata from the latest activity report"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "model",
          "source",
          "status",
          "chat_endpoint",
          "code_endpoint",
          "created_at",
          "updated_at",
          "last_active",
          "message_count",
          "tokens_used",
          "pod_name",
          "error"
        ],
        "title": "SessionResponse",
        "description": "Response model for a session.",
        "example": {
          "chat_endpoint": "https://s-abc.volundr.dev/chat",
          "code_endpoint": "https://s-abc.volundr.dev/code",
          "created_at": "2025-01-15T10:30:00Z",
          "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "last_active": "2025-01-15T11:45:00Z",
          "message_count": 42,
          "model": "claude-sonnet-4-6",
          "name": "fix-auth-bug",
          "pod_name": "session-a1b2c3d4",
          "source": {
            "branch": "main",
            "repo": "github.com/acme/backend",
            "type": "git"
          },
          "status": "running",
          "tokens_used": 125000,
          "updated_at": "2025-01-15T11:45:00Z"
        }
      },
      "SessionStart": {
        "properties": {
          "profile_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ],
            "title": "Profile Name",
            "description": "Forge profile name to use when starting"
          }
        },
        "type": "object",
        "title": "SessionStart",
        "description": "Request model for (re)starting a session.",
        "example": {
          "profile_name": "default"
        }
      },
      "SessionStatus": {
        "type": "string",
        "enum": [
          "created",
          "starting",
          "provisioning",
          "running",
          "stopping",
          "stopped",
          "failed",
          "archived"
        ],
        "title": "SessionStatus",
        "description": "Status of a coding session."
      },
      "SessionUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 63,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name",
            "description": "New session name (RFC 1123 label)"
          },
          "model": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "New LLM model identifier"
          },
          "branch": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Branch",
            "description": "New git branch to checkout"
          },
          "tracker_issue_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tracker Issue Id",
            "description": "Issue tracker identifier to link"
          }
        },
        "type": "object",
        "title": "SessionUpdate",
        "description": "Request model for updating a session.",
        "example": {
          "branch": "fix/auth-bypass",
          "model": "claude-sonnet-4-6",
          "name": "fix-auth-bug-v2",
          "tracker_issue_id": "PROJ-1234"
        }
      },
      "SinkHealthResponse": {
        "properties": {
          "sinks": {
            "additionalProperties": {
              "type": "boolean"
            },
            "type": "object",
            "title": "Sinks",
            "description": "Map of sink name to healthy status",
            "examples": [
              {
                "postgres": true,
                "websocket": true
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "sinks"
        ],
        "title": "SinkHealthResponse",
        "description": "Health status of all event sinks."
      },
      "StatsResponse": {
        "properties": {
          "active_sessions": {
            "type": "integer",
            "title": "Active Sessions",
            "description": "Currently running sessions"
          },
          "total_sessions": {
            "type": "integer",
            "title": "Total Sessions",
            "description": "Total sessions (all statuses)"
          },
          "tokens_today": {
            "type": "integer",
            "title": "Tokens Today",
            "description": "Tokens consumed today"
          },
          "local_tokens": {
            "type": "integer",
            "title": "Local Tokens",
            "description": "Tokens from local models today"
          },
          "cloud_tokens": {
            "type": "integer",
            "title": "Cloud Tokens",
            "description": "Tokens from cloud models today"
          },
          "cost_today": {
            "type": "number",
            "title": "Cost Today",
            "description": "Total cloud cost today in USD"
          }
        },
        "type": "object",
        "required": [
          "active_sessions",
          "total_sessions",
          "tokens_today",
          "local_tokens",
          "cloud_tokens",
          "cost_today"
        ],
        "title": "StatsResponse",
        "description": "Response model for aggregate statistics."
      },
      "StatusResponse": {
        "properties": {
          "connected": {
            "type": "boolean",
            "title": "Connected",
            "description": "Whether the tracker is connected"
          },
          "provider": {
            "type": "string",
            "title": "Provider",
            "description": "Tracker provider name (e.g. linear)"
          },
          "workspace": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workspace",
            "description": "Connected workspace or organization"
          },
          "user": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User",
            "description": "Authenticated tracker user"
          }
        },
        "type": "object",
        "required": [
          "connected",
          "provider",
          "workspace",
          "user"
        ],
        "title": "StatusResponse",
        "description": "Response model for tracker connection status."
      },
      "TemplateResponse": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Template name"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Template description"
          },
          "repos": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Repos",
            "description": "Git repos to clone"
          },
          "setup_scripts": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Setup Scripts",
            "description": "Setup shell scripts"
          },
          "workspace_layout": {
            "additionalProperties": true,
            "type": "object",
            "title": "Workspace Layout",
            "description": "Directory layout config"
          },
          "is_default": {
            "type": "boolean",
            "title": "Is Default",
            "description": "Whether this is the default"
          },
          "workload_type": {
            "type": "string",
            "title": "Workload Type",
            "description": "Workload type"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model",
            "description": "Default LLM model identifier"
          },
          "system_prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "System Prompt",
            "description": "System prompt"
          },
          "resource_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Resource Config",
            "description": "Resource allocation config"
          },
          "mcp_servers": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Mcp Servers",
            "description": "MCP server configurations"
          },
          "env_vars": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Env Vars",
            "description": "Environment variables"
          },
          "env_secret_refs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Env Secret Refs",
            "description": "K8s secret references"
          },
          "workload_config": {
            "additionalProperties": true,
            "type": "object",
            "title": "Workload Config",
            "description": "Workload-specific config"
          },
          "session_definition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Definition",
            "description": "Skuld session definition CRD name"
          }
        },
        "type": "object",
        "required": [
          "name",
          "description",
          "repos",
          "setup_scripts",
          "workspace_layout",
          "is_default",
          "workload_type",
          "model",
          "system_prompt",
          "resource_config",
          "mcp_servers",
          "env_vars",
          "env_secret_refs",
          "workload_config"
        ],
        "title": "TemplateResponse",
        "description": "Response model for a workspace template (unified blueprint)."
      },
      "TenantCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "description": "Human-readable tenant name"
          },
          "tenant_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id",
            "description": "Custom tenant ID (auto-generated if omitted)"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id",
            "description": "Parent tenant ID for hierarchy"
          },
          "tier": {
            "type": "string",
            "title": "Tier",
            "description": "Tenant tier (developer, team, enterprise)",
            "default": "developer"
          },
          "max_sessions": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Max Sessions",
            "description": "Maximum concurrent sessions allowed",
            "default": 5
          },
          "max_storage_gb": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Max Storage Gb",
            "description": "Maximum storage quota in GB",
            "default": 50
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "TenantCreate",
        "description": "Request model for creating a tenant."
      },
      "TenantResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique tenant identifier"
          },
          "path": {
            "type": "string",
            "title": "Path",
            "description": "Materialized tenant hierarchy path"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Tenant display name"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id",
            "description": "Parent tenant ID"
          },
          "tier": {
            "type": "string",
            "title": "Tier",
            "description": "Tenant tier classification"
          },
          "max_sessions": {
            "type": "integer",
            "title": "Max Sessions",
            "description": "Maximum concurrent sessions"
          },
          "max_storage_gb": {
            "type": "integer",
            "title": "Max Storage Gb",
            "description": "Maximum storage quota in GB"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          }
        },
        "type": "object",
        "required": [
          "id",
          "path",
          "name",
          "parent_id",
          "tier",
          "max_sessions",
          "max_storage_gb",
          "created_at"
        ],
        "title": "TenantResponse",
        "description": "Response model for a tenant."
      },
      "TenantUpdate": {
        "properties": {
          "max_sessions": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Sessions",
            "description": "New maximum concurrent sessions"
          },
          "max_storage_gb": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Storage Gb",
            "description": "New maximum storage quota in GB"
          },
          "tier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tier",
            "description": "New tenant tier classification"
          }
        },
        "type": "object",
        "title": "TenantUpdate",
        "description": "Request model for updating tenant settings."
      },
      "TimelineCommitResponse": {
        "properties": {
          "hash": {
            "type": "string",
            "title": "Hash",
            "description": "Short commit hash"
          },
          "msg": {
            "type": "string",
            "title": "Msg",
            "description": "Commit message"
          },
          "time": {
            "type": "string",
            "title": "Time",
            "description": "Wall clock time (e.g. 14:35)"
          }
        },
        "type": "object",
        "required": [
          "hash",
          "msg",
          "time"
        ],
        "title": "TimelineCommitResponse",
        "description": "Response model for a commit summary in the timeline."
      },
      "TimelineEventCreate": {
        "properties": {
          "t": {
            "type": "integer",
            "minimum": 0.0,
            "title": "T",
            "description": "Seconds elapsed since session start"
          },
          "type": {
            "type": "string",
            "pattern": "^(session|message|file|git|terminal|error)$",
            "title": "Type",
            "description": "Event type"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "title": "Label",
            "description": "Display text"
          },
          "tokens": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokens",
            "description": "Tokens consumed (message events)"
          },
          "action": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(created|modified|deleted)$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action",
            "description": "File action (created, modified, deleted)"
          },
          "ins": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Ins",
            "description": "Lines inserted (file events)"
          },
          "del": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Del",
            "description": "Lines deleted (file events)"
          },
          "hash": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 40
              },
              {
                "type": "null"
              }
            ],
            "title": "Hash",
            "description": "Short commit hash (git events)"
          },
          "exit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit",
            "description": "Exit code (terminal events)"
          }
        },
        "type": "object",
        "required": [
          "t",
          "type",
          "label"
        ],
        "title": "TimelineEventCreate",
        "description": "Request model for adding a timeline event."
      },
      "TimelineEventResponse": {
        "properties": {
          "t": {
            "type": "integer",
            "title": "T",
            "description": "Seconds elapsed since session start"
          },
          "type": {
            "type": "string",
            "title": "Type",
            "description": "Event type (session, message, file, etc.)"
          },
          "label": {
            "type": "string",
            "title": "Label",
            "description": "Display text for the event"
          },
          "tokens": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokens",
            "description": "Tokens consumed (message events)"
          },
          "action": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action",
            "description": "File action (created, modified, deleted)"
          },
          "ins": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ins",
            "description": "Lines inserted (file events)"
          },
          "del": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Del",
            "description": "Lines deleted (file events)"
          },
          "hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hash",
            "description": "Short commit hash (git events)"
          },
          "exit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit",
            "description": "Exit code (terminal events)"
          }
        },
        "type": "object",
        "required": [
          "t",
          "type",
          "label"
        ],
        "title": "TimelineEventResponse",
        "description": "Response model for a single timeline event."
      },
      "TimelineFileResponse": {
        "properties": {
          "path": {
            "type": "string",
            "title": "Path",
            "description": "File path relative to the workspace"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Change status: new, mod, or del"
          },
          "ins": {
            "type": "integer",
            "title": "Ins",
            "description": "Total lines inserted"
          },
          "del": {
            "type": "integer",
            "title": "Del",
            "description": "Total lines deleted"
          }
        },
        "type": "object",
        "required": [
          "path",
          "status",
          "ins",
          "del"
        ],
        "title": "TimelineFileResponse",
        "description": "Response model for a file summary in the timeline."
      },
      "TimelineResponseModel": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/TimelineEventResponse"
            },
            "type": "array",
            "title": "Events",
            "description": "Ordered list of timeline events"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/TimelineFileResponse"
            },
            "type": "array",
            "title": "Files",
            "description": "Aggregated file change summaries"
          },
          "commits": {
            "items": {
              "$ref": "#/components/schemas/TimelineCommitResponse"
            },
            "type": "array",
            "title": "Commits",
            "description": "Commit summaries"
          },
          "token_burn": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Token Burn",
            "description": "Token usage per time bucket"
          }
        },
        "type": "object",
        "required": [
          "events",
          "files",
          "commits",
          "token_burn"
        ],
        "title": "TimelineResponseModel",
        "description": "Response model for the full timeline."
      },
      "TokenUsageReport": {
        "properties": {
          "tokens": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Tokens",
            "description": "Number of tokens used"
          },
          "provider": {
            "type": "string",
            "pattern": "^(cloud|local)$",
            "title": "Provider",
            "description": "Model provider (cloud or local)"
          },
          "model": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Model",
            "description": "Model identifier"
          },
          "message_count": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Message Count",
            "description": "Number of messages in this usage report",
            "default": 1
          },
          "cost": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost",
            "description": "Pre-calculated cost in USD (from CLI)"
          }
        },
        "type": "object",
        "required": [
          "tokens",
          "provider",
          "model"
        ],
        "title": "TokenUsageReport",
        "description": "Request model for reporting token usage."
      },
      "TokenUsageResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Usage record identifier"
          },
          "session_id": {
            "type": "string",
            "title": "Session Id",
            "description": "Session the usage belongs to"
          },
          "recorded_at": {
            "type": "string",
            "title": "Recorded At",
            "description": "ISO 8601 timestamp of recording"
          },
          "tokens": {
            "type": "integer",
            "title": "Tokens",
            "description": "Number of tokens used"
          },
          "provider": {
            "type": "string",
            "title": "Provider",
            "description": "Model provider (cloud or local)"
          },
          "model": {
            "type": "string",
            "title": "Model",
            "description": "Model identifier"
          },
          "cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cost",
            "description": "Cost in USD (null for local)"
          }
        },
        "type": "object",
        "required": [
          "id",
          "session_id",
          "recorded_at",
          "tokens",
          "provider",
          "model",
          "cost"
        ],
        "title": "TokenUsageResponse",
        "description": "Response model for token usage record."
      },
      "UserResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique user identifier"
          },
          "email": {
            "type": "string",
            "title": "Email",
            "description": "User email address"
          },
          "display_name": {
            "type": "string",
            "title": "Display Name",
            "description": "Human-readable display name"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Account status"
          },
          "home_pvc": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Home Pvc",
            "description": "Kubernetes PVC name for home storage"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email",
          "display_name",
          "status",
          "created_at"
        ],
        "title": "UserResponse",
        "description": "Response model for a user."
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "WorkspaceResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id",
            "description": "Unique workspace identifier"
          },
          "session_id": {
            "type": "string",
            "format": "uuid",
            "title": "Session Id",
            "description": "Session this workspace belongs to"
          },
          "user_id": {
            "type": "string",
            "title": "User Id",
            "description": "Owner user ID"
          },
          "tenant_id": {
            "type": "string",
            "title": "Tenant Id",
            "description": "Tenant ID"
          },
          "pvc_name": {
            "type": "string",
            "title": "Pvc Name",
            "description": "Kubernetes PVC name"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Workspace status (active, archived)"
          },
          "size_gb": {
            "type": "integer",
            "title": "Size Gb",
            "description": "Allocated storage in GB"
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "ISO 8601 creation timestamp"
          },
          "archived_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Archived At",
            "description": "ISO 8601 archive timestamp"
          },
          "deleted_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deleted At",
            "description": "ISO 8601 deletion timestamp"
          },
          "session_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Name",
            "description": "Name of the associated session"
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Url",
            "description": "Git repository URL if applicable"
          },
          "source_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ref",
            "description": "Git branch/ref if applicable"
          }
        },
        "type": "object",
        "required": [
          "id",
          "session_id",
          "user_id",
          "tenant_id",
          "pvc_name",
          "status",
          "size_gb",
          "created_at",
          "archived_at",
          "deleted_at"
        ],
        "title": "WorkspaceResponse",
        "description": "Response model for a workspace."
      },
      "volundr__adapters__inbound__rest__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      },
      "volundr__adapters__inbound__rest_git__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      },
      "volundr__adapters__inbound__rest_presets__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      },
      "volundr__adapters__inbound__rest_profiles__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      },
      "volundr__adapters__inbound__rest_prompts__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      },
      "volundr__adapters__inbound__rest_secrets__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message",
            "examples": [
              "Secret not found: my-secret"
            ]
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      },
      "volundr__adapters__inbound__rest_tracker__ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail",
            "description": "Human-readable error message"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "description": "Response model for errors."
      }
    }
  },
  "tags": [
    {
      "name": "Sessions",
      "description": "Session lifecycle management \u2014 create, start, stop, delete sessions and report token usage."
    },
    {
      "name": "Chronicles",
      "description": "Session history records \u2014 snapshots of completed or in-progress sessions, reforge chains, and broker reports."
    },
    {
      "name": "Timeline",
      "description": "Granular event timelines within a chronicle \u2014 messages, file edits, git commits, and terminal activity."
    },
    {
      "name": "Models & Stats",
      "description": "Available LLM models, per-session token usage, and aggregate statistics."
    },
    {
      "name": "Repositories",
      "description": "Git repository registry \u2014 sources available for cloning into sessions."
    },
    {
      "name": "Profiles",
      "description": "Forge profiles \u2014 resource and workload configuration presets (read-only, config-driven)."
    },
    {
      "name": "Templates",
      "description": "Workspace templates \u2014 multi-repo workspace layouts with setup scripts (read-only, config-driven)."
    },
    {
      "name": "Git Workflow",
      "description": "Git workflow operations \u2014 create PRs from sessions, merge, check CI status, and calculate merge confidence."
    },
    {
      "name": "MCP Servers",
      "description": "MCP server catalogue \u2014 available Model Context Protocol servers."
    },
    {
      "name": "Secrets",
      "description": "Kubernetes secret management \u2014 list and create mountable secrets for sessions."
    },
    {
      "name": "Presets",
      "description": "Runtime configuration presets \u2014 portable, DB-stored bundles of model, MCP servers, resources, and environment config."
    },
    {
      "name": "Issue Tracker",
      "description": "External issue tracker integration \u2014 search issues, update status, and manage repo-to-project mappings."
    },
    {
      "name": "Tenants & Users",
      "description": "Multi-tenant management \u2014 tenants, user memberships, and role assignments."
    },
    {
      "name": "Credentials",
      "description": "User credential management \u2014 store and retrieve secrets for session injection."
    },
    {
      "name": "Events",
      "description": "Server-Sent Events stream for real-time session updates."
    },
    {
      "name": "Integrations",
      "description": "External service integrations \u2014 configure and test connections to third-party tools."
    },
    {
      "name": "Admin",
      "description": "Administrative settings \u2014 runtime-toggleable configuration for storage, features, and policies."
    },
    {
      "name": "Resources",
      "description": "Cluster resource discovery \u2014 available CPU, memory, and GPU capacity."
    }
  ]
}
