// Package swagger Code generated by swaggo/swag. DO NOT EDIT
package swagger

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {
            "name": "Charm",
            "url": "https://charm.sh"
        },
        "license": {
            "name": "MIT",
            "url": "https://github.com/charmbracelet/crush/blob/main/LICENSE"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/config": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "system"
                ],
                "summary": "Get server config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    }
                }
            }
        },
        "/control": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "system"
                ],
                "summary": "Send server control command",
                "parameters": [
                    {
                        "description": "Control command (e.g. shutdown)",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ServerControl"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/health": {
            "get": {
                "tags": [
                    "system"
                ],
                "summary": "Health check",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/version": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "system"
                ],
                "summary": "Get server version",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.VersionInfo"
                        }
                    }
                }
            }
        },
        "/workspaces": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "List workspaces",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/proto.Workspace"
                            }
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "Create workspace",
                "parameters": [
                    {
                        "description": "Workspace creation params",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.Workspace"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.Workspace"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "Get workspace",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.Workspace"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "workspaces"
                ],
                "summary": "Delete workspace",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "agent"
                ],
                "summary": "Get agent info",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.AgentInfo"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "agent"
                ],
                "summary": "Send message to agent",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Agent message",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.AgentMessage"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/default-small-model": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "agent"
                ],
                "summary": "Get default small model",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Provider ID",
                        "name": "provider_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/init": {
            "post": {
                "tags": [
                    "agent"
                ],
                "summary": "Initialize agent",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/sessions/{sid}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "agent"
                ],
                "summary": "Get agent session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.AgentSession"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/sessions/{sid}/cancel": {
            "post": {
                "tags": [
                    "agent"
                ],
                "summary": "Cancel agent session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/sessions/{sid}/prompts/clear": {
            "post": {
                "tags": [
                    "agent"
                ],
                "summary": "Clear prompt queue",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/sessions/{sid}/prompts/list": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "agent"
                ],
                "summary": "List queued prompts",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/sessions/{sid}/prompts/queued": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "agent"
                ],
                "summary": "Get queued prompt status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/sessions/{sid}/summarize": {
            "post": {
                "tags": [
                    "agent"
                ],
                "summary": "Summarize session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/agent/update": {
            "post": {
                "tags": [
                    "agent"
                ],
                "summary": "Update agent",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "Get workspace config",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/compact": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Set compact mode",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Config compact request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ConfigCompactRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/import-copilot": {
            "post": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Import Copilot credentials",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.ImportCopilotResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/model": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Set the preferred model",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Config model request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ConfigModelRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/provider-key": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Set provider API key",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Config provider key request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ConfigProviderKeyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/refresh-oauth": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Refresh OAuth token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Refresh OAuth request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ConfigRefreshOAuthRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/remove": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Remove a config field",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Config remove request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ConfigRemoveRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/config/set": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "config"
                ],
                "summary": "Set a config field",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Config set request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.ConfigSetRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/events": {
            "get": {
                "produces": [
                    "text/event-stream"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "Stream workspace events (SSE)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/filetracker/lastread": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "filetracker"
                ],
                "summary": "Get last read time for file",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "session_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "File path",
                        "name": "path",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/filetracker/read": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "filetracker"
                ],
                "summary": "Record file read",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "File tracker read request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.FileTrackerReadRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/lsps": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "lsp"
                ],
                "summary": "List LSP clients",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "$ref": "#/definitions/proto.LSPClientInfo"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/lsps/start": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "lsp"
                ],
                "summary": "Start LSP server",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "LSP start request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.LSPStartRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/lsps/stop": {
            "post": {
                "tags": [
                    "lsp"
                ],
                "summary": "Stop all LSP servers",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/lsps/{lsp}/diagnostics": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "lsp"
                ],
                "summary": "Get LSP diagnostics",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "LSP client name",
                        "name": "lsp",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/mcp/get-prompt": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "mcp"
                ],
                "summary": "Get MCP prompt",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCP get prompt request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.MCPGetPromptRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.MCPGetPromptResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/mcp/read-resource": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "mcp"
                ],
                "summary": "Read MCP resource",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCP read resource request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.MCPReadResourceRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/mcp/refresh-prompts": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "mcp"
                ],
                "summary": "Refresh MCP prompts",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCP name request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.MCPNameRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/mcp/refresh-resources": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "mcp"
                ],
                "summary": "Refresh MCP resources",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCP name request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.MCPNameRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/mcp/refresh-tools": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "mcp"
                ],
                "summary": "Refresh MCP tools",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "MCP name request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.MCPNameRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/mcp/states": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "mcp"
                ],
                "summary": "Get MCP client states",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "$ref": "#/definitions/proto.MCPClientInfo"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/messages/user": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "Get all user messages for workspace",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_charmbracelet_crush_internal_proto.Message"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/permissions/grant": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "permissions"
                ],
                "summary": "Grant permission",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Permission grant",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.PermissionGrant"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/permissions/skip": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "permissions"
                ],
                "summary": "Get skip permissions status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.PermissionSkipRequest"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "permissions"
                ],
                "summary": "Set skip permissions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Permission skip request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.PermissionSkipRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/project/init": {
            "post": {
                "tags": [
                    "project"
                ],
                "summary": "Mark project as initialized",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/project/init-prompt": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "project"
                ],
                "summary": "Get project initialization prompt",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.ProjectInitPromptResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/project/needs-init": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "project"
                ],
                "summary": "Check if project needs initialization",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.ProjectNeedsInitResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/providers": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "workspaces"
                ],
                "summary": "Get workspace providers",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/sessions": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "List sessions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/proto.Session"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "Create session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Session creation params (title)",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.Session"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.Session"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/sessions/{sid}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "Get session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.Session"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            },
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "Update session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Updated session",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/proto.Session"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/proto.Session"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "sessions"
                ],
                "summary": "Delete session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/sessions/{sid}/filetracker/files": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "filetracker"
                ],
                "summary": "List tracked files for session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/sessions/{sid}/history": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "Get session history",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/proto.File"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/sessions/{sid}/messages": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "Get session messages",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_charmbracelet_crush_internal_proto.Message"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        },
        "/workspaces/{id}/sessions/{sid}/messages/user": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "sessions"
                ],
                "summary": "Get user messages for session",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "sid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/github_com_charmbracelet_crush_internal_proto.Message"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/proto.Error"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "catwalk.Model": {
            "type": "object",
            "properties": {
                "can_reason": {
                    "type": "boolean"
                },
                "context_window": {
                    "type": "integer"
                },
                "cost_per_1m_in": {
                    "type": "number"
                },
                "cost_per_1m_in_cached": {
                    "type": "number"
                },
                "cost_per_1m_out": {
                    "type": "number"
                },
                "cost_per_1m_out_cached": {
                    "type": "number"
                },
                "default_max_tokens": {
                    "type": "integer"
                },
                "default_reasoning_effort": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "options": {
                    "$ref": "#/definitions/catwalk.ModelOptions"
                },
                "reasoning_levels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "supports_attachments": {
                    "type": "boolean"
                }
            }
        },
        "catwalk.ModelOptions": {
            "type": "object",
            "properties": {
                "frequency_penalty": {
                    "type": "number"
                },
                "presence_penalty": {
                    "type": "number"
                },
                "provider_options": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "temperature": {
                    "type": "number"
                },
                "top_k": {
                    "type": "integer"
                },
                "top_p": {
                    "type": "number"
                }
            }
        },
        "config.Attribution": {
            "type": "object",
            "properties": {
                "co_authored_by": {
                    "type": "boolean"
                },
                "generated_with": {
                    "type": "boolean"
                },
                "trailer_style": {
                    "$ref": "#/definitions/config.TrailerStyle"
                }
            }
        },
        "config.Completions": {
            "type": "object",
            "properties": {
                "max_depth": {
                    "type": "integer"
                },
                "max_items": {
                    "type": "integer"
                }
            }
        },
        "config.LSPConfig": {
            "type": "object",
            "properties": {
                "args": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "command": {
                    "type": "string"
                },
                "disabled": {
                    "type": "boolean"
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "filetypes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "init_options": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "options": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "root_markers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "timeout": {
                    "type": "integer"
                }
            }
        },
        "config.LSPs": {
            "type": "object",
            "additionalProperties": {
                "$ref": "#/definitions/config.LSPConfig"
            }
        },
        "config.MCPConfig": {
            "type": "object",
            "properties": {
                "args": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "command": {
                    "type": "string"
                },
                "disabled": {
                    "type": "boolean"
                },
                "disabled_tools": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "env": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "headers": {
                    "description": "TODO: maybe make it possible to get the value from the env",
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "timeout": {
                    "type": "integer"
                },
                "type": {
                    "$ref": "#/definitions/config.MCPType"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "config.MCPType": {
            "type": "string",
            "enum": [
                "stdio",
                "sse",
                "http"
            ],
            "x-enum-varnames": [
                "MCPStdio",
                "MCPSSE",
                "MCPHttp"
            ]
        },
        "config.MCPs": {
            "type": "object",
            "additionalProperties": {
                "$ref": "#/definitions/config.MCPConfig"
            }
        },
        "config.Permissions": {
            "type": "object",
            "properties": {
                "allowed_tools": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "config.Scope": {
            "type": "integer",
            "enum": [
                0,
                1
            ],
            "x-enum-varnames": [
                "ScopeGlobal",
                "ScopeWorkspace"
            ]
        },
        "config.SelectedModel": {
            "type": "object",
            "properties": {
                "frequency_penalty": {
                    "type": "number"
                },
                "max_tokens": {
                    "description": "Overrides the default model configuration.",
                    "type": "integer"
                },
                "model": {
                    "description": "The model id as used by the provider API.\nRequired.",
                    "type": "string"
                },
                "presence_penalty": {
                    "type": "number"
                },
                "provider": {
                    "description": "The model provider, same as the key/id used in the providers config.\nRequired.",
                    "type": "string"
                },
                "provider_options": {
                    "description": "Override provider specific options.",
                    "type": "object",
                    "additionalProperties": {}
                },
                "reasoning_effort": {
                    "description": "Only used by models that use the openai provider and need this set.",
                    "type": "string"
                },
                "temperature": {
                    "type": "number"
                },
                "think": {
                    "description": "Used by anthropic models that can reason to indicate if the model should think.",
                    "type": "boolean"
                },
                "top_k": {
                    "type": "integer"
                },
                "top_p": {
                    "type": "number"
                }
            }
        },
        "config.SelectedModelType": {
            "type": "string",
            "enum": [
                "large",
                "small"
            ],
            "x-enum-varnames": [
                "SelectedModelTypeLarge",
                "SelectedModelTypeSmall"
            ]
        },
        "config.TUIOptions": {
            "type": "object",
            "properties": {
                "compact_mode": {
                    "type": "boolean"
                },
                "completions": {
                    "$ref": "#/definitions/config.Completions"
                },
                "diff_mode": {
                    "type": "string"
                },
                "transparent": {
                    "type": "boolean"
                }
            }
        },
        "config.ToolGrep": {
            "type": "object",
            "properties": {
                "timeout": {
                    "$ref": "#/definitions/time.Duration"
                }
            }
        },
        "config.ToolLs": {
            "type": "object",
            "properties": {
                "max_depth": {
                    "type": "integer"
                },
                "max_items": {
                    "type": "integer"
                }
            }
        },
        "config.Tools": {
            "type": "object",
            "properties": {
                "grep": {
                    "$ref": "#/definitions/config.ToolGrep"
                },
                "ls": {
                    "$ref": "#/definitions/config.ToolLs"
                }
            }
        },
        "config.TrailerStyle": {
            "type": "string",
            "enum": [
                "none",
                "co-authored-by",
                "assisted-by"
            ],
            "x-enum-varnames": [
                "TrailerStyleNone",
                "TrailerStyleCoAuthoredBy",
                "TrailerStyleAssistedBy"
            ]
        },
        "csync.Map-string-config_ProviderConfig": {
            "type": "object"
        },
        "github_com_charmbracelet_crush_internal_config.Config": {
            "type": "object",
            "properties": {
                "$schema": {
                    "type": "string"
                },
                "lsp": {
                    "$ref": "#/definitions/config.LSPs"
                },
                "mcp": {
                    "$ref": "#/definitions/config.MCPs"
                },
                "models": {
                    "description": "We currently only support large/small as values here.",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/config.SelectedModel"
                    }
                },
                "options": {
                    "$ref": "#/definitions/github_com_charmbracelet_crush_internal_config.Options"
                },
                "permissions": {
                    "$ref": "#/definitions/config.Permissions"
                },
                "providers": {
                    "description": "The providers that are configured",
                    "allOf": [
                        {
                            "$ref": "#/definitions/csync.Map-string-config_ProviderConfig"
                        }
                    ]
                },
                "recent_models": {
                    "description": "Recently used models stored in the data directory config.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/config.SelectedModel"
                        }
                    }
                },
                "tools": {
                    "$ref": "#/definitions/config.Tools"
                }
            }
        },
        "github_com_charmbracelet_crush_internal_config.Options": {
            "type": "object",
            "properties": {
                "attribution": {
                    "$ref": "#/definitions/config.Attribution"
                },
                "auto_lsp": {
                    "type": "boolean"
                },
                "context_paths": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "data_directory": {
                    "description": "Relative to the cwd",
                    "type": "string"
                },
                "debug": {
                    "type": "boolean"
                },
                "debug_lsp": {
                    "type": "boolean"
                },
                "disable_auto_summarize": {
                    "type": "boolean"
                },
                "disable_default_providers": {
                    "type": "boolean"
                },
                "disable_metrics": {
                    "type": "boolean"
                },
                "disable_notifications": {
                    "type": "boolean"
                },
                "disable_provider_auto_update": {
                    "type": "boolean"
                },
                "disabled_tools": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "initialize_as": {
                    "type": "string"
                },
                "progress": {
                    "type": "boolean"
                },
                "skills_paths": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tui": {
                    "$ref": "#/definitions/config.TUIOptions"
                }
            }
        },
        "github_com_charmbracelet_crush_internal_proto.Message": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "parts": {
                    "type": "array",
                    "items": {}
                },
                "provider": {
                    "type": "string"
                },
                "role": {
                    "$ref": "#/definitions/proto.MessageRole"
                },
                "session_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "lsp.ServerState": {
            "type": "integer",
            "enum": [
                0,
                1,
                2,
                3,
                4,
                5
            ],
            "x-enum-varnames": [
                "StateUnstarted",
                "StateStarting",
                "StateReady",
                "StateError",
                "StateStopped",
                "StateDisabled"
            ]
        },
        "proto.AgentInfo": {
            "type": "object",
            "properties": {
                "is_busy": {
                    "type": "boolean"
                },
                "is_ready": {
                    "type": "boolean"
                },
                "model": {
                    "$ref": "#/definitions/catwalk.Model"
                },
                "model_cfg": {
                    "$ref": "#/definitions/config.SelectedModel"
                }
            }
        },
        "proto.AgentMessage": {
            "type": "object",
            "properties": {
                "attachments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/proto.Attachment"
                    }
                },
                "prompt": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                }
            }
        },
        "proto.AgentSession": {
            "type": "object",
            "properties": {
                "completion_tokens": {
                    "type": "integer"
                },
                "cost": {
                    "type": "number"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "is_busy": {
                    "type": "boolean"
                },
                "message_count": {
                    "type": "integer"
                },
                "parent_session_id": {
                    "type": "string"
                },
                "prompt_tokens": {
                    "type": "integer"
                },
                "summary_message_id": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "proto.Attachment": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "file_name": {
                    "type": "string"
                },
                "file_path": {
                    "type": "string"
                },
                "mime_type": {
                    "type": "string"
                }
            }
        },
        "proto.ConfigCompactRequest": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "scope": {
                    "$ref": "#/definitions/config.Scope"
                }
            }
        },
        "proto.ConfigModelRequest": {
            "type": "object",
            "properties": {
                "model": {
                    "$ref": "#/definitions/config.SelectedModel"
                },
                "model_type": {
                    "$ref": "#/definitions/config.SelectedModelType"
                },
                "scope": {
                    "$ref": "#/definitions/config.Scope"
                }
            }
        },
        "proto.ConfigProviderKeyRequest": {
            "type": "object",
            "properties": {
                "api_key": {},
                "provider_id": {
                    "type": "string"
                },
                "scope": {
                    "$ref": "#/definitions/config.Scope"
                }
            }
        },
        "proto.ConfigRefreshOAuthRequest": {
            "type": "object",
            "properties": {
                "provider_id": {
                    "type": "string"
                },
                "scope": {
                    "$ref": "#/definitions/config.Scope"
                }
            }
        },
        "proto.ConfigRemoveRequest": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "scope": {
                    "$ref": "#/definitions/config.Scope"
                }
            }
        },
        "proto.ConfigSetRequest": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "scope": {
                    "$ref": "#/definitions/config.Scope"
                },
                "value": {}
            }
        },
        "proto.Error": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "proto.File": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                },
                "version": {
                    "type": "integer"
                }
            }
        },
        "proto.FileTrackerReadRequest": {
            "type": "object",
            "properties": {
                "path": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                }
            }
        },
        "proto.ImportCopilotResponse": {
            "type": "object",
            "properties": {
                "success": {
                    "type": "boolean"
                },
                "token": {}
            }
        },
        "proto.LSPClientInfo": {
            "type": "object",
            "properties": {
                "connected_at": {
                    "type": "string"
                },
                "diagnostic_count": {
                    "type": "integer"
                },
                "error": {},
                "name": {
                    "type": "string"
                },
                "state": {
                    "$ref": "#/definitions/lsp.ServerState"
                }
            }
        },
        "proto.LSPStartRequest": {
            "type": "object",
            "properties": {
                "path": {
                    "type": "string"
                }
            }
        },
        "proto.MCPClientInfo": {
            "type": "object",
            "properties": {
                "connected_at": {
                    "type": "string"
                },
                "error": {},
                "name": {
                    "type": "string"
                },
                "prompt_count": {
                    "type": "integer"
                },
                "resource_count": {
                    "type": "integer"
                },
                "state": {
                    "$ref": "#/definitions/proto.MCPState"
                },
                "tool_count": {
                    "type": "integer"
                }
            }
        },
        "proto.MCPGetPromptRequest": {
            "type": "object",
            "properties": {
                "args": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "client_id": {
                    "type": "string"
                },
                "prompt_id": {
                    "type": "string"
                }
            }
        },
        "proto.MCPGetPromptResponse": {
            "type": "object",
            "properties": {
                "prompt": {
                    "type": "string"
                }
            }
        },
        "proto.MCPNameRequest": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "proto.MCPReadResourceRequest": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "uri": {
                    "type": "string"
                }
            }
        },
        "proto.MCPState": {
            "type": "integer",
            "enum": [
                0,
                1,
                2,
                3
            ],
            "x-enum-varnames": [
                "MCPStateDisabled",
                "MCPStateStarting",
                "MCPStateConnected",
                "MCPStateError"
            ]
        },
        "proto.MessageRole": {
            "type": "string",
            "enum": [
                "assistant",
                "user",
                "system",
                "tool"
            ],
            "x-enum-varnames": [
                "Assistant",
                "User",
                "System",
                "Tool"
            ]
        },
        "proto.PermissionAction": {
            "type": "string",
            "enum": [
                "allow",
                "allow_session",
                "deny"
            ],
            "x-enum-varnames": [
                "PermissionAllow",
                "PermissionAllowForSession",
                "PermissionDeny"
            ]
        },
        "proto.PermissionGrant": {
            "type": "object",
            "properties": {
                "action": {
                    "$ref": "#/definitions/proto.PermissionAction"
                },
                "permission": {
                    "$ref": "#/definitions/proto.PermissionRequest"
                }
            }
        },
        "proto.PermissionRequest": {
            "type": "object",
            "properties": {
                "action": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "params": {},
                "path": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                },
                "tool_call_id": {
                    "type": "string"
                },
                "tool_name": {
                    "type": "string"
                }
            }
        },
        "proto.PermissionSkipRequest": {
            "type": "object",
            "properties": {
                "skip": {
                    "type": "boolean"
                }
            }
        },
        "proto.ProjectInitPromptResponse": {
            "type": "object",
            "properties": {
                "prompt": {
                    "type": "string"
                }
            }
        },
        "proto.ProjectNeedsInitResponse": {
            "type": "object",
            "properties": {
                "needs_init": {
                    "type": "boolean"
                }
            }
        },
        "proto.ServerControl": {
            "type": "object",
            "properties": {
                "command": {
                    "type": "string"
                }
            }
        },
        "proto.Session": {
            "type": "object",
            "properties": {
                "completion_tokens": {
                    "type": "integer"
                },
                "cost": {
                    "type": "number"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "message_count": {
                    "type": "integer"
                },
                "parent_session_id": {
                    "type": "string"
                },
                "prompt_tokens": {
                    "type": "integer"
                },
                "summary_message_id": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "proto.VersionInfo": {
            "type": "object",
            "properties": {
                "commit": {
                    "type": "string"
                },
                "go_version": {
                    "type": "string"
                },
                "platform": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "proto.Workspace": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/github_com_charmbracelet_crush_internal_config.Config"
                },
                "data_dir": {
                    "type": "string"
                },
                "debug": {
                    "type": "boolean"
                },
                "env": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "id": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                },
                "yolo": {
                    "type": "boolean"
                }
            }
        },
        "time.Duration": {
            "type": "integer",
            "format": "int64",
            "enum": [
                -9223372036854775808,
                9223372036854775807,
                1,
                1000,
                1000000,
                1000000000,
                60000000000,
                3600000000000
            ],
            "x-enum-varnames": [
                "minDuration",
                "maxDuration",
                "Nanosecond",
                "Microsecond",
                "Millisecond",
                "Second",
                "Minute",
                "Hour"
            ]
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "",
	BasePath:         "/v1",
	Schemes:          []string{},
	Title:            "Crush API",
	Description:      "Crush is a terminal-based AI coding assistant. This API is served over a Unix socket (or Windows named pipe) and provides programmatic access to workspaces, sessions, agents, LSP, MCP, and more.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
