{
  "swagger": "2.0",
  "info": {
    "description": "Daytona Toolbox API",
    "title": "Daytona Toolbox API",
    "contact": {},
    "license": {
      "name": "Apache-2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    },
    "version": "v0.0.0-dev"
  },
  "paths": {
    "/computeruse/a11y/find": {
      "post": {
        "description": "Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Find accessibility nodes",
        "operationId": "FindAccessibilityNodes",
        "parameters": [
          {
            "description": "Find request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FindAccessibilityNodesRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AccessibilityNodesResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/a11y/node/focus": {
      "post": {
        "description": "Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Focus an accessibility node",
        "operationId": "FocusAccessibilityNode",
        "parameters": [
          {
            "description": "Node focus request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AccessibilityNodeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/a11y/node/invoke": {
      "post": {
        "description": "Call an AT-SPI Action on the node. Leave action empty to invoke the node's primary (first) action.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Invoke an action on an accessibility node",
        "operationId": "InvokeAccessibilityNode",
        "parameters": [
          {
            "description": "Invoke request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AccessibilityInvokeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/a11y/node/value": {
      "post": {
        "description": "Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Set the value of an accessibility node",
        "operationId": "SetAccessibilityNodeValue",
        "parameters": [
          {
            "description": "Set value request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AccessibilitySetValueRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/a11y/tree": {
      "get": {
        "description": "Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get accessibility tree",
        "operationId": "GetAccessibilityTree",
        "parameters": [
          {
            "type": "string",
            "description": "Scope: focused | pid | all (default: focused)",
            "name": "scope",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "Process ID when scope=pid",
            "name": "pid",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "Max tree depth (-1 unbounded, 0 root only; default -1)",
            "name": "maxDepth",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AccessibilityTreeResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/display/info": {
      "get": {
        "description": "Get information about all available displays",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get display information",
        "operationId": "GetDisplayInfo",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DisplayInfoResponse"
            }
          }
        }
      }
    },
    "/computeruse/display/windows": {
      "get": {
        "description": "Get information about all open windows",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get windows information",
        "operationId": "GetWindows",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/WindowsResponse"
            }
          }
        }
      }
    },
    "/computeruse/keyboard/hotkey": {
      "post": {
        "description": "Press a hotkey combination (e.g., ctrl+c, cmd+v)",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Press hotkey",
        "operationId": "PressHotkey",
        "parameters": [
          {
            "description": "Hotkey press request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/KeyboardHotkeyRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          }
        }
      }
    },
    "/computeruse/keyboard/key": {
      "post": {
        "description": "Press a key with optional modifiers",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Press key",
        "operationId": "PressKey",
        "parameters": [
          {
            "description": "Key press request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/KeyboardPressRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          }
        }
      }
    },
    "/computeruse/keyboard/type": {
      "post": {
        "description": "Type text with optional delay between keystrokes",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Type text",
        "operationId": "TypeText",
        "parameters": [
          {
            "description": "Text typing request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/KeyboardTypeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          }
        }
      }
    },
    "/computeruse/mouse/click": {
      "post": {
        "description": "Click the mouse button at the specified coordinates",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Click mouse button",
        "operationId": "Click",
        "parameters": [
          {
            "description": "Mouse click request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MouseClickRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/MouseClickResponse"
            }
          }
        }
      }
    },
    "/computeruse/mouse/drag": {
      "post": {
        "description": "Drag the mouse from start to end coordinates",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Drag mouse",
        "operationId": "Drag",
        "parameters": [
          {
            "description": "Mouse drag request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MouseDragRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/MouseDragResponse"
            }
          }
        }
      }
    },
    "/computeruse/mouse/move": {
      "post": {
        "description": "Move the mouse cursor to the specified coordinates",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Move mouse cursor",
        "operationId": "MoveMouse",
        "parameters": [
          {
            "description": "Mouse move request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MouseMoveRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/MousePositionResponse"
            }
          }
        }
      }
    },
    "/computeruse/mouse/position": {
      "get": {
        "description": "Get the current mouse cursor position",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get mouse position",
        "operationId": "GetMousePosition",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/MousePositionResponse"
            }
          }
        }
      }
    },
    "/computeruse/mouse/scroll": {
      "post": {
        "description": "Scroll the mouse wheel at the specified coordinates",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Scroll mouse wheel",
        "operationId": "Scroll",
        "parameters": [
          {
            "description": "Mouse scroll request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MouseScrollRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ScrollResponse"
            }
          }
        }
      }
    },
    "/computeruse/process-status": {
      "get": {
        "description": "Get the status of all computer use processes",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get computer use process status",
        "operationId": "GetComputerUseStatus",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ComputerUseStatusResponse"
            }
          }
        }
      }
    },
    "/computeruse/process/{processName}/errors": {
      "get": {
        "description": "Get errors for a specific computer use process",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get process errors",
        "operationId": "GetProcessErrors",
        "parameters": [
          {
            "type": "string",
            "description": "Process name to get errors for",
            "name": "processName",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProcessErrorsResponse"
            }
          }
        }
      }
    },
    "/computeruse/process/{processName}/logs": {
      "get": {
        "description": "Get logs for a specific computer use process",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get process logs",
        "operationId": "GetProcessLogs",
        "parameters": [
          {
            "type": "string",
            "description": "Process name to get logs for",
            "name": "processName",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProcessLogsResponse"
            }
          }
        }
      }
    },
    "/computeruse/process/{processName}/restart": {
      "post": {
        "description": "Restart a specific computer use process",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Restart specific process",
        "operationId": "RestartProcess",
        "parameters": [
          {
            "type": "string",
            "description": "Process name to restart",
            "name": "processName",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProcessRestartResponse"
            }
          }
        }
      }
    },
    "/computeruse/process/{processName}/status": {
      "get": {
        "description": "Check if a specific computer use process is running",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get specific process status",
        "operationId": "GetProcessStatus",
        "parameters": [
          {
            "type": "string",
            "description": "Process name to check",
            "name": "processName",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ProcessStatusResponse"
            }
          }
        }
      }
    },
    "/computeruse/recordings": {
      "get": {
        "description": "Get a list of all recordings (active and completed)",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "List all recordings",
        "operationId": "ListRecordings",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ListRecordingsResponse"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/recordings/start": {
      "post": {
        "description": "Start a new screen recording session",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Start a new recording",
        "operationId": "StartRecording",
        "parameters": [
          {
            "description": "Recording options",
            "name": "request",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/StartRecordingRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Recording"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/recordings/stop": {
      "post": {
        "description": "Stop an active screen recording session",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Stop a recording",
        "operationId": "StopRecording",
        "parameters": [
          {
            "description": "Recording ID to stop",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/StopRecordingRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Recording"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/recordings/{id}": {
      "get": {
        "description": "Get details of a specific recording by ID",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get recording details",
        "operationId": "GetRecording",
        "parameters": [
          {
            "type": "string",
            "description": "Recording ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Recording"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      },
      "delete": {
        "description": "Delete a recording file by ID",
        "tags": ["computer-use"],
        "summary": "Delete a recording",
        "operationId": "DeleteRecording",
        "parameters": [
          {
            "type": "string",
            "description": "Recording ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/recordings/{id}/download": {
      "get": {
        "description": "Download a recording by providing its ID",
        "produces": ["application/octet-stream"],
        "tags": ["computer-use"],
        "summary": "Download a recording",
        "operationId": "DownloadRecording",
        "parameters": [
          {
            "type": "string",
            "description": "Recording ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "file"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/computeruse/screenshot": {
      "get": {
        "description": "Take a screenshot of the entire screen",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Take a screenshot",
        "operationId": "TakeScreenshot",
        "parameters": [
          {
            "type": "boolean",
            "description": "Whether to show cursor in screenshot",
            "name": "showCursor",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ScreenshotResponse"
            }
          }
        }
      }
    },
    "/computeruse/screenshot/compressed": {
      "get": {
        "description": "Take a compressed screenshot of the entire screen",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Take a compressed screenshot",
        "operationId": "TakeCompressedScreenshot",
        "parameters": [
          {
            "type": "boolean",
            "description": "Whether to show cursor in screenshot",
            "name": "showCursor",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Image format (png or jpeg)",
            "name": "format",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "JPEG quality (1-100)",
            "name": "quality",
            "in": "query"
          },
          {
            "type": "number",
            "description": "Scale factor (0.1-1.0)",
            "name": "scale",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ScreenshotResponse"
            }
          }
        }
      }
    },
    "/computeruse/screenshot/region": {
      "get": {
        "description": "Take a screenshot of a specific region of the screen",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Take a region screenshot",
        "operationId": "TakeRegionScreenshot",
        "parameters": [
          {
            "type": "integer",
            "description": "X coordinate of the region",
            "name": "x",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "description": "Y coordinate of the region",
            "name": "y",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "description": "Width of the region",
            "name": "width",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "description": "Height of the region",
            "name": "height",
            "in": "query",
            "required": true
          },
          {
            "type": "boolean",
            "description": "Whether to show cursor in screenshot",
            "name": "showCursor",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ScreenshotResponse"
            }
          }
        }
      }
    },
    "/computeruse/screenshot/region/compressed": {
      "get": {
        "description": "Take a compressed screenshot of a specific region of the screen",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Take a compressed region screenshot",
        "operationId": "TakeCompressedRegionScreenshot",
        "parameters": [
          {
            "type": "integer",
            "description": "X coordinate of the region",
            "name": "x",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "description": "Y coordinate of the region",
            "name": "y",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "description": "Width of the region",
            "name": "width",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "description": "Height of the region",
            "name": "height",
            "in": "query",
            "required": true
          },
          {
            "type": "boolean",
            "description": "Whether to show cursor in screenshot",
            "name": "showCursor",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Image format (png or jpeg)",
            "name": "format",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "JPEG quality (1-100)",
            "name": "quality",
            "in": "query"
          },
          {
            "type": "number",
            "description": "Scale factor (0.1-1.0)",
            "name": "scale",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ScreenshotResponse"
            }
          }
        }
      }
    },
    "/computeruse/start": {
      "post": {
        "description": "Start all computer use processes and return their status",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Start computer use processes",
        "operationId": "StartComputerUse",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ComputerUseStartResponse"
            }
          }
        }
      }
    },
    "/computeruse/status": {
      "get": {
        "description": "Get the current status of the computer use system",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Get computer use status",
        "operationId": "GetComputerUseSystemStatus",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ComputerUseStatusResponse"
            }
          }
        }
      }
    },
    "/computeruse/stop": {
      "post": {
        "description": "Stop all computer use processes and return their status",
        "produces": ["application/json"],
        "tags": ["computer-use"],
        "summary": "Stop computer use processes",
        "operationId": "StopComputerUse",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ComputerUseStopResponse"
            }
          }
        }
      }
    },
    "/files": {
      "get": {
        "description": "List files and directories in the specified path",
        "produces": ["application/json"],
        "tags": ["file-system"],
        "summary": "List files and directories",
        "operationId": "ListFiles",
        "parameters": [
          {
            "type": "string",
            "description": "Directory path to list (defaults to working directory)",
            "name": "path",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FileInfo"
              }
            }
          }
        }
      },
      "delete": {
        "description": "Delete a file or directory at the specified path",
        "tags": ["file-system"],
        "summary": "Delete a file or directory",
        "operationId": "DeleteFile",
        "parameters": [
          {
            "type": "string",
            "description": "File or directory path to delete",
            "name": "path",
            "in": "query",
            "required": true
          },
          {
            "type": "boolean",
            "description": "Enable recursive deletion for directories",
            "name": "recursive",
            "in": "query"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/files/bulk-download": {
      "post": {
        "description": "Download multiple files by providing their paths. Successful files are returned as multipart parts named `file`. Per-file failures are returned as multipart parts named `error` with JSON payloads shaped like ErrorResponse.",
        "consumes": ["application/json"],
        "produces": ["multipart/form-data"],
        "tags": ["file-system"],
        "summary": "Download multiple files",
        "operationId": "DownloadFiles",
        "parameters": [
          {
            "description": "Paths of files to download",
            "name": "downloadFiles",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FilesDownloadRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Multipart response with file parts and JSON error parts",
            "schema": {
              "$ref": "#/definitions/gin.H"
            }
          }
        }
      }
    },
    "/files/bulk-upload": {
      "post": {
        "description": "Upload multiple files with their destination paths",
        "consumes": ["multipart/form-data"],
        "tags": ["file-system"],
        "summary": "Upload multiple files",
        "operationId": "UploadFiles",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/files/download": {
      "get": {
        "description": "Download a file by providing its path",
        "produces": ["application/octet-stream"],
        "tags": ["file-system"],
        "summary": "Download a file",
        "operationId": "DownloadFile",
        "parameters": [
          {
            "type": "string",
            "description": "File path to download",
            "name": "path",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/files/find": {
      "get": {
        "description": "Search for text pattern within files in a directory",
        "produces": ["application/json"],
        "tags": ["file-system"],
        "summary": "Find text in files",
        "operationId": "FindInFiles",
        "parameters": [
          {
            "type": "string",
            "description": "Directory path to search in",
            "name": "path",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Text pattern to search for",
            "name": "pattern",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Match"
              }
            }
          }
        }
      }
    },
    "/files/folder": {
      "post": {
        "description": "Create a folder with the specified path and optional permissions",
        "consumes": ["application/json"],
        "tags": ["file-system"],
        "summary": "Create a folder",
        "operationId": "CreateFolder",
        "parameters": [
          {
            "type": "string",
            "description": "Folder path to create",
            "name": "path",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Octal permission mode (default: 0755)",
            "name": "mode",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          }
        }
      }
    },
    "/files/info": {
      "get": {
        "description": "Get detailed information about a file or directory",
        "produces": ["application/json"],
        "tags": ["file-system"],
        "summary": "Get file information",
        "operationId": "GetFileInfo",
        "parameters": [
          {
            "type": "string",
            "description": "File or directory path",
            "name": "path",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/FileInfo"
            }
          }
        }
      }
    },
    "/files/move": {
      "post": {
        "description": "Move or rename a file or directory from source to destination",
        "tags": ["file-system"],
        "summary": "Move or rename file/directory",
        "operationId": "MoveFile",
        "parameters": [
          {
            "type": "string",
            "description": "Source file or directory path",
            "name": "source",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Destination file or directory path",
            "name": "destination",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/files/permissions": {
      "post": {
        "description": "Set file permissions, ownership, and group for a file or directory",
        "tags": ["file-system"],
        "summary": "Set file permissions",
        "operationId": "SetFilePermissions",
        "parameters": [
          {
            "type": "string",
            "description": "File or directory path",
            "name": "path",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Owner (username or UID)",
            "name": "owner",
            "in": "query"
          },
          {
            "type": "string",
            "description": "Group (group name or GID)",
            "name": "group",
            "in": "query"
          },
          {
            "type": "string",
            "description": "File mode in octal format (e.g., 0755)",
            "name": "mode",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/files/replace": {
      "post": {
        "description": "Replace text pattern with new value in multiple files",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["file-system"],
        "summary": "Replace text in files",
        "operationId": "ReplaceInFiles",
        "parameters": [
          {
            "description": "Replace request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReplaceRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ReplaceResult"
              }
            }
          }
        }
      }
    },
    "/files/search": {
      "get": {
        "description": "Search for files matching a specific pattern in a directory",
        "produces": ["application/json"],
        "tags": ["file-system"],
        "summary": "Search files by pattern",
        "operationId": "SearchFiles",
        "parameters": [
          {
            "type": "string",
            "description": "Directory path to search in",
            "name": "path",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "File pattern to match (e.g., *.txt, *.go)",
            "name": "pattern",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SearchFilesResponse"
            }
          }
        }
      }
    },
    "/files/upload": {
      "post": {
        "description": "Upload a file to the specified path",
        "consumes": ["multipart/form-data"],
        "tags": ["file-system"],
        "summary": "Upload a file",
        "operationId": "UploadFile",
        "parameters": [
          {
            "type": "string",
            "description": "Destination path for the uploaded file",
            "name": "path",
            "in": "query",
            "required": true
          },
          {
            "type": "file",
            "description": "File to upload",
            "name": "file",
            "in": "formData",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/gin.H"
            }
          }
        }
      }
    },
    "/git/add": {
      "post": {
        "description": "Add files to the Git staging area",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Add files to Git staging",
        "operationId": "AddFiles",
        "parameters": [
          {
            "description": "Add files request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitAddRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/git/branches": {
      "get": {
        "description": "Get a list of all branches in the Git repository",
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "List branches",
        "operationId": "ListBranches",
        "parameters": [
          {
            "type": "string",
            "description": "Repository path",
            "name": "path",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ListBranchResponse"
            }
          }
        }
      },
      "post": {
        "description": "Create a new branch in the Git repository",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Create a new branch",
        "operationId": "CreateBranch",
        "parameters": [
          {
            "description": "Create branch request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitBranchRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          }
        }
      },
      "delete": {
        "description": "Delete a branch from the Git repository",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Delete a branch",
        "operationId": "DeleteBranch",
        "parameters": [
          {
            "description": "Delete branch request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitDeleteBranchRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/git/checkout": {
      "post": {
        "description": "Switch to a different branch or commit in the Git repository",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Checkout branch or commit",
        "operationId": "CheckoutBranch",
        "parameters": [
          {
            "description": "Checkout request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitCheckoutRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/git/clone": {
      "post": {
        "description": "Clone a Git repository to the specified path",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Clone a Git repository",
        "operationId": "CloneRepository",
        "parameters": [
          {
            "description": "Clone repository request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitCloneRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/git/commit": {
      "post": {
        "description": "Commit staged changes to the Git repository",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Commit changes",
        "operationId": "CommitChanges",
        "parameters": [
          {
            "description": "Commit request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitCommitRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GitCommitResponse"
            }
          }
        }
      }
    },
    "/git/history": {
      "get": {
        "description": "Get the commit history of the Git repository",
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Get commit history",
        "operationId": "GetCommitHistory",
        "parameters": [
          {
            "type": "string",
            "description": "Repository path",
            "name": "path",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GitCommitInfo"
              }
            }
          }
        }
      }
    },
    "/git/pull": {
      "post": {
        "description": "Pull changes from the remote Git repository",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Pull changes from remote",
        "operationId": "PullChanges",
        "parameters": [
          {
            "description": "Pull request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitRepoRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/git/push": {
      "post": {
        "description": "Push local changes to the remote Git repository",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Push changes to remote",
        "operationId": "PushChanges",
        "parameters": [
          {
            "description": "Push request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GitRepoRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/git/status": {
      "get": {
        "description": "Get the Git status of the repository at the specified path",
        "produces": ["application/json"],
        "tags": ["git"],
        "summary": "Get Git status",
        "operationId": "GetStatus",
        "parameters": [
          {
            "type": "string",
            "description": "Repository path",
            "name": "path",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GitStatus"
            }
          }
        }
      }
    },
    "/init": {
      "post": {
        "description": "Set the auth token and initialize telemetry for the toolbox server",
        "produces": ["application/json"],
        "tags": ["server"],
        "summary": "Initialize toolbox server",
        "operationId": "Initialize",
        "parameters": [
          {
            "description": "Initialization request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InitializeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/lsp/completions": {
      "post": {
        "description": "Get code completion suggestions from the LSP server",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Get code completions",
        "operationId": "Completions",
        "parameters": [
          {
            "description": "Completion request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LspCompletionParams"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CompletionList"
            }
          }
        }
      }
    },
    "/lsp/did-close": {
      "post": {
        "description": "Notify the LSP server that a document has been closed",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Notify document closed",
        "operationId": "DidClose",
        "parameters": [
          {
            "description": "Document request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LspDocumentRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/lsp/did-open": {
      "post": {
        "description": "Notify the LSP server that a document has been opened",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Notify document opened",
        "operationId": "DidOpen",
        "parameters": [
          {
            "description": "Document request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LspDocumentRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/lsp/document-symbols": {
      "get": {
        "description": "Get symbols (functions, classes, etc.) from a document",
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Get document symbols",
        "operationId": "DocumentSymbols",
        "parameters": [
          {
            "type": "string",
            "description": "Language ID (e.g., python, typescript)",
            "name": "languageId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Path to project",
            "name": "pathToProject",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Document URI",
            "name": "uri",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LspSymbol"
              }
            }
          }
        }
      }
    },
    "/lsp/start": {
      "post": {
        "description": "Start a Language Server Protocol server for the specified language",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Start LSP server",
        "operationId": "Start",
        "parameters": [
          {
            "description": "LSP server request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LspServerRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/lsp/stop": {
      "post": {
        "description": "Stop a Language Server Protocol server",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Stop LSP server",
        "operationId": "Stop",
        "parameters": [
          {
            "description": "LSP server request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LspServerRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/lsp/workspacesymbols": {
      "get": {
        "description": "Search for symbols across the entire workspace",
        "produces": ["application/json"],
        "tags": ["lsp"],
        "summary": "Get workspace symbols",
        "operationId": "WorkspaceSymbols",
        "parameters": [
          {
            "type": "string",
            "description": "Search query",
            "name": "query",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Language ID (e.g., python, typescript)",
            "name": "languageId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "Path to project",
            "name": "pathToProject",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LspSymbol"
              }
            }
          }
        }
      }
    },
    "/port": {
      "get": {
        "description": "Get a list of all currently active ports",
        "produces": ["application/json"],
        "tags": ["port"],
        "summary": "Get active ports",
        "operationId": "GetPorts",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PortList"
            }
          }
        }
      }
    },
    "/port/{port}/in-use": {
      "get": {
        "description": "Check if a specific port is currently in use",
        "produces": ["application/json"],
        "tags": ["port"],
        "summary": "Check if port is in use",
        "operationId": "IsPortInUse",
        "parameters": [
          {
            "type": "integer",
            "description": "Port number (3000-9999)",
            "name": "port",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/IsPortInUseResponse"
            }
          }
        }
      }
    },
    "/process/code-run": {
      "post": {
        "description": "Execute Python, JavaScript, or TypeScript code and return output, exit code, and artifacts",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Execute code",
        "operationId": "CodeRun",
        "parameters": [
          {
            "description": "Code execution request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CodeRunRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CodeRunResponse"
            }
          }
        }
      }
    },
    "/process/execute": {
      "post": {
        "description": "Execute a shell command and return the output and exit code",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Execute a command",
        "operationId": "ExecuteCommand",
        "parameters": [
          {
            "description": "Command execution request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExecuteRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ExecuteResponse"
            }
          }
        }
      }
    },
    "/process/interpreter/context": {
      "get": {
        "description": "Returns information about all user-created interpreter contexts (excludes default context)",
        "produces": ["application/json"],
        "tags": ["interpreter"],
        "summary": "List all user-created interpreter contexts",
        "operationId": "ListInterpreterContexts",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ListContextsResponse"
            }
          }
        }
      },
      "post": {
        "description": "Creates a new isolated interpreter context with optional working directory and language",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["interpreter"],
        "summary": "Create a new interpreter context",
        "operationId": "CreateInterpreterContext",
        "parameters": [
          {
            "description": "Context configuration",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateContextRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/InterpreterContext"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/process/interpreter/context/{id}": {
      "delete": {
        "description": "Deletes an interpreter context and shuts down its worker process",
        "produces": ["application/json"],
        "tags": ["interpreter"],
        "summary": "Delete an interpreter context",
        "operationId": "DeleteInterpreterContext",
        "parameters": [
          {
            "type": "string",
            "description": "Context ID",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/process/interpreter/execute": {
      "get": {
        "description": "Executes code in a specified context (or default context if not specified) via WebSocket streaming",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["interpreter"],
        "summary": "Execute code in an interpreter context",
        "operationId": "ExecuteInterpreterCode",
        "responses": {
          "101": {
            "description": "Switching Protocols",
            "schema": {
              "type": "string"
            },
            "headers": {
              "Connection": {
                "type": "string",
                "description": "Upgrade"
              },
              "Upgrade": {
                "type": "string",
                "description": "websocket"
              }
            }
          }
        }
      }
    },
    "/process/pty": {
      "get": {
        "description": "Get a list of all active pseudo-terminal sessions",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "List all PTY sessions",
        "operationId": "ListPtySessions",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PtyListResponse"
            }
          }
        }
      },
      "post": {
        "description": "Create a new pseudo-terminal session with specified configuration",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Create a new PTY session",
        "operationId": "CreatePtySession",
        "parameters": [
          {
            "description": "PTY session creation request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PtyCreateRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/PtyCreateResponse"
            }
          }
        }
      }
    },
    "/process/pty/{sessionId}": {
      "get": {
        "description": "Get detailed information about a specific pseudo-terminal session",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Get PTY session information",
        "operationId": "GetPtySession",
        "parameters": [
          {
            "type": "string",
            "description": "PTY session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PtySessionInfo"
            }
          }
        }
      },
      "delete": {
        "description": "Delete a pseudo-terminal session and terminate its process",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Delete a PTY session",
        "operationId": "DeletePtySession",
        "parameters": [
          {
            "type": "string",
            "description": "PTY session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/gin.H"
            }
          }
        }
      }
    },
    "/process/pty/{sessionId}/connect": {
      "get": {
        "description": "Establish a WebSocket connection to interact with a pseudo-terminal session",
        "tags": ["process"],
        "summary": "Connect to PTY session via WebSocket",
        "operationId": "ConnectPtySession",
        "parameters": [
          {
            "type": "string",
            "description": "PTY session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "101": {
            "description": "Switching Protocols - WebSocket connection established"
          }
        }
      }
    },
    "/process/pty/{sessionId}/resize": {
      "post": {
        "description": "Resize the terminal dimensions of a pseudo-terminal session",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Resize a PTY session",
        "operationId": "ResizePtySession",
        "parameters": [
          {
            "type": "string",
            "description": "PTY session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          },
          {
            "description": "Resize request with new dimensions",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PtyResizeRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PtySessionInfo"
            }
          }
        }
      }
    },
    "/process/session": {
      "get": {
        "description": "Get a list of all active shell sessions",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "List all sessions",
        "operationId": "ListSessions",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Session"
              }
            }
          }
        }
      },
      "post": {
        "description": "Create a new shell session for command execution",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Create a new session",
        "operationId": "CreateSession",
        "parameters": [
          {
            "description": "Session creation request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreateSessionRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          }
        }
      }
    },
    "/process/session/entrypoint": {
      "get": {
        "description": "Get details of an entrypoint session including its commands",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Get entrypoint session details",
        "operationId": "GetEntrypointSession",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Session"
            }
          }
        }
      }
    },
    "/process/session/entrypoint/logs": {
      "get": {
        "description": "Get logs for a sandbox entrypoint session. Returns JSON with separated stdout/stderr for SDK \u003e= 0.161.0, plain text otherwise. Supports WebSocket streaming.",
        "produces": ["application/json", "text/plain"],
        "tags": ["process"],
        "summary": "Get entrypoint logs",
        "operationId": "GetEntrypointLogs",
        "parameters": [
          {
            "type": "boolean",
            "description": "Follow logs in real-time (WebSocket only)",
            "name": "follow",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Entrypoint log content",
            "schema": {
              "$ref": "#/definitions/SessionCommandLogsResponse"
            }
          }
        }
      }
    },
    "/process/session/{sessionId}": {
      "get": {
        "description": "Get details of a specific session including its commands",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Get session details",
        "operationId": "GetSession",
        "parameters": [
          {
            "type": "string",
            "description": "Session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Session"
            }
          }
        }
      },
      "delete": {
        "description": "Delete an existing shell session",
        "tags": ["process"],
        "summary": "Delete a session",
        "operationId": "DeleteSession",
        "parameters": [
          {
            "type": "string",
            "description": "Session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/process/session/{sessionId}/command/{commandId}": {
      "get": {
        "description": "Get details of a specific command within a session",
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Get session command details",
        "operationId": "GetSessionCommand",
        "parameters": [
          {
            "type": "string",
            "description": "Session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Command ID",
            "name": "commandId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Command"
            }
          }
        }
      }
    },
    "/process/session/{sessionId}/command/{commandId}/input": {
      "post": {
        "description": "Send input data to a running command in a session for interactive execution",
        "consumes": ["application/json"],
        "tags": ["process"],
        "summary": "Send input to command",
        "operationId": "SendInput",
        "parameters": [
          {
            "type": "string",
            "description": "Session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Command ID",
            "name": "commandId",
            "in": "path",
            "required": true
          },
          {
            "description": "Input send request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SessionSendInputRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/process/session/{sessionId}/command/{commandId}/logs": {
      "get": {
        "description": "Get logs for a specific command within a session. Returns JSON with separated stdout/stderr for SDK \u003e= 0.167.0, plain text otherwise. Supports WebSocket streaming.",
        "produces": ["application/json", "text/plain"],
        "tags": ["process"],
        "summary": "Get session command logs",
        "operationId": "GetSessionCommandLogs",
        "parameters": [
          {
            "type": "string",
            "description": "Session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Command ID",
            "name": "commandId",
            "in": "path",
            "required": true
          },
          {
            "type": "boolean",
            "description": "Follow logs in real-time (WebSocket only)",
            "name": "follow",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Log content (JSON for new SDKs, plain text for old SDKs)",
            "schema": {
              "$ref": "#/definitions/SessionCommandLogsResponse"
            }
          }
        }
      }
    },
    "/process/session/{sessionId}/exec": {
      "post": {
        "description": "Execute a command within an existing shell session",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["process"],
        "summary": "Execute command in session",
        "operationId": "SessionExecuteCommand",
        "parameters": [
          {
            "type": "string",
            "description": "Session ID",
            "name": "sessionId",
            "in": "path",
            "required": true
          },
          {
            "description": "Command execution request",
            "name": "request",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SessionExecuteRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SessionExecuteResponse"
            }
          },
          "202": {
            "description": "Accepted",
            "schema": {
              "$ref": "#/definitions/SessionExecuteResponse"
            }
          }
        }
      }
    },
    "/user-home-dir": {
      "get": {
        "description": "Get the current user home directory path.",
        "produces": ["application/json"],
        "tags": ["info"],
        "summary": "Get user home directory",
        "operationId": "GetUserHomeDir",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/UserHomeDirResponse"
            }
          }
        }
      }
    },
    "/version": {
      "get": {
        "description": "Get the current daemon version",
        "produces": ["application/json"],
        "tags": ["info"],
        "summary": "Get version",
        "operationId": "GetVersion",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "/work-dir": {
      "get": {
        "description": "Get the current working directory path. This is default directory used for running commands.",
        "produces": ["application/json"],
        "tags": ["info"],
        "summary": "Get working directory",
        "operationId": "GetWorkDir",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/WorkDirResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AccessibilityBounds": {
      "type": "object",
      "properties": {
        "height": {
          "type": "integer"
        },
        "width": {
          "type": "integer"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "AccessibilityInvokeRequest": {
      "type": "object",
      "required": ["id"],
      "properties": {
        "action": {
          "type": "string"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "AccessibilityNodeRequest": {
      "type": "object",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "AccessibilityNodesResponse": {
      "type": "object",
      "properties": {
        "matches": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/computeruse.AccessibilityNode"
          }
        },
        "truncated": {
          "type": "boolean"
        }
      }
    },
    "AccessibilitySetValueRequest": {
      "type": "object",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "AccessibilityTreeResponse": {
      "type": "object",
      "properties": {
        "root": {
          "$ref": "#/definitions/computeruse.AccessibilityNode"
        },
        "truncated": {
          "type": "boolean"
        }
      }
    },
    "Chart": {
      "type": "object",
      "properties": {
        "elements": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ChartElement"
          }
        },
        "png": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "x_label": {
          "type": "string"
        },
        "x_scale": {
          "type": "string"
        },
        "x_tick_labels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "x_ticks": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "y_label": {
          "type": "string"
        },
        "y_scale": {
          "type": "string"
        },
        "y_tick_labels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "y_ticks": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      }
    },
    "ChartElement": {
      "type": "object",
      "properties": {
        "angle": {
          "type": "number"
        },
        "first_quartile": {
          "type": "number"
        },
        "group": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "max": {
          "type": "number"
        },
        "median": {
          "type": "number"
        },
        "min": {
          "type": "number"
        },
        "outliers": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "png": {
          "type": "string"
        },
        "points": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "radius": {
          "type": "number"
        },
        "third_quartile": {
          "type": "number"
        },
        "title": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "x_label": {
          "type": "string"
        },
        "y_label": {
          "type": "string"
        }
      }
    },
    "CodeRunArtifacts": {
      "type": "object",
      "properties": {
        "charts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Chart"
          }
        }
      }
    },
    "CodeRunRequest": {
      "type": "object",
      "required": ["code", "language"],
      "properties": {
        "argv": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "code": {
          "type": "string"
        },
        "envs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "language": {
          "description": "python, javascript, typescript",
          "type": "string"
        },
        "timeout": {
          "type": "integer"
        }
      }
    },
    "CodeRunResponse": {
      "type": "object",
      "properties": {
        "artifacts": {
          "$ref": "#/definitions/CodeRunArtifacts"
        },
        "exitCode": {
          "type": "integer"
        },
        "result": {
          "type": "string"
        }
      }
    },
    "Command": {
      "type": "object",
      "required": ["command", "id"],
      "properties": {
        "command": {
          "type": "string"
        },
        "exitCode": {
          "type": "integer"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "CompletionContext": {
      "type": "object",
      "required": ["triggerKind"],
      "properties": {
        "triggerCharacter": {
          "type": "string"
        },
        "triggerKind": {
          "type": "integer"
        }
      }
    },
    "CompletionItem": {
      "type": "object",
      "required": ["label"],
      "properties": {
        "detail": {
          "type": "string"
        },
        "documentation": {},
        "filterText": {
          "type": "string"
        },
        "insertText": {
          "type": "string"
        },
        "kind": {
          "type": "integer"
        },
        "label": {
          "type": "string"
        },
        "sortText": {
          "type": "string"
        }
      }
    },
    "CompletionList": {
      "type": "object",
      "required": ["isIncomplete", "items"],
      "properties": {
        "isIncomplete": {
          "type": "boolean"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CompletionItem"
          }
        }
      }
    },
    "ComputerUseStartResponse": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        },
        "status": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ProcessStatus"
          }
        }
      }
    },
    "ComputerUseStatusResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        }
      }
    },
    "ComputerUseStopResponse": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        },
        "status": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/ProcessStatus"
          }
        }
      }
    },
    "CreateContextRequest": {
      "type": "object",
      "properties": {
        "cwd": {
          "type": "string"
        },
        "language": {
          "type": "string"
        }
      }
    },
    "CreateSessionRequest": {
      "type": "object",
      "required": ["sessionId"],
      "properties": {
        "sessionId": {
          "type": "string"
        }
      }
    },
    "DisplayInfo": {
      "type": "object",
      "properties": {
        "height": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "isActive": {
          "type": "boolean"
        },
        "width": {
          "type": "integer"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "DisplayInfoResponse": {
      "type": "object",
      "properties": {
        "displays": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DisplayInfo"
          }
        }
      }
    },
    "Empty": {
      "type": "object"
    },
    "ExecuteRequest": {
      "type": "object",
      "required": ["command"],
      "properties": {
        "command": {
          "type": "string"
        },
        "cwd": {
          "description": "Current working directory",
          "type": "string"
        },
        "envs": {
          "description": "Environment variables to set for the command",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "timeout": {
          "description": "Timeout in seconds, defaults to 10 seconds",
          "type": "integer"
        }
      }
    },
    "ExecuteResponse": {
      "type": "object",
      "required": ["result"],
      "properties": {
        "exitCode": {
          "type": "integer"
        },
        "result": {
          "type": "string"
        }
      }
    },
    "FileInfo": {
      "type": "object",
      "required": ["group", "isDir", "modTime", "mode", "modifiedAt", "name", "owner", "permissions", "size"],
      "properties": {
        "group": {
          "type": "string"
        },
        "isDir": {
          "type": "boolean"
        },
        "modTime": {
          "description": "Deprecated: ModTime uses Go's time.String() layout which is not a standard format.\nUse ModifiedAt instead, which is serialized as ISO 8601 / RFC 3339.",
          "type": "string"
        },
        "mode": {
          "type": "string"
        },
        "modifiedAt": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "permissions": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        }
      }
    },
    "FileStatus": {
      "type": "object",
      "required": ["extra", "name", "staging", "worktree"],
      "properties": {
        "extra": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "staging": {
          "$ref": "#/definitions/Status"
        },
        "worktree": {
          "$ref": "#/definitions/Status"
        }
      }
    },
    "FilesDownloadRequest": {
      "type": "object",
      "required": ["paths"],
      "properties": {
        "paths": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "FindAccessibilityNodesRequest": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "nameMatch": {
          "description": "\"exact\" | \"substring\" | \"regex\"",
          "type": "string"
        },
        "pid": {
          "type": "integer"
        },
        "role": {
          "type": "string"
        },
        "scope": {
          "type": "string"
        },
        "states": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GitAddRequest": {
      "type": "object",
      "required": ["files", "path"],
      "properties": {
        "files": {
          "description": "files to add (use . for all files)",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "path": {
          "type": "string"
        }
      }
    },
    "GitBranchRequest": {
      "type": "object",
      "required": ["name", "path"],
      "properties": {
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        }
      }
    },
    "GitCheckoutRequest": {
      "type": "object",
      "required": ["branch", "path"],
      "properties": {
        "branch": {
          "type": "string"
        },
        "path": {
          "type": "string"
        }
      }
    },
    "GitCloneRequest": {
      "type": "object",
      "required": ["path", "url"],
      "properties": {
        "branch": {
          "type": "string"
        },
        "commit_id": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      }
    },
    "GitCommitInfo": {
      "type": "object",
      "required": ["author", "email", "hash", "message", "timestamp"],
      "properties": {
        "author": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "hash": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "timestamp": {
          "type": "string"
        }
      }
    },
    "GitCommitRequest": {
      "type": "object",
      "required": ["author", "email", "message", "path"],
      "properties": {
        "allow_empty": {
          "type": "boolean"
        },
        "author": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "path": {
          "type": "string"
        }
      }
    },
    "GitCommitResponse": {
      "type": "object",
      "required": ["hash"],
      "properties": {
        "hash": {
          "type": "string"
        }
      }
    },
    "GitDeleteBranchRequest": {
      "type": "object",
      "required": ["name", "path"],
      "properties": {
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        }
      }
    },
    "GitRepoRequest": {
      "type": "object",
      "required": ["path"],
      "properties": {
        "password": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      }
    },
    "GitStatus": {
      "type": "object",
      "required": ["currentBranch", "fileStatus"],
      "properties": {
        "ahead": {
          "type": "integer"
        },
        "behind": {
          "type": "integer"
        },
        "branchPublished": {
          "type": "boolean"
        },
        "currentBranch": {
          "type": "string"
        },
        "fileStatus": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FileStatus"
          }
        }
      }
    },
    "InitializeRequest": {
      "type": "object",
      "required": ["token"],
      "properties": {
        "token": {
          "type": "string"
        }
      }
    },
    "InterpreterContext": {
      "type": "object",
      "required": ["active", "createdAt", "cwd", "id", "language"],
      "properties": {
        "active": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "cwd": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "language": {
          "type": "string"
        }
      }
    },
    "IsPortInUseResponse": {
      "type": "object",
      "properties": {
        "isInUse": {
          "type": "boolean"
        }
      }
    },
    "KeyboardHotkeyRequest": {
      "type": "object",
      "properties": {
        "keys": {
          "description": "e.g., \"ctrl+c\", \"cmd+v\"",
          "type": "string"
        }
      }
    },
    "KeyboardPressRequest": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "modifiers": {
          "description": "ctrl, alt, shift, cmd",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "KeyboardTypeRequest": {
      "type": "object",
      "properties": {
        "delay": {
          "description": "milliseconds between keystrokes",
          "type": "integer"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "ListBranchResponse": {
      "type": "object",
      "required": ["branches"],
      "properties": {
        "branches": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ListContextsResponse": {
      "type": "object",
      "required": ["contexts"],
      "properties": {
        "contexts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InterpreterContext"
          }
        }
      }
    },
    "ListRecordingsResponse": {
      "type": "object",
      "required": ["recordings"],
      "properties": {
        "recordings": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Recording"
          }
        }
      }
    },
    "LspCompletionParams": {
      "type": "object",
      "required": ["languageId", "pathToProject", "position", "uri"],
      "properties": {
        "context": {
          "$ref": "#/definitions/CompletionContext"
        },
        "languageId": {
          "type": "string"
        },
        "pathToProject": {
          "type": "string"
        },
        "position": {
          "$ref": "#/definitions/LspPosition"
        },
        "uri": {
          "type": "string"
        }
      }
    },
    "LspDocumentRequest": {
      "type": "object",
      "required": ["languageId", "pathToProject", "uri"],
      "properties": {
        "languageId": {
          "type": "string"
        },
        "pathToProject": {
          "type": "string"
        },
        "uri": {
          "type": "string"
        }
      }
    },
    "LspLocation": {
      "type": "object",
      "required": ["range", "uri"],
      "properties": {
        "range": {
          "$ref": "#/definitions/LspRange"
        },
        "uri": {
          "type": "string"
        }
      }
    },
    "LspPosition": {
      "type": "object",
      "required": ["character", "line"],
      "properties": {
        "character": {
          "type": "integer"
        },
        "line": {
          "type": "integer"
        }
      }
    },
    "LspRange": {
      "type": "object",
      "required": ["end", "start"],
      "properties": {
        "end": {
          "$ref": "#/definitions/LspPosition"
        },
        "start": {
          "$ref": "#/definitions/LspPosition"
        }
      }
    },
    "LspServerRequest": {
      "type": "object",
      "required": ["languageId", "pathToProject"],
      "properties": {
        "languageId": {
          "type": "string"
        },
        "pathToProject": {
          "type": "string"
        }
      }
    },
    "LspSymbol": {
      "type": "object",
      "required": ["kind", "location", "name"],
      "properties": {
        "kind": {
          "type": "integer"
        },
        "location": {
          "$ref": "#/definitions/LspLocation"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "Match": {
      "type": "object",
      "required": ["content", "file", "line"],
      "properties": {
        "content": {
          "type": "string"
        },
        "file": {
          "type": "string"
        },
        "line": {
          "type": "integer"
        }
      }
    },
    "MouseClickRequest": {
      "type": "object",
      "properties": {
        "button": {
          "description": "left, right, middle",
          "type": "string"
        },
        "double": {
          "type": "boolean"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "MouseClickResponse": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "MouseDragRequest": {
      "type": "object",
      "properties": {
        "button": {
          "type": "string"
        },
        "endX": {
          "type": "integer"
        },
        "endY": {
          "type": "integer"
        },
        "startX": {
          "type": "integer"
        },
        "startY": {
          "type": "integer"
        }
      }
    },
    "MouseDragResponse": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "MouseMoveRequest": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "MousePositionResponse": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "MouseScrollRequest": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "integer",
          "default": 1,
          "minimum": 0
        },
        "direction": {
          "description": "up, down",
          "type": "string"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "PortList": {
      "type": "object",
      "properties": {
        "ports": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      }
    },
    "Position": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "ProcessErrorsResponse": {
      "type": "object",
      "properties": {
        "errors": {
          "type": "string"
        },
        "processName": {
          "type": "string"
        }
      }
    },
    "ProcessLogsResponse": {
      "type": "object",
      "properties": {
        "logs": {
          "type": "string"
        },
        "processName": {
          "type": "string"
        }
      }
    },
    "ProcessRestartResponse": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        },
        "processName": {
          "type": "string"
        }
      }
    },
    "ProcessStatus": {
      "type": "object",
      "properties": {
        "autoRestart": {
          "type": "boolean"
        },
        "pid": {
          "type": "integer"
        },
        "priority": {
          "type": "integer"
        },
        "running": {
          "type": "boolean"
        }
      }
    },
    "ProcessStatusResponse": {
      "type": "object",
      "properties": {
        "processName": {
          "type": "string"
        },
        "running": {
          "type": "boolean"
        }
      }
    },
    "PtyCreateRequest": {
      "type": "object",
      "properties": {
        "cols": {
          "type": "integer"
        },
        "cwd": {
          "type": "string"
        },
        "envs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "id": {
          "type": "string"
        },
        "lazyStart": {
          "description": "Don't start PTY until first client connects",
          "type": "boolean"
        },
        "rows": {
          "type": "integer"
        }
      }
    },
    "PtyCreateResponse": {
      "type": "object",
      "required": ["sessionId"],
      "properties": {
        "sessionId": {
          "type": "string"
        }
      }
    },
    "PtyListResponse": {
      "type": "object",
      "required": ["sessions"],
      "properties": {
        "sessions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PtySessionInfo"
          }
        }
      }
    },
    "PtyResizeRequest": {
      "type": "object",
      "required": ["cols", "rows"],
      "properties": {
        "cols": {
          "type": "integer",
          "maximum": 1000,
          "minimum": 1
        },
        "rows": {
          "type": "integer",
          "maximum": 1000,
          "minimum": 1
        }
      }
    },
    "PtySessionInfo": {
      "type": "object",
      "required": ["active", "cols", "createdAt", "cwd", "envs", "id", "lazyStart", "rows"],
      "properties": {
        "active": {
          "type": "boolean"
        },
        "cols": {
          "type": "integer"
        },
        "createdAt": {
          "type": "string"
        },
        "cwd": {
          "type": "string"
        },
        "envs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "id": {
          "type": "string"
        },
        "lazyStart": {
          "description": "Whether this session uses lazy start",
          "type": "boolean"
        },
        "rows": {
          "type": "integer"
        }
      }
    },
    "Recording": {
      "type": "object",
      "required": ["fileName", "filePath", "id", "startTime", "status"],
      "properties": {
        "durationSeconds": {
          "type": "number"
        },
        "endTime": {
          "type": "string"
        },
        "fileName": {
          "type": "string"
        },
        "filePath": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "sizeBytes": {
          "type": "integer"
        },
        "startTime": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "ReplaceRequest": {
      "type": "object",
      "required": ["files", "newValue", "pattern"],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "newValue": {
          "type": "string"
        },
        "pattern": {
          "type": "string"
        }
      }
    },
    "ReplaceResult": {
      "type": "object",
      "properties": {
        "error": {
          "type": "string"
        },
        "file": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        }
      }
    },
    "ScreenshotResponse": {
      "type": "object",
      "properties": {
        "cursorPosition": {
          "$ref": "#/definitions/Position"
        },
        "screenshot": {
          "type": "string"
        },
        "sizeBytes": {
          "type": "integer"
        }
      }
    },
    "ScrollResponse": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        }
      }
    },
    "SearchFilesResponse": {
      "type": "object",
      "required": ["files"],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Session": {
      "type": "object",
      "required": ["commands", "sessionId"],
      "properties": {
        "commands": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Command"
          }
        },
        "sessionId": {
          "type": "string"
        }
      }
    },
    "SessionCommandLogsResponse": {
      "type": "object",
      "required": ["output", "stderr", "stdout"],
      "properties": {
        "output": {
          "type": "string"
        },
        "stderr": {
          "type": "string"
        },
        "stdout": {
          "type": "string"
        }
      }
    },
    "SessionExecuteRequest": {
      "type": "object",
      "required": ["command"],
      "properties": {
        "async": {
          "type": "boolean"
        },
        "command": {
          "type": "string"
        },
        "runAsync": {
          "type": "boolean"
        },
        "suppressInputEcho": {
          "type": "boolean"
        }
      }
    },
    "SessionExecuteResponse": {
      "type": "object",
      "required": ["cmdId"],
      "properties": {
        "cmdId": {
          "type": "string"
        },
        "exitCode": {
          "type": "integer"
        },
        "output": {
          "type": "string"
        },
        "stderr": {
          "type": "string"
        },
        "stdout": {
          "type": "string"
        }
      }
    },
    "SessionSendInputRequest": {
      "type": "object",
      "required": ["data"],
      "properties": {
        "data": {
          "type": "string"
        }
      }
    },
    "StartRecordingRequest": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string"
        }
      }
    },
    "Status": {
      "type": "string",
      "enum": ["Unmodified", "Untracked", "Modified", "Added", "Deleted", "Renamed", "Copied", "Updated but unmerged"],
      "x-enum-varnames": [
        "Unmodified",
        "Untracked",
        "Modified",
        "Added",
        "Deleted",
        "Renamed",
        "Copied",
        "UpdatedButUnmerged"
      ]
    },
    "StopRecordingRequest": {
      "type": "object",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "UserHomeDirResponse": {
      "type": "object",
      "required": ["dir"],
      "properties": {
        "dir": {
          "type": "string"
        }
      }
    },
    "WindowInfo": {
      "type": "object",
      "properties": {
        "height": {
          "type": "integer"
        },
        "id": {
          "type": "integer"
        },
        "isActive": {
          "type": "boolean"
        },
        "title": {
          "type": "string"
        },
        "width": {
          "type": "integer"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      }
    },
    "WindowsResponse": {
      "type": "object",
      "properties": {
        "windows": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/WindowInfo"
          }
        }
      }
    },
    "WorkDirResponse": {
      "type": "object",
      "required": ["dir"],
      "properties": {
        "dir": {
          "type": "string"
        }
      }
    },
    "computeruse.AccessibilityNode": {
      "type": "object",
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "bounds": {
          "$ref": "#/definitions/AccessibilityBounds"
        },
        "children": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/computeruse.AccessibilityNode"
          }
        },
        "description": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "states": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "gin.H": {
      "type": "object",
      "additionalProperties": {}
    }
  }
}
