// 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) }