mirror of
https://github.com/charmbracelet/crush.git
synced 2026-05-30 18:47:33 +00:00
3590 lines
116 KiB
Go
3590 lines
116 KiB
Go
// 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": "DataDirectory is where Crush keeps per-project state such as the SQLite database and workspace overrides. Relative paths are resolved against the working directory; absolute paths are used verbatim. After defaulting the stored value is always absolute.",
|
|
"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)
|
|
}
|