{
  "x-provenance": {
    "repo": "daytona/rlp",
    "source": "daemon/openapi.json",
    "generated-by": "make contracts"
  },
  "components": {
    "schemas": {
      "ActivitySummary": {
        "description": "`GET /rlp/activity` body: whether caller-started processes are running\n(PLAN-DAEMON-PROCESS-ACTIVITY). The runner polls it and keeps the sandbox's\nidle clock from expiring while `busy` is `true`.",
        "properties": {
          "busy": {
            "description": "`true` when `processes > 0`.",
            "type": "boolean"
          },
          "processes": {
            "description": "The number of non-terminal processes that hold the idle clock:\nnon-PTY processes a caller started (standalone `kind=exec`, session\nmembers, `kind=code` cells, including cells still queued in\n`starting`). PTYs, session and language kernels, and system processes\n(the entrypoint, `dockerd`) never count.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "busy",
          "processes"
        ],
        "type": "object"
      },
      "AddRemoteRequest": {
        "description": "Add one named remote.",
        "properties": {
          "name": {
            "description": "Remote name to create.",
            "type": "string"
          },
          "path": {
            "description": "Repository path to operate in.",
            "type": "string"
          },
          "url": {
            "description": "Remote URL to store.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AddRequest": {
        "description": "Stage one or more files.",
        "properties": {
          "files": {
            "description": "File paths to stage, relative to the repository root.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "path": {
            "description": "Repository path to run `git add` in.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AttachQuery": {
        "description": "`GET /processes/{id}/attach` query parameters.",
        "properties": {
          "cursor": {
            "description": "Optional logs cursor to replay before switching to live websocket output.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "BranchList": {
        "description": "Branch list response.",
        "properties": {
          "branches": {
            "description": "Short branch names present in the repository.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "branches"
        ],
        "type": "object"
      },
      "BranchRequest": {
        "description": "Create or delete one named branch.",
        "properties": {
          "name": {
            "description": "Branch name to create or delete.",
            "type": "string"
          },
          "path": {
            "description": "Repository path to operate in.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "BulkDownloadRequest": {
        "additionalProperties": false,
        "description": "JSON body for `POST /files/bulk-download`.",
        "properties": {
          "paths": {
            "description": "Paths to stream back as multipart file or error parts.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "BulkUploadQuery": {
        "additionalProperties": false,
        "description": "Query parameters for `POST /files/bulk-upload`.",
        "properties": {
          "atomic": {
            "description": "Write each uploaded file via a temporary file + rename in its destination directory.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "BulkUploadResponse": {
        "description": "Partial-success response from `POST /files/bulk-upload`.",
        "properties": {
          "errors": {
            "description": "Human-readable per-part failures.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "files": {
            "description": "Successfully written files.",
            "items": {
              "$ref": "#/components/schemas/UploadedFile"
            },
            "type": "array"
          }
        },
        "required": [
          "files",
          "errors"
        ],
        "type": "object"
      },
      "CheckoutRequest": {
        "description": "Switch the worktree to another branch.",
        "properties": {
          "branch": {
            "description": "Branch name to switch to.",
            "type": "string"
          },
          "path": {
            "description": "Repository path to operate in.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CloneRequest": {
        "description": "Clone a repository into a target directory.",
        "properties": {
          "branch": {
            "description": "Branch to clone when `commit_id` is omitted.",
            "type": [
              "string",
              "null"
            ]
          },
          "commit_id": {
            "description": "Commit to detach to after cloning.",
            "type": [
              "string",
              "null"
            ]
          },
          "depth": {
            "description": "Optional shallow-clone depth. `1` clones only the tip commit.",
            "format": "int32",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "insecureSkipTls": {
            "description": "Skip TLS certificate verification for this clone invocation only.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "password": {
            "description": "Password for authenticated remotes; write-only, never echoed, delivered to git via askpass.",
            "type": [
              "string",
              "null"
            ],
            "writeOnly": true
          },
          "path": {
            "description": "Destination path to clone into.",
            "type": "string"
          },
          "url": {
            "description": "Repository URL or local source path to clone.",
            "type": "string"
          },
          "username": {
            "description": "Username for authenticated remotes; write-only, never echoed, delivered to git via askpass.",
            "type": [
              "string",
              "null"
            ],
            "writeOnly": true
          }
        },
        "type": "object"
      },
      "CommitInfo": {
        "description": "One commit from `git log`.",
        "properties": {
          "author": {
            "description": "Author name.",
            "type": "string"
          },
          "email": {
            "description": "Author email.",
            "type": "string"
          },
          "hash": {
            "description": "Full commit SHA.",
            "type": "string"
          },
          "message": {
            "description": "Commit subject line.",
            "type": "string"
          },
          "timestamp": {
            "description": "Author timestamp in RFC 3339 format.",
            "type": "string"
          }
        },
        "required": [
          "hash",
          "message",
          "author",
          "email",
          "timestamp"
        ],
        "type": "object"
      },
      "CommitRequest": {
        "description": "Create a commit.",
        "properties": {
          "allow_empty": {
            "description": "Whether an empty commit is allowed.",
            "type": "boolean"
          },
          "author": {
            "description": "Commit author name passed to git for this invocation only.",
            "type": "string"
          },
          "email": {
            "description": "Commit author email passed to git for this invocation only.",
            "type": "string"
          },
          "message": {
            "description": "Commit message.",
            "type": "string"
          },
          "path": {
            "description": "Repository path to commit in.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CommitResponse": {
        "description": "Commit creation result.",
        "properties": {
          "hash": {
            "description": "Full commit SHA of the created commit.",
            "type": "string"
          }
        },
        "required": [
          "hash"
        ],
        "type": "object"
      },
      "CompletionContext": {
        "description": "Extra context for a completion request.",
        "properties": {
          "triggerCharacter": {
            "description": "Trigger character when the completion was opened by one; omitted otherwise.",
            "type": [
              "string",
              "null"
            ]
          },
          "triggerKind": {
            "description": "LSP trigger kind enum value.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "triggerKind"
        ],
        "type": "object"
      },
      "CompletionDocumentation": {
        "description": "Completion documentation as plain text or structured markup.",
        "oneOf": [
          {
            "description": "Plain-text documentation.",
            "type": "string"
          },
          {
            "$ref": "#/components/schemas/MarkupContent",
            "description": "Marked-up documentation."
          }
        ]
      },
      "CompletionItem": {
        "description": "One normalized completion item.",
        "properties": {
          "detail": {
            "description": "Short detail string shown beside the label; omitted when absent.",
            "type": [
              "string",
              "null"
            ]
          },
          "documentation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CompletionDocumentation",
                "description": "Item documentation; omitted when absent."
              }
            ]
          },
          "filterText": {
            "description": "Filter key from the language server; omitted when absent.",
            "type": [
              "string",
              "null"
            ]
          },
          "insertText": {
            "description": "Text inserted on accept; omitted when absent.",
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "description": "LSP completion item kind enum value; omitted when the server left it unset.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "label": {
            "description": "Human-visible completion label.",
            "type": "string"
          },
          "sortText": {
            "description": "Sort key from the language server; omitted when absent.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "label"
        ],
        "type": "object"
      },
      "CompletionList": {
        "description": "Normalized completion response shape.",
        "properties": {
          "isIncomplete": {
            "description": "Whether the server considers the list incomplete and expects re-querying.",
            "type": "boolean"
          },
          "items": {
            "description": "Completion items, with non-contract keys pruned.",
            "items": {
              "$ref": "#/components/schemas/CompletionItem"
            },
            "type": "array"
          }
        },
        "required": [
          "isIncomplete",
          "items"
        ],
        "type": "object"
      },
      "CompletionRequest": {
        "description": "Completion request body forwarded to `textDocument/completion`.",
        "properties": {
          "context": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CompletionContext",
                "description": "Additional completion trigger context; omitted when none was provided."
              }
            ]
          },
          "languageId": {
            "description": "The LSP language key (`python`, `typescript`).",
            "type": "string"
          },
          "pathToProject": {
            "description": "Absolute project root path used as the server's workspace root.",
            "type": "string"
          },
          "position": {
            "$ref": "#/components/schemas/SymbolPosition",
            "description": "Cursor position for which completions are requested."
          },
          "uri": {
            "description": "Document URI, typically a `file://` URI.",
            "type": "string"
          }
        },
        "required": [
          "languageId",
          "pathToProject",
          "uri",
          "position"
        ],
        "type": "object"
      },
      "ComputerUseA11yFindRequest": {
        "description": "Accessibility find request.",
        "properties": {
          "limit": {
            "description": "Maximum number of matches. Omitted or `<=0` uses the platform default.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "description": "Name filter. Omitted = any name.",
            "type": "string"
          },
          "nameMatch": {
            "description": "Name match mode: `exact`, `substring`, or `regex`.",
            "type": "string"
          },
          "pid": {
            "description": "Owning process id when `scope=pid`.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "role": {
            "description": "Exact role filter. Omitted = any role.",
            "type": "string"
          },
          "scope": {
            "description": "Scope selector: omitted/`focused`, `pid`, or Linux `all`/Windows `desktop` aliases.",
            "type": "string"
          },
          "states": {
            "description": "Required state names.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ComputerUseA11yFindResponse": {
        "description": "Accessibility find response.",
        "properties": {
          "matches": {
            "description": "Matching nodes in traversal order.",
            "items": {
              "$ref": "#/components/schemas/ComputerUseAccessibilityNode"
            },
            "type": "array"
          },
          "truncated": {
            "description": "Whether traversal stopped because of node or wall-clock limits.",
            "type": "boolean"
          }
        },
        "required": [
          "matches",
          "truncated"
        ],
        "type": "object"
      },
      "ComputerUseA11yNodeRequest": {
        "description": "Accessibility node request.",
        "properties": {
          "action": {
            "description": "Optional action name for invoke requests.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The stable node id returned by tree/find.",
            "type": "string"
          },
          "value": {
            "description": "Optional text value for editable nodes.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "ComputerUseA11yTreeQuery": {
        "description": "Accessibility tree query parameters.",
        "properties": {
          "maxDepth": {
            "description": "Maximum tree depth. Omitted or `-1` means unbounded.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "pid": {
            "description": "Owning process id when `scope=pid`.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "scope": {
            "description": "Scope selector: omitted/`focused`, `pid`, or Linux `all`/Windows `desktop` aliases.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ComputerUseA11yTreeResponse": {
        "description": "Accessibility tree response.",
        "properties": {
          "root": {
            "$ref": "#/components/schemas/ComputerUseAccessibilityNode",
            "description": "The selected root node."
          },
          "truncated": {
            "description": "Whether traversal stopped because of node or wall-clock limits.",
            "type": "boolean"
          }
        },
        "required": [
          "root",
          "truncated"
        ],
        "type": "object"
      },
      "ComputerUseAccessibilityBounds": {
        "description": "Accessibility bounds rectangle.",
        "properties": {
          "height": {
            "description": "Height in desktop pixels.",
            "format": "int32",
            "type": "integer"
          },
          "width": {
            "description": "Width in desktop pixels.",
            "format": "int32",
            "type": "integer"
          },
          "x": {
            "description": "Left coordinate in desktop pixels.",
            "format": "int32",
            "type": "integer"
          },
          "y": {
            "description": "Top coordinate in desktop pixels.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y",
          "width",
          "height"
        ],
        "type": "object"
      },
      "ComputerUseAccessibilityNode": {
        "description": "Accessibility tree node.",
        "properties": {
          "actions": {
            "description": "Supported action names when the platform exposes them.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "bounds": {
            "$ref": "#/components/schemas/ComputerUseAccessibilityBounds",
            "description": "Bounds rectangle in desktop pixels."
          },
          "children": {
            "description": "Child nodes when the response includes them.",
            "items": {
              "$ref": "#/components/schemas/ComputerUseAccessibilityNode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "description": "Optional accessible description.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Stable node id used by follow-up node actions.",
            "type": "string"
          },
          "name": {
            "description": "Accessible name.",
            "type": "string"
          },
          "role": {
            "description": "Role name.",
            "type": "string"
          },
          "states": {
            "description": "State names such as `focused` or `visible`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value": {
            "description": "Current value of a control (a text field's contents, a checkbox's\nstate), when the platform reports it. Never set for secure (password)\nfields. Capped by the platform; see `valueTruncated`.",
            "type": [
              "string",
              "null"
            ]
          },
          "valueTruncated": {
            "description": "`value` was cut at the platform's cap.",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "role",
          "name",
          "bounds",
          "states"
        ],
        "type": "object"
      },
      "ComputerUseActivityStatus": {
        "description": "Legacy activity state kept for compatibility: `active` means the desktop is\nready, everything else stays `inactive`.",
        "enum": [
          "active",
          "inactive"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "ComputerUseDesktopFailure": {
        "description": "The failure attached to a `failed` desktop state.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ComputerUseDesktopFailureCode",
            "description": "The stable failure code callers branch on."
          },
          "message": {
            "description": "Human-readable remediation detail.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "ComputerUseDesktopFailureCode": {
        "description": "The reason a retained desktop lifetime failed.",
        "enum": [
          "desktop_exited",
          "addon_crashed",
          "start_failed",
          "start_interrupted",
          "session_ended",
          "session_replaced",
          "state_corrupt",
          "state_persistence_failed"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "ComputerUseDesktopState": {
        "description": "The explicit desktop lifetime state.",
        "enum": [
          "not_started",
          "starting",
          "ready",
          "failed"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "ComputerUseDisplay": {
        "description": "One display/monitor.",
        "properties": {
          "height": {
            "description": "Display height in pixels.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "id": {
            "description": "Stable display index within the current desktop.",
            "minimum": 0,
            "type": "integer"
          },
          "isActive": {
            "description": "Whether this display is the active/focused display.",
            "type": "boolean"
          },
          "width": {
            "description": "Display width in pixels.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "x": {
            "description": "Display origin X coordinate in desktop pixels.",
            "format": "int32",
            "type": "integer"
          },
          "y": {
            "description": "Display origin Y coordinate in desktop pixels.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "x",
          "y",
          "width",
          "height",
          "isActive"
        ],
        "type": "object"
      },
      "ComputerUseDisplayInfoResponse": {
        "description": "Display inventory response.",
        "properties": {
          "displays": {
            "description": "The current display list.",
            "items": {
              "$ref": "#/components/schemas/ComputerUseDisplay"
            },
            "type": "array"
          }
        },
        "required": [
          "displays"
        ],
        "type": "object"
      },
      "ComputerUseDisplayWindowsResponse": {
        "description": "Window inventory response.",
        "properties": {
          "windows": {
            "description": "The current top-level window list.",
            "items": {
              "$ref": "#/components/schemas/ComputerUseWindow"
            },
            "type": "array"
          }
        },
        "required": [
          "windows"
        ],
        "type": "object"
      },
      "ComputerUseKeyboardHotkeyRequest": {
        "description": "Keyboard hotkey request (`ctrl+shift+p`).",
        "properties": {
          "keys": {
            "description": "`+`-delimited chord string.",
            "type": "string"
          }
        },
        "required": [
          "keys"
        ],
        "type": "object"
      },
      "ComputerUseKeyboardKeyRequest": {
        "description": "Keyboard key request.",
        "properties": {
          "key": {
            "description": "The main key name.",
            "type": "string"
          },
          "modifiers": {
            "description": "Modifier key names held while pressing `key`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "ComputerUseKeyboardTypeRequest": {
        "description": "Keyboard typing request.",
        "properties": {
          "delay": {
            "description": "Delay in milliseconds between key presses. Omitted = `0`.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "text": {
            "description": "UTF-8 text to type.",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "ComputerUseLifecycleResponse": {
        "description": "The response returned by lifecycle operations that start or stop the stack.",
        "properties": {
          "message": {
            "description": "Stable success text.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ComputerUseProcessStatusMap",
            "description": "The post-operation process inventory."
          }
        },
        "required": [
          "message",
          "status"
        ],
        "type": "object"
      },
      "ComputerUseMouseClickRequest": {
        "description": "Mouse click request.",
        "properties": {
          "button": {
            "description": "Button name (`left`, `middle`, `right`). Omitted = `left`.",
            "type": "string"
          },
          "double": {
            "description": "Whether to double-click instead of single-clicking.",
            "type": "boolean"
          },
          "x": {
            "description": "Target X coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          },
          "y": {
            "description": "Target Y coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "type": "object"
      },
      "ComputerUseMouseDragRequest": {
        "description": "Mouse drag request.",
        "properties": {
          "button": {
            "description": "Button name (`left`, `middle`, `right`). Omitted = `left`.",
            "type": "string"
          },
          "endX": {
            "description": "Drag end X coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          },
          "endY": {
            "description": "Drag end Y coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          },
          "startX": {
            "description": "Drag start X coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          },
          "startY": {
            "description": "Drag start Y coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "startX",
          "startY",
          "endX",
          "endY"
        ],
        "type": "object"
      },
      "ComputerUseMouseMoveRequest": {
        "description": "Mouse move request.",
        "properties": {
          "x": {
            "description": "Target X coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          },
          "y": {
            "description": "Target Y coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "type": "object"
      },
      "ComputerUseMouseScrollRequest": {
        "description": "Mouse scroll request.",
        "properties": {
          "amount": {
            "description": "Number of wheel steps. Omitted = `1`.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "direction": {
            "description": "Scroll direction (`up` or `down`).",
            "type": "string"
          },
          "x": {
            "description": "Target X coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          },
          "y": {
            "description": "Target Y coordinate in desktop pixels.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y",
          "direction"
        ],
        "type": "object"
      },
      "ComputerUsePoint": {
        "description": "A point in desktop pixels.",
        "properties": {
          "x": {
            "description": "Horizontal desktop coordinate. `i32` so every platform's native\ncoordinate fits (X11 reports `i16`, Win32 `LONG`).",
            "format": "int32",
            "type": "integer"
          },
          "y": {
            "description": "Vertical desktop coordinate.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "type": "object"
      },
      "ComputerUseProcessErrorsResponse": {
        "description": "The stderr/errors of one named process.",
        "properties": {
          "errors": {
            "description": "The retained stderr/error log text.",
            "type": "string"
          },
          "processName": {
            "description": "The requested process name.",
            "type": "string"
          }
        },
        "required": [
          "processName",
          "errors"
        ],
        "type": "object"
      },
      "ComputerUseProcessLogsResponse": {
        "description": "The logs of one named process.",
        "properties": {
          "logs": {
            "description": "The retained stdout log text.",
            "type": "string"
          },
          "processName": {
            "description": "The requested process name.",
            "type": "string"
          }
        },
        "required": [
          "processName",
          "logs"
        ],
        "type": "object"
      },
      "ComputerUseProcessRestartResponse": {
        "description": "The response returned by `POST /computeruse/process/{name}/restart`.",
        "properties": {
          "message": {
            "description": "Stable success text.",
            "type": "string"
          },
          "processName": {
            "description": "The restarted process name.",
            "type": "string"
          }
        },
        "required": [
          "message",
          "processName"
        ],
        "type": "object"
      },
      "ComputerUseProcessRunningStatus": {
        "description": "The running state of one named process.",
        "properties": {
          "processName": {
            "description": "The requested process name.",
            "type": "string"
          },
          "running": {
            "description": "Whether the named process is currently alive.",
            "type": "boolean"
          }
        },
        "required": [
          "processName",
          "running"
        ],
        "type": "object"
      },
      "ComputerUseProcessStatus": {
        "description": "One supervised computer-use process.",
        "properties": {
          "AutoRestart": {
            "description": "Whether the supervisor will auto-restart the process.",
            "type": "boolean"
          },
          "Failed": {
            "description": "Whether the process entered a terminal failed state.",
            "type": "boolean"
          },
          "Pid": {
            "description": "The live process id when `running` is true.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "Priority": {
            "description": "Relative startup priority within the desktop stack.",
            "format": "int32",
            "type": "integer"
          },
          "RestartAttempts": {
            "description": "How many restart attempts were consumed by the current generation.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "RestartBackoffMs": {
            "description": "The current restart backoff in milliseconds.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "Running": {
            "description": "Whether the process is currently alive.",
            "type": "boolean"
          },
          "Status": {
            "description": "Human-readable state (`running`, `stopped`, `failed`).",
            "type": "string"
          }
        },
        "required": [
          "Running",
          "Priority",
          "AutoRestart",
          "Failed",
          "RestartAttempts",
          "RestartBackoffMs",
          "Status"
        ],
        "type": "object"
      },
      "ComputerUseProcessStatusMap": {
        "additionalProperties": {
          "$ref": "#/components/schemas/ComputerUseProcessStatus"
        },
        "description": "The process-status map keyed by process name.",
        "propertyNames": {
          "type": "string"
        },
        "type": "object"
      },
      "ComputerUseRecording": {
        "description": "Recording metadata.",
        "properties": {
          "durationSeconds": {
            "description": "Duration in seconds when known.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "endTime": {
            "description": "Recording end time in RFC 3339 format, omitted while live.",
            "type": [
              "string",
              "null"
            ]
          },
          "fileName": {
            "description": "Download filename.",
            "type": "string"
          },
          "filePath": {
            "description": "Absolute path on the addon host.",
            "type": "string"
          },
          "id": {
            "description": "Recording id.",
            "type": "string"
          },
          "sizeBytes": {
            "description": "Encoded file size in bytes when known.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "startTime": {
            "description": "Recording start time in RFC 3339 format.",
            "type": "string"
          },
          "status": {
            "description": "Lifecycle status (`recording`, `stopping`, `completed`, `failed`, ...).",
            "type": "string"
          }
        },
        "required": [
          "id",
          "fileName",
          "filePath",
          "startTime",
          "status"
        ],
        "type": "object"
      },
      "ComputerUseRecordingStartRequest": {
        "description": "Recording start request.",
        "properties": {
          "label": {
            "description": "Optional label used as the filename prefix.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "ComputerUseRecordingStopRequest": {
        "description": "Recording stop request.",
        "properties": {
          "id": {
            "description": "The recording id.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "ComputerUseRecordingsResponse": {
        "description": "Recording list response.",
        "properties": {
          "recordings": {
            "description": "The current and retained recordings.",
            "items": {
              "$ref": "#/components/schemas/ComputerUseRecording"
            },
            "type": "array"
          }
        },
        "required": [
          "recordings"
        ],
        "type": "object"
      },
      "ComputerUseRestartResponse": {
        "description": "The response returned by `POST /computeruse/restart`.",
        "properties": {
          "desktop": {
            "$ref": "#/components/schemas/ComputerUseDesktopState",
            "description": "The explicit desktop state after the restart succeeds."
          },
          "message": {
            "description": "Stable success text.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ComputerUseActivityStatus",
            "description": "Legacy compatibility state (`active` after a successful restart)."
          }
        },
        "required": [
          "message",
          "status",
          "desktop"
        ],
        "type": "object"
      },
      "ComputerUseScreenshotQuery": {
        "description": "Screenshot query parameters.",
        "properties": {
          "format": {
            "description": "Image format for compressed screenshot routes. Omitted = `png`.",
            "type": [
              "string",
              "null"
            ]
          },
          "height": {
            "description": "Region height for region routes. Must be greater than zero.",
            "type": [
              "string",
              "null"
            ]
          },
          "quality": {
            "description": "JPEG quality for compressed screenshot routes. Omitted = `85`.",
            "type": [
              "string",
              "null"
            ]
          },
          "scale": {
            "description": "Downscale factor for compressed screenshot routes. Omitted = `1.0`.",
            "type": [
              "string",
              "null"
            ]
          },
          "show_cursor": {
            "description": "Whether to include the current cursor position in the JSON response.",
            "type": [
              "string",
              "null"
            ]
          },
          "width": {
            "description": "Region width for region routes. Must be greater than zero.",
            "type": [
              "string",
              "null"
            ]
          },
          "x": {
            "description": "Region left coordinate for region routes.",
            "type": [
              "string",
              "null"
            ]
          },
          "y": {
            "description": "Region top coordinate for region routes.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "ComputerUseScreenshotResponse": {
        "description": "Screenshot response.",
        "properties": {
          "cursorPosition": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ComputerUsePoint",
                "description": "Present when the caller asked for the cursor location."
              }
            ]
          },
          "screenshot": {
            "description": "Base64-encoded PNG or JPEG bytes.",
            "type": "string"
          },
          "sizeBytes": {
            "description": "Size of the encoded image in bytes.",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "screenshot",
          "sizeBytes"
        ],
        "type": "object"
      },
      "ComputerUseScrollResponse": {
        "description": "Scroll success response.",
        "properties": {
          "success": {
            "description": "Always `true` when the request succeeds.",
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "ComputerUseStatusResponse": {
        "description": "The public desktop status surface.",
        "properties": {
          "cause": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ComputerUseDesktopFailure",
                "description": "Present exactly when `desktop` is `failed`."
              }
            ]
          },
          "desktop": {
            "$ref": "#/components/schemas/ComputerUseDesktopState",
            "description": "The explicit desktop lifetime state."
          },
          "status": {
            "$ref": "#/components/schemas/ComputerUseActivityStatus",
            "description": "Legacy compatibility state derived from `desktop`."
          }
        },
        "required": [
          "status",
          "desktop"
        ],
        "type": "object"
      },
      "ComputerUseWindow": {
        "description": "One top-level window.",
        "properties": {
          "height": {
            "description": "Window height in pixels.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "id": {
            "description": "Platform window id \u2014 an X11 window (`u32`) or a Win32 `HWND`.\n`u64` so a pointer-sized handle round-trips without a narrowing\nerror; in practice both stay well inside 2^53 (Win32 guarantees the\nsignificant bits of an `HWND` fit in 32 bits for WOW64 interop), so\nJavaScript clients read it exactly.",
            "format": "int64",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "isActive": {
            "description": "Whether this window is active/focused.",
            "type": "boolean"
          },
          "title": {
            "description": "Window title.",
            "type": "string"
          },
          "width": {
            "description": "Window width in pixels.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "x": {
            "description": "Window origin X coordinate in desktop pixels.",
            "format": "int32",
            "type": "integer"
          },
          "y": {
            "description": "Window origin Y coordinate in desktop pixels.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "title",
          "x",
          "y",
          "width",
          "height",
          "isActive"
        ],
        "type": "object"
      },
      "CreateProcessQuery": {
        "description": "Query parameters that change the call shape of `POST /processes`.",
        "properties": {
          "logs": {
            "description": "Inline the first logs page using `text` or `base64`; requires `waitMs`.",
            "type": [
              "string",
              "null"
            ]
          },
          "waitMs": {
            "description": "Wait up to this many milliseconds before replying; timing out still returns 201 with a running record.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "CreateProcessRequest": {
        "additionalProperties": false,
        "description": "`POST /processes` request body.",
        "properties": {
          "argv": {
            "description": "argv mode. Exactly one of `argv`, `shellCommand`, or `code` may be present.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "code": {
            "description": "Code to execute through a language-kernel session.",
            "type": [
              "string",
              "null"
            ]
          },
          "cwd": {
            "description": "Optional working directory. Empty falls back to the configured default OS user's home for `exec`/`pty` processes that run as that user and whose home exists; `kind=code`, an explicit per-request `user`, and a missing home fall back to the daemon work dir.",
            "type": [
              "string",
              "null"
            ]
          },
          "env": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Environment overrides applied at spawn time.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "keepLogs": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/KeepLogs",
                "description": "Retention policy override."
              }
            ]
          },
          "kind": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Kind",
                "description": "Process kind. Defaults to `exec`, or `code` when `code` is present. `session` starts a shell session and takes none of `argv`, `shellCommand` or `code`."
              }
            ]
          },
          "language": {
            "description": "Code language such as `python`, `typescript`, or `javascript`.",
            "type": [
              "string",
              "null"
            ]
          },
          "login": {
            "description": "Whether to request a login shell.",
            "type": "boolean"
          },
          "name": {
            "description": "Optional live-only alias. Must be a safe identifier.",
            "type": [
              "string",
              "null"
            ]
          },
          "sessionId": {
            "description": "The session to run in. For `kind=exec`: the id or live name of a `kind=session` process; the `shellCommand` runs inside its shell, one command at a time, in order, and the request refuses `argv`, `cwd`, `env`, `shell`, `login: true` and `user` (the session's settings apply). Unknown ids answer `SESSION_NOT_FOUND` (sessions are never created on first use) and an ended or deleted session answers `SESSION_ENDED`. For `kind=code`: the interpreter context (language-kernel session) to execute in.",
            "type": [
              "string",
              "null"
            ]
          },
          "shell": {
            "description": "Requested shell path or shell name. For `kind=session` on Linux and macOS it must be a POSIX shell (bash, sh, dash, zsh, ksh): the session answers 400 `PROCESS_START_FAILED` when the shell does not run POSIX commands within 5 s of starting.",
            "type": [
              "string",
              "null"
            ]
          },
          "shellCommand": {
            "description": "Shell-command mode. The daemon writes this to a script file before execution.",
            "type": [
              "string",
              "null"
            ]
          },
          "stdin": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/StdinMode",
                "description": "Whether stdin stays open after create."
              }
            ]
          },
          "terminal": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TerminalSize",
                "description": "PTY geometry, only for `kind=pty`."
              }
            ]
          },
          "timeoutMs": {
            "description": "Per-process timeout in milliseconds. For a command run in a session the clock starts when the command starts, after any queued commands ahead of it; on expiry the daemon stops the command and the session survives. A command that has not stopped 5 s after its timeout (the shell could not interrupt it and it runs no process to kill: a builtin loop after `trap '' INT`, or in dash, BusyBox `sh` and mksh a loop of shell functions, where an interrupt leaves only the innermost function or sourced file) ends the session, with its background jobs, instead of blocking it forever. On Windows, PowerShell loops and cmdlets may keep running.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "user": {
            "description": "Optional user to run as. Rejected with 400 `UNSUPPORTED_OPERATION` for `kind=code` (the language kernel does not run as a sandbox user in v1).",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "CreateSessionRequest": {
        "additionalProperties": false,
        "description": "`POST /sessions` request body.",
        "properties": {
          "cwd": {
            "description": "Working directory the kernel starts in. Empty falls back to the daemon work dir.",
            "type": [
              "string",
              "null"
            ]
          },
          "env": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Environment overrides applied when the kernel starts.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "description": "Optional client-chosen session id. Must be a safe identifier when present.",
            "type": [
              "string",
              "null"
            ]
          },
          "kernel": {
            "description": "Kernel language, one of `python`, `typescript` or `javascript`. A language is required: `shell`, or omitting the field, answers 400 `UNSUPPORTED_OPERATION`, because shell sessions are created with `POST /processes` `kind=session`.",
            "type": [
              "string",
              "null"
            ]
          },
          "login": {
            "description": "Not used by language kernels; answers 400 `UNSUPPORTED_OPERATION` when `true`.",
            "type": "boolean"
          },
          "shell": {
            "description": "Not used by language kernels; answers 400 `UNSUPPORTED_OPERATION` when set.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "DeleteQuery": {
        "description": "Query parameters for `DELETE /files`.",
        "properties": {
          "path": {
            "description": "Path to remove.",
            "type": [
              "string",
              "null"
            ]
          },
          "recursive": {
            "description": "Recursive delete flag as the historical string query value.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "DockerOwner": {
        "description": "Who starts and owns Docker Engine in this sandbox.",
        "enum": [
          "none",
          "daemon",
          "entrypoint"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "DockerState": {
        "description": "Where Docker Engine is in this boot's startup.",
        "enum": [
          "not_present",
          "disabled",
          "unmanaged",
          "deferred",
          "starting",
          "ready",
          "failed",
          "unsupported"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "DockerStatus": {
        "description": "`GET /docker/status` \u2014 the Docker Engine startup status for this boot.\nRead-only: asking never starts or restarts anything.",
        "properties": {
          "owner": {
            "$ref": "#/components/schemas/DockerOwner",
            "description": "Who starts Docker."
          },
          "processId": {
            "description": "The process-engine record whose logs hold Docker's output \u2014 the\ndaemon-launched `dockerd`, or the image entrypoint when it owns Docker.\nRead them with `GET /processes/{id}/logs`. `null` when no process was\nstarted for Docker.",
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "description": "Why the state is what it is (a failure cause, init's storage reason,\nor a note on a `ready` engine the sandbox user cannot reach). `null`\nwhen there is nothing to add.",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/DockerState",
            "description": "Startup state."
          }
        },
        "required": [
          "state",
          "owner"
        ],
        "type": "object"
      },
      "DockerStatusQuery": {
        "description": "`GET /docker/status` query parameters.",
        "properties": {
          "waitMs": {
            "description": "Wait up to this many milliseconds for a `starting` state to settle\nbefore answering. Clamped to 1000; omitted or `0` answers immediately.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "DocumentRequest": {
        "description": "Identifies one document within a language-server workspace.",
        "properties": {
          "languageId": {
            "description": "The LSP language key (`python`, `typescript`).",
            "type": "string"
          },
          "pathToProject": {
            "description": "Absolute project root path used as the server's workspace root.",
            "type": "string"
          },
          "uri": {
            "description": "Document URI, typically a `file://` URI.",
            "type": "string"
          }
        },
        "required": [
          "languageId",
          "pathToProject",
          "uri"
        ],
        "type": "object"
      },
      "EntrypointStartQuery": {
        "description": "`POST /rlp/entrypoint-start` query parameters.",
        "properties": {
          "fnReady": {
            "description": "`1` (or `true`) marks the release of a function-ready template build\n(the runner's template builder releases the gate before capture). The\ndaemon then skips Docker startup and reports Docker as `deferred`;\nthe image entrypoint still starts. Any other value, or omitted, is an\nordinary release.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "EnvRequest": {
        "additionalProperties": false,
        "description": "Update the daemon's extra environment layer for future child processes,\nPTYs, and sessions created after this call.",
        "properties": {
          "env": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Environment variables to add or replace for processes, PTYs, and sessions\ncreated after this call. Keys must not also appear in `unset`.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "unset": {
            "description": "Environment variable names to remove from the daemon's pushed layer.\nKeys must not also appear in `env`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ErrorCode": {
        "description": "Branchable domain codes. Fixed HTTP status per code \u2014 see x-daytona-error-codes. Once published, a code is contract: it can be added to, never renamed.",
        "enum": [
          "PROCESS_NOT_FOUND",
          "PROCESS_START_FAILED",
          "PROCESS_TERMINAL",
          "PROCESS_EXECUTION_TIMEOUT",
          "NAME_CONFLICT",
          "INVALID_CURSOR",
          "CURSOR_EXPIRED",
          "STDIN_CLOSED",
          "STDIN_UNAVAILABLE",
          "PROTECTED_PROCESS",
          "UNSUPPORTED_OPERATION",
          "SESSION_NOT_FOUND",
          "SESSION_ENDED",
          "KERNEL_UNAVAILABLE",
          "FILE_NOT_FOUND",
          "INVALID_FILE_PATH",
          "FILE_ACCESS_DENIED",
          "FILE_READ_FAILED",
          "ATOMIC_UPLOAD_UNSUPPORTED",
          "GIT_AUTH_FAILED",
          "GIT_REPO_NOT_FOUND",
          "GIT_BRANCH_NOT_FOUND",
          "GIT_BRANCH_EXISTS",
          "LSP_SERVER_UNAVAILABLE",
          "LSP_NOT_STARTED",
          "ADDON_UNAVAILABLE",
          "DESKTOP_NOT_READY",
          "FS_FREEZE_UNSUPPORTED",
          "NO_DEFAULT_GATEWAY"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "ErrorEnvelope": {
        "description": "Every 4xx/5xx body on the toolbox surface (and on the control listener's\nJSON routes). `code` is always present; `trace_id` is omitted until daemon\ntrace propagation is implemented.\n\n(Documentation twin of `rlpd_proto::ErrorEnvelope`, the borrowing\nserializer the middleware uses; shims name this one in\n`#[utoipa::path(responses(...))]` so every error response `$ref`s one\ncomponent.)",
        "properties": {
          "code": {
            "description": "A code from `x-daytona-error-codes` (the `ErrorCode` enum) or from\n`x-daytona-generic-codes`.",
            "type": "string"
          },
          "message": {
            "description": "Human-readable reason.",
            "type": "string"
          },
          "source": {
            "description": "Which component produced the error (`DAYTONA_DAEMON`, or an addon's own\nsource when relayed). An open vocabulary, deliberately not an enum.\nThe SDKs dispatch their typed error classes on `code` only for the\n`DAYTONA_DAEMON` source; an envelope relayed with a foreign source\ndispatches through the shared generic codes, then by HTTP status.",
            "example": "DAYTONA_DAEMON",
            "type": "string"
          },
          "trace_id": {
            "description": "Recording trace identifier, omitted when unavailable.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message",
          "source"
        ],
        "type": "object"
      },
      "ExitResult": {
        "description": "Terminal result returned by `GET /processes/{id}/wait` and SSE `state` events.",
        "properties": {
          "exitCode": {
            "description": "Process exit code, when the platform has one.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "reason": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Reason",
                "description": "Why the process became terminal."
              }
            ]
          },
          "signal": {
            "description": "Signal name such as `SIGKILL`, omitted when none applies.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "FileInfo": {
        "description": "One filesystem entry as `/files` and `/files/info` serialize it.",
        "properties": {
          "group": {
            "description": "Numeric group id rendered as a string.",
            "type": "string"
          },
          "isDir": {
            "description": "Whether the entry is a directory.",
            "type": "boolean"
          },
          "modTime": {
            "description": "Deprecated but load-bearing: Go `time.String()` layout for the last modification time.",
            "type": "string"
          },
          "mode": {
            "description": "Go `os.FileMode.String()` layout (`-rw-r--r--`, `drwxr-xr-x`, \u2026).",
            "type": "string"
          },
          "modifiedAt": {
            "description": "RFC 3339 UTC timestamp for the last modification time.",
            "type": "string"
          },
          "name": {
            "description": "Base name of the entry.",
            "type": "string"
          },
          "owner": {
            "description": "Numeric owner id rendered as a string.",
            "type": "string"
          },
          "path": {
            "description": "Absolute path to the entry, rendered in the guest's path syntax.",
            "type": "string"
          },
          "permissions": {
            "description": "Four-digit octal permissions (`0644`, `0755`, \u2026).",
            "type": "string"
          },
          "size": {
            "description": "Entry size in bytes.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "name",
          "path",
          "size",
          "mode",
          "modTime",
          "modifiedAt",
          "isDir",
          "owner",
          "group",
          "permissions"
        ],
        "type": "object"
      },
      "FileStatus": {
        "description": "One file entry from `git status`.",
        "properties": {
          "extra": {
            "description": "Extra path metadata; for renames this carries the original path, otherwise an empty string.",
            "type": "string"
          },
          "name": {
            "description": "File or directory path reported by git.",
            "type": "string"
          },
          "staging": {
            "description": "Index status column.",
            "type": "string"
          },
          "worktree": {
            "description": "Worktree status column.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "extra",
          "staging",
          "worktree"
        ],
        "type": "object"
      },
      "FsFreezeRequest": {
        "description": "`POST /rlp/fs-freeze` \u2014 freeze the guest's scratch filesystem around a\ndisk snapshot (PLAN-DOCKER-AUTOMATIC-SUPPORT). `FIFREEZE` checkpoints the\next4 journal, so the host reads exact block bitmaps from the captured copy.",
        "properties": {
          "timeoutMs": {
            "description": "Auto-thaw deadline in milliseconds, counted from when the daemon\nreceives the request. Omitted means 10000; values are clamped to\n1000..=30000. A repeat freeze while frozen re-arms the deadline.",
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "FsFreezeResponse": {
        "description": "`POST /rlp/fs-freeze` success body.",
        "properties": {
          "autoThawMs": {
            "description": "The effective auto-thaw window in milliseconds.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "device": {
            "description": "The frozen filesystem's device as `major:minor` (mountinfo field 3).",
            "type": "string"
          },
          "frozen": {
            "description": "Always `true` on success.",
            "type": "boolean"
          },
          "mountpoint": {
            "description": "The mount point the freeze was issued through (the scratch\nfilesystem's `/runtime/containerd` or `/runtime/docker` bind mount).",
            "type": "string"
          }
        },
        "required": [
          "frozen",
          "mountpoint",
          "device",
          "autoThawMs"
        ],
        "type": "object"
      },
      "FsPathQuery": {
        "additionalProperties": false,
        "description": "Query parameters for routes that address one path or directory listing.",
        "properties": {
          "depth": {
            "description": "Recursive listing depth for `GET /files`; omitted for the flat default (`1`).",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "Target path. Omitted on `GET /files` to use the daemon work directory.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "FsThawResponse": {
        "description": "`POST /rlp/fs-thaw` success body.",
        "properties": {
          "frozen": {
            "description": "Always `false` on success.",
            "type": "boolean"
          }
        },
        "required": [
          "frozen"
        ],
        "type": "object"
      },
      "GitConfigQuery": {
        "description": "Query for one git config key.",
        "properties": {
          "key": {
            "description": "Config key to read.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "Repository path required for `scope=local`.",
            "type": [
              "string",
              "null"
            ]
          },
          "scope": {
            "description": "Config scope; omitted means `global`.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "GitConfigResponse": {
        "description": "Value of one git config key.",
        "properties": {
          "value": {
            "description": "Config value, or `null` when the key is unset.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "GitPathQuery": {
        "description": "Query for routes that operate on one repository path.",
        "properties": {
          "path": {
            "description": "Repository path to inspect.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "GitRemote": {
        "description": "One configured remote.",
        "properties": {
          "name": {
            "description": "Remote name.",
            "type": "string"
          },
          "url": {
            "description": "Remote URL with any userinfo redacted before it is returned.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "url"
        ],
        "type": "object"
      },
      "InfoResponse": {
        "properties": {
          "buildSha": {
            "description": "Full 40-hex commit the daemon was built from; `unknown` for an unstamped build. Absent on daemon generations that predate build identity.",
            "type": [
              "string",
              "null"
            ]
          },
          "buildTime": {
            "description": "RFC 3339 UTC time the daemon was built (e.g. `2026-10-02T14:03:11Z`); `unknown` for an unstamped build. Absent on daemon generations that predate build identity.",
            "type": [
              "string",
              "null"
            ]
          },
          "userHomeDir": {
            "description": "Home directory of the configured default OS user; absent when no user is configured or the configured user no longer resolves in `/etc/passwd`. On Windows: the daemon's own home.",
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "description": "The platform version this daemon was built for (the latest published release, e.g. `2.0.0-alpha.1`; `0.0.0-dev` for an unstamped build). Not the opaque daemon build string `GET /version` serves.",
            "type": "string"
          },
          "workDir": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "workDir"
        ],
        "type": "object"
      },
      "InitRequest": {
        "description": "Initialize a repository.",
        "properties": {
          "bare": {
            "description": "Whether to create a bare repository.",
            "type": "boolean"
          },
          "initial_branch": {
            "description": "Initial branch name for a new non-bare repository.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "Destination path for the new repository.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "IsPortInUseResponse": {
        "description": "Whether one TCP port is currently in use.",
        "properties": {
          "isInUse": {
            "description": "`true` when the port is listening or accepts a loopback dial.",
            "type": "boolean"
          }
        },
        "required": [
          "isInUse"
        ],
        "type": "object"
      },
      "KeepLogs": {
        "description": "Retention policy for a process record and its ledger.",
        "enum": [
          "until_cleanup",
          "on_exit_ttl",
          "none"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "KernelKind": {
        "description": "Session-kernel kind. `/sessions` serves the language kernels behind interpreter contexts; shell sessions are `kind=session` processes on `/processes`.",
        "enum": [
          "shell",
          "python",
          "typescript",
          "javascript"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "Kind": {
        "description": "What kind of process the daemon should run.",
        "enum": [
          "exec",
          "pty",
          "code",
          "session"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "ListQuery": {
        "description": "`GET /processes` filters.",
        "properties": {
          "kind": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Kind",
                "description": "Filter by process kind."
              }
            ]
          },
          "name": {
            "description": "Filter by live name alias.",
            "type": [
              "string",
              "null"
            ]
          },
          "pid": {
            "description": "Filter by OS process id.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "sessionId": {
            "description": "Filter by the session a process ran in (`kind=session` process id or interpreter context id).",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "description": "`running`, `terminal`, or `all` (the default when omitted).",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "ListRemotesResponse": {
        "description": "Remote list response.",
        "properties": {
          "remotes": {
            "description": "Configured remotes.",
            "items": {
              "$ref": "#/components/schemas/GitRemote"
            },
            "type": "array"
          }
        },
        "required": [
          "remotes"
        ],
        "type": "object"
      },
      "LogFrameDto": {
        "description": "One log frame in a JSON log page or SSE `log` event.",
        "properties": {
          "channel": {
            "description": "Channel such as `stdout`, `stderr`, `pty`, `setup`, `display`, `execute_result`, or `error`.",
            "type": "string"
          },
          "cursor": {
            "description": "Cursor naming this frame.",
            "type": "string"
          },
          "data": {
            "description": "Frame payload in the requested encoding.",
            "type": "string"
          },
          "timestamp": {
            "description": "Unix timestamp in milliseconds.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "cursor",
          "channel",
          "timestamp",
          "data"
        ],
        "type": "object"
      },
      "LogsQuery": {
        "description": "`GET /processes/{id}/logs` query parameters.",
        "properties": {
          "cursor": {
            "description": "Resume after this cursor. Empty or omitted starts from the beginning.",
            "type": [
              "string",
              "null"
            ]
          },
          "encoding": {
            "description": "Payload encoding: `text` (default) or `base64`.",
            "type": [
              "string",
              "null"
            ]
          },
          "follow": {
            "description": "When true, answer an SSE follow stream instead of a JSON page.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "limit": {
            "description": "Page size for JSON reads; clamped by the daemon.",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "MarkupContent": {
        "description": "Rich-text documentation attached to a completion item.",
        "properties": {
          "kind": {
            "description": "Markup kind, typically `markdown` or `plaintext`.",
            "type": "string"
          },
          "value": {
            "description": "Rendered documentation body.",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "type": "object"
      },
      "Match": {
        "description": "One literal line match from `GET /files/find`.",
        "properties": {
          "content": {
            "description": "The matched line content.",
            "type": "string"
          },
          "file": {
            "description": "Absolute path of the file containing the match.",
            "type": "string"
          },
          "line": {
            "description": "One-based line number.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "file",
          "line",
          "content"
        ],
        "type": "object"
      },
      "Metrics": {
        "description": "One guest-sampled resource snapshot.",
        "properties": {
          "cpuCount": {
            "description": "Logical CPU count visible inside the sandbox.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "cpuUtilization": {
            "description": "Fraction of total CPU capacity in use across all CPUs, clamped to `0..=1`.",
            "format": "double",
            "type": "number"
          },
          "diskTotalBytes": {
            "description": "Total bytes on the filesystem containing the sandbox work directory.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "diskUsageBytes": {
            "description": "Used bytes on the filesystem containing the sandbox work directory.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "memoryTotalBytes": {
            "description": "Total guest memory in bytes.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "memoryUsageBytes": {
            "description": "Bytes of guest memory currently in use (`total - available`).",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "timestamp": {
            "description": "Snapshot time as an RFC 3339 UTC timestamp.",
            "type": "string"
          }
        },
        "required": [
          "timestamp",
          "cpuCount",
          "cpuUtilization",
          "memoryUsageBytes",
          "memoryTotalBytes",
          "diskUsageBytes",
          "diskTotalBytes"
        ],
        "type": "object"
      },
      "MountDto": {
        "description": "Redacted mount status returned by `GET /rlp/mounts`.",
        "properties": {
          "bucket": {
            "description": "Bucket currently attached at the mount path.",
            "type": "string"
          },
          "error": {
            "description": "Human-readable failure detail, or the empty string when the mount is healthy.",
            "type": "string"
          },
          "helper": {
            "description": "Which helper serves this path: `mount-s3` (Linux, a bucket) or `nfs`\n(macOS, a disk volume the Mac serves). Nothing on the spec that\nnames a credential is reported here: `GET /rlp/mounts` is readable by\nanything that can reach the control listener.",
            "type": "string"
          },
          "mount_path": {
            "description": "Absolute guest mount path.",
            "type": "string"
          },
          "name": {
            "description": "Stable mount name.",
            "type": "string"
          },
          "status": {
            "description": "Supervisor state such as `mounting`, `mounted`, or `failed`.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "mount_path",
          "bucket",
          "status",
          "error"
        ],
        "type": "object"
      },
      "MountSpec": {
        "description": "One bucket-volume mount specification delivered by the runner.",
        "properties": {
          "bucket": {
            "description": "Bucket name to mount.",
            "type": "string"
          },
          "cred_access_key": {
            "description": "The gateway key pair for this mount, served to Mountpoint over loopback,\nnever on argv.",
            "type": "string",
            "writeOnly": true
          },
          "cred_secret_key": {
            "type": "string",
            "writeOnly": true
          },
          "gateway_url": {
            "description": "The runner's bucket gateway, on a fixed link-local address the sandbox\nnetns DNATs to the local runner, so it survives a migration.",
            "type": "string"
          },
          "helper": {
            "description": "Which in-guest helper mounts the volume: `\"mount-s3\"` (Linux, a\nbucket) or `\"nfs\"` (macOS, a disk volume the Mac's rlp-volumed serves).",
            "type": "string"
          },
          "mount_path": {
            "description": "Absolute guest path where the bucket should appear.",
            "type": "string"
          },
          "name": {
            "description": "Stable mount name chosen by the control plane.",
            "type": "string"
          },
          "nfs_export": {
            "type": "string"
          },
          "nfs_port": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "nfs_server": {
            "description": "`helper: \"nfs\"`: the NFSv4.0 server (the guest's gateway address),\nthe export path (`/<volume_id>`) and the TCP port.",
            "type": "string"
          },
          "path_style": {
            "description": "Whether the backend should use path-style S3 addressing.",
            "type": "boolean"
          },
          "prefix": {
            "description": "Optional prefix inside the bucket to expose as the mount root.",
            "type": "string"
          },
          "read_only": {
            "description": "Whether writes should be refused inside the mounted filesystem.",
            "type": "boolean"
          },
          "region": {
            "description": "Region for provider signing and endpoint selection.",
            "type": "string"
          },
          "token": {
            "description": "Bearer token for the daemon's loopback credentials server, minted per VM.",
            "type": "string",
            "writeOnly": true
          }
        },
        "type": "object"
      },
      "MountsRequest": {
        "description": "`POST /rlp/mounts` \u2014 the full desired mount set for this sandbox.",
        "properties": {
          "mounts": {
            "description": "The mounts the daemon should ensure are present.",
            "items": {
              "$ref": "#/components/schemas/MountSpec"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MoveQuery": {
        "description": "Query parameters for `POST /files/move`.",
        "properties": {
          "destination": {
            "description": "Destination path.",
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "description": "Source path to move.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "PathModeQuery": {
        "description": "Query parameters for `POST /files/folder`.",
        "properties": {
          "mode": {
            "description": "Optional octal mode string; omitted or empty uses the route default.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "Directory path to create.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "PermissionsQuery": {
        "description": "Query parameters for `POST /files/permissions`.",
        "properties": {
          "group": {
            "description": "Optional group id or name, when the platform supports chgrp.",
            "type": [
              "string",
              "null"
            ]
          },
          "mode": {
            "description": "Optional octal mode string.",
            "type": [
              "string",
              "null"
            ]
          },
          "owner": {
            "description": "Optional owner id or name, when the platform supports chown.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "Path whose permissions should change. On Linux, when this names a symlink, owner/group and mode follow it together so one request lands on the target inode.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "PortList": {
        "description": "The TCP ports currently listening inside the sandbox.",
        "properties": {
          "ports": {
            "description": "Every listening TCP port, including the daemon's own listeners.",
            "items": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "ports"
        ],
        "type": "object"
      },
      "ProcessDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProcessRecord",
            "description": "Persisted record fields."
          },
          {
            "properties": {
              "firstAvailableCursor": {
                "description": "Cursor of the first surviving log frame, omitted when nothing was evicted.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "lastCursor": {
                "description": "Cursor of the last known log frame, omitted until at least one frame exists.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "logs": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ProcessLogsResponse",
                    "description": "Inline first logs page on `POST /processes?waitMs=...&logs=...`, omitted otherwise."
                  }
                ]
              },
              "truncatedHead": {
                "description": "Whether retention evicted the head of the ledger.",
                "type": "boolean"
              }
            },
            "required": [
              "truncatedHead"
            ],
            "type": "object"
          }
        ],
        "description": "The process DTO returned by create/get/list."
      },
      "ProcessEofEventDto": {
        "description": "SSE `eof` event payload on `GET /processes/{id}/logs?follow=true`.",
        "properties": {
          "cursor": {
            "description": "Final stream cursor.",
            "type": "string"
          }
        },
        "required": [
          "cursor"
        ],
        "type": "object"
      },
      "ProcessErrorEventDto": {
        "description": "SSE `error` event payload on `GET /processes/{id}/logs?follow=true`.",
        "properties": {
          "cursor": {
            "description": "Cursor at which the stream failed.",
            "type": "string"
          },
          "message": {
            "description": "Human-readable error message.",
            "type": "string"
          }
        },
        "required": [
          "cursor",
          "message"
        ],
        "type": "object"
      },
      "ProcessListResponse": {
        "description": "`GET /processes` response body.",
        "properties": {
          "items": {
            "description": "Matching processes in creation order.",
            "items": {
              "$ref": "#/components/schemas/ProcessDto"
            },
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "ProcessLogsResponse": {
        "description": "JSON page body from `GET /processes/{id}/logs`.",
        "properties": {
          "eof": {
            "description": "Whether the process is terminal and there are no more frames after this page.",
            "type": "boolean"
          },
          "firstAvailableCursor": {
            "description": "Cursor of the first surviving frame, omitted when nothing was evicted.",
            "type": [
              "string",
              "null"
            ]
          },
          "frames": {
            "description": "Frames in this page.",
            "items": {
              "$ref": "#/components/schemas/LogFrameDto"
            },
            "type": "array"
          },
          "nextCursor": {
            "description": "Cursor the client should pass to continue from the end of this page.",
            "type": "string"
          },
          "truncatedHead": {
            "description": "Whether retention evicted older frames before this page.",
            "type": "boolean"
          }
        },
        "required": [
          "frames",
          "nextCursor",
          "truncatedHead",
          "eof"
        ],
        "type": "object"
      },
      "ProcessRecord": {
        "description": "The persisted process record and the bulk of the wire process DTO.",
        "properties": {
          "argv": {
            "description": "argv create shape, omitted unless this process was created that way.",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "code": {
            "description": "Code source, omitted unless this is a `kind=code` process.",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "description": "RFC 3339 creation timestamp.",
            "type": "string"
          },
          "cwd": {
            "description": "Working directory the daemon used. For a `kind=session` process, the session shell's current directory, updated after each command; for a command run in a session, the shell's directory when the command started.",
            "type": "string"
          },
          "exitCode": {
            "description": "Exit code, omitted until terminal.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "exitedAt": {
            "description": "RFC 3339 exit timestamp, omitted until terminal.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Stable process id.",
            "type": "string"
          },
          "keepLogs": {
            "$ref": "#/components/schemas/KeepLogs",
            "description": "Record/log retention policy."
          },
          "kind": {
            "$ref": "#/components/schemas/Kind",
            "description": "Process kind."
          },
          "language": {
            "description": "Code language, omitted when not applicable.",
            "type": [
              "string",
              "null"
            ]
          },
          "login": {
            "description": "Whether the daemon requested a login shell.",
            "type": "boolean"
          },
          "name": {
            "description": "Optional live-only alias, omitted when unnamed.",
            "type": [
              "string",
              "null"
            ]
          },
          "pid": {
            "description": "OS process id while running, omitted before spawn and after exit. Always omitted for commands run in a session: they run inside the session's shell, whose own record carries its pid.",
            "format": "int32",
            "type": [
              "integer",
              "null"
            ]
          },
          "reason": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Reason",
                "description": "Terminal reason, omitted until known."
              }
            ]
          },
          "resolvedShell": {
            "description": "Resolved shell path or name, omitted until resolution has happened.",
            "type": [
              "string",
              "null"
            ]
          },
          "sessionId": {
            "description": "The session this process ran in: a `kind=session` process for shell commands, or the interpreter context for `kind=code`. Omitted for standalone processes.",
            "type": [
              "string",
              "null"
            ]
          },
          "shell": {
            "description": "Requested shell, omitted when the daemon used its default resolution.",
            "type": [
              "string",
              "null"
            ]
          },
          "shellCommand": {
            "description": "Shell command source, omitted unless this process was created that way.",
            "type": [
              "string",
              "null"
            ]
          },
          "signal": {
            "description": "Signal name, omitted when none applies.",
            "type": [
              "string",
              "null"
            ]
          },
          "startedAt": {
            "description": "RFC 3339 process-start timestamp, omitted until the process starts.",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/State",
            "description": "Lifecycle state."
          },
          "stdin": {
            "$ref": "#/components/schemas/StdinMode",
            "description": "Whether stdin is open."
          },
          "system": {
            "description": "Whether this is a protected daemon-owned system process.",
            "type": "boolean"
          },
          "terminal": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TerminalSize",
                "description": "PTY geometry, omitted for non-PTY processes."
              }
            ]
          },
          "timeoutMs": {
            "description": "Process timeout in milliseconds, omitted when unset.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "user": {
            "description": "Requested user, omitted when the daemon runs as its default user.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "kind",
          "cwd",
          "stdin",
          "keepLogs",
          "state",
          "createdAt"
        ],
        "type": "object"
      },
      "ProcessStateEventDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProcessDto",
            "description": "Process state snapshot."
          },
          {
            "properties": {
              "cursor": {
                "description": "Cursor of the stream position at which this state was emitted.",
                "type": "string"
              }
            },
            "required": [
              "cursor"
            ],
            "type": "object"
          }
        ],
        "description": "SSE `state` event payload on `GET /processes/{id}/logs?follow=true`."
      },
      "ProcessWarningEventDto": {
        "description": "SSE `warning` event payload on `GET /processes/{id}/logs?follow=true`.",
        "properties": {
          "cursor": {
            "description": "Cursor whose requested position expired.",
            "type": "string"
          },
          "firstAvailableCursor": {
            "description": "Cursor of the first surviving frame the client should resume from.",
            "type": "string"
          },
          "message": {
            "description": "Human-readable warning message.",
            "type": "string"
          }
        },
        "required": [
          "cursor",
          "message",
          "firstAvailableCursor"
        ],
        "type": "object"
      },
      "PullVolumeRequest": {
        "additionalProperties": false,
        "properties": {
          "requestId": {
            "description": "Caller-generated identity, retained across retries (1\u2013128 ASCII letters,\ndigits, underscores or hyphens). Replay is scoped to the active session.",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          },
          "waitMs": {
            "default": 30000,
            "description": "Maximum HTTP wait in milliseconds. Expiry does not cancel accepted work.\nOmitted means 30000. Zero submits a new request or retrieves a known one\nwithout retrying it; only a wait above zero retries a retryable result.",
            "format": "int64",
            "maximum": 30000,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "requestId"
        ],
        "type": "object"
      },
      "PullVolumeResponse": {
        "properties": {
          "manifestId": {
            "description": "Applied manifest for pulled, observed manifest for unchanged (possibly\nnull for a never-committed volume), null for pending. Unchanged does not\nassert that the local attachment is clean.",
            "type": [
              "string",
              "null"
            ]
          },
          "requestId": {
            "description": "The caller's stable request identity, including on elapsed waits.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/PullVolumeStatus"
          }
        },
        "required": [
          "requestId",
          "status",
          "manifestId"
        ],
        "type": "object"
      },
      "PullVolumeStatus": {
        "enum": [
          "pulled",
          "unchanged",
          "pending"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "Reason": {
        "description": "Why a process became terminal.",
        "enum": [
          "exited",
          "signaled",
          "timed_out",
          "lost",
          "failed"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "ReplaceRequest": {
        "additionalProperties": false,
        "description": "JSON body for `POST /files/replace`.",
        "properties": {
          "files": {
            "description": "Files to rewrite.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "newValue": {
            "description": "Replacement text. Omitted only when the caller wants the route to reject the request.",
            "type": [
              "string",
              "null"
            ]
          },
          "pattern": {
            "description": "Literal substring to replace.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReplaceResult": {
        "description": "One file's outcome from `POST /files/replace`.",
        "properties": {
          "error": {
            "description": "Per-file error text, omitted on success.",
            "type": [
              "string",
              "null"
            ]
          },
          "file": {
            "description": "Absolute or caller-supplied file path for this replacement attempt.",
            "type": "string"
          },
          "success": {
            "description": "Whether the replacement succeeded for this file.",
            "type": "boolean"
          }
        },
        "required": [
          "file",
          "success"
        ],
        "type": "object"
      },
      "RepoRequest": {
        "description": "Operate on a repository, optionally with credentials for a remote.",
        "properties": {
          "branch": {
            "description": "Remote branch to push or pull. Omitted keeps the current HEAD push behaviour and git's default pull target.",
            "type": [
              "string",
              "null"
            ]
          },
          "password": {
            "description": "Password for authenticated remotes; write-only, never echoed, delivered to git via askpass.",
            "type": [
              "string",
              "null"
            ],
            "writeOnly": true
          },
          "path": {
            "description": "Repository path to operate in.",
            "type": "string"
          },
          "remote": {
            "description": "Remote name. Omitted defaults to `origin` for push and for pull when\n`branch` is set; a pull without `branch` uses git's configured upstream.",
            "type": [
              "string",
              "null"
            ]
          },
          "setUpstream": {
            "description": "Pass `-u` / `--set-upstream` on push.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "username": {
            "description": "Username for authenticated remotes; write-only, never echoed, delivered to git via askpass.",
            "type": [
              "string",
              "null"
            ],
            "writeOnly": true
          }
        },
        "type": "object"
      },
      "ResetRequest": {
        "description": "Reset repository state.",
        "properties": {
          "files": {
            "description": "Optional pathspecs to reset in mixed mode.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mode": {
            "description": "Reset mode (`mixed`, `soft`, `hard`, `merge`, `keep`); omitted means git's default mixed reset.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "description": "Repository path to operate in.",
            "type": "string"
          },
          "target": {
            "description": "Commit-ish to reset to.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "ResizeRequest": {
        "description": "`POST /processes/{id}/resize` body.",
        "properties": {
          "cols": {
            "description": "PTY columns; must be at least 1.",
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          },
          "rows": {
            "description": "PTY rows; must be at least 1.",
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "cols",
          "rows"
        ],
        "type": "object"
      },
      "RestoreRequest": {
        "description": "Restore paths from the index or another source.",
        "properties": {
          "files": {
            "description": "File paths to restore.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "path": {
            "description": "Repository path to operate in.",
            "type": "string"
          },
          "source": {
            "description": "Optional source tree-ish for the restore.",
            "type": [
              "string",
              "null"
            ]
          },
          "staged": {
            "description": "Whether to restore the index entry.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "worktree": {
            "description": "Whether to restore the worktree entry.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "SearchQuery": {
        "description": "Query parameters for `GET /files/search` and `GET /files/find`.",
        "properties": {
          "path": {
            "description": "Root path to walk recursively.",
            "type": [
              "string",
              "null"
            ]
          },
          "pattern": {
            "description": "Filename glob (`search`) or literal substring (`find`) pattern.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "SearchResponse": {
        "description": "Recursive filename-glob search results from `GET /files/search`.",
        "properties": {
          "files": {
            "description": "Absolute matching file paths.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "files"
        ],
        "type": "object"
      },
      "SecretsRequest": {
        "description": "`POST /rlp/secrets` \u2014 placeholder env injection plus an optional egress CA.",
        "properties": {
          "ca_pem": {
            "description": "PEM-encoded CA bundle fragment to trust for egress interception.\nOmitted or empty when no additional CA should be installed.",
            "type": "string",
            "writeOnly": true
          },
          "env": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Environment variables to inject into future child processes.\n\nThese values are placeholders (`rlps_\u2026`), the sandbox's create env, or\nrunner-delivered internal credentials, and are write-only on this\nsurface. Keys starting with `RLP_`, any `DAYTONA_*` key other than\n`DAYTONA_SANDBOX_TOKEN`, `DAYTONA_API_URL`, `DAYTONA_OTEL_ENDPOINT`,\n`DAYTONA_DOCKER_START`, `DAYTONA_FN_PORT` and `DAYTONA_FN_HANDLER`\n(the last two are platform-injected by the API's functions service\nfor the tenant's handler), and keys that are not valid variable\nnames (empty, or containing `=`, NUL, CR or LF) are refused with\n`400 BAD_REQUEST` naming the key; nothing from such a request is\nstored. The CA-bundle variables (`SSL_CERT_FILE`,\n`REQUESTS_CA_BUNDLE`, `CURL_CA_BUNDLE`, `NODE_EXTRA_CA_CERTS`,\n`GIT_SSL_CAINFO`, `DENO_CERT`) may be pushed, but once an egress CA\nis installed the daemon's own bundle paths replace any pushed value.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "SelfDeleteRequest": {
        "description": "`POST /rlp/self-delete` \u2014 arm one process-bound lifecycle action.",
        "properties": {
          "action": {
            "description": "Lifecycle action to fire on exit: `delete`, `stop`, or `pause`.\nEmpty means `delete`.",
            "type": "string"
          },
          "delay_secs": {
            "description": "Grace delay in seconds before firing the lifecycle action after the PID exits.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "pid": {
            "description": "PID to watch. The request is rejected unless the process is currently alive.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ServerRequest": {
        "description": "Identifies a language-server instance for one language and one project root.",
        "properties": {
          "languageId": {
            "description": "The LSP language key (`python`, `typescript`).",
            "type": "string"
          },
          "pathToProject": {
            "description": "Absolute project root path used as the server's workspace root.",
            "type": "string"
          }
        },
        "required": [
          "languageId",
          "pathToProject"
        ],
        "type": "object"
      },
      "SessionDto": {
        "description": "Session DTO returned by create/list/get.",
        "properties": {
          "active": {
            "description": "Whether the backing kernel is active.",
            "type": "boolean"
          },
          "createdAt": {
            "description": "RFC 3339 creation timestamp.",
            "type": "string"
          },
          "cwd": {
            "description": "Working directory the kernel started in (a kernel's own `chdir` is not tracked).",
            "type": "string"
          },
          "id": {
            "description": "Stable session id.",
            "type": "string"
          },
          "kernel": {
            "$ref": "#/components/schemas/KernelKind",
            "description": "Kernel kind."
          },
          "kernelProcessId": {
            "description": "Id of the long-lived kernel process backing this session.",
            "type": "string"
          },
          "processIds": {
            "description": "Member process ids in creation order.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "kernel",
          "kernelProcessId",
          "cwd",
          "createdAt",
          "active",
          "processIds"
        ],
        "type": "object"
      },
      "SessionListResponse": {
        "description": "`GET /sessions` response body.",
        "properties": {
          "items": {
            "description": "Sessions in creation order.",
            "items": {
              "$ref": "#/components/schemas/SessionDto"
            },
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "SetConfigRequest": {
        "description": "Set one git config key.",
        "properties": {
          "key": {
            "description": "Config key to set.",
            "type": "string"
          },
          "path": {
            "description": "Repository path required for `scope=local`.",
            "type": [
              "string",
              "null"
            ]
          },
          "scope": {
            "description": "Config scope; omitted means `global`.",
            "type": [
              "string",
              "null"
            ]
          },
          "value": {
            "description": "Config value to write.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SignalRequest": {
        "description": "`POST /processes/{id}/signals` body.",
        "properties": {
          "escalateAfterMs": {
            "description": "Grace period in milliseconds before escalating. Maximum 600000.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "escalateTo": {
            "description": "Escalation signal name. Defaults to `SIGKILL` when omitted.",
            "type": [
              "string",
              "null"
            ]
          },
          "signal": {
            "description": "Signal name such as `SIGTERM`, `SIGKILL`, or `SIGINT`. Empty means `SIGTERM`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "State": {
        "description": "Process lifecycle state: `starting` \u2192 (`provisioning`) \u2192 `running` \u2192\n`terminal`. `provisioning` is the interpreter phase (kernel installs) and\nis part of the contract from day one so SDKs handle it. How a process\nended (exit code, signal, timeout, lost) is on `ExitResult`, not here.",
        "enum": [
          "starting",
          "provisioning",
          "running",
          "terminal"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "StatusResponse": {
        "description": "Repository status.",
        "properties": {
          "ahead": {
            "description": "Commits the local branch is ahead of its upstream.",
            "format": "int64",
            "type": "integer"
          },
          "behind": {
            "description": "Commits the local branch is behind its upstream.",
            "format": "int64",
            "type": "integer"
          },
          "branchPublished": {
            "description": "Whether the current branch has an upstream.",
            "type": "boolean"
          },
          "currentBranch": {
            "description": "Current branch name, or `HEAD` for a detached checkout.",
            "type": "string"
          },
          "fileStatus": {
            "description": "File-level status entries.",
            "items": {
              "$ref": "#/components/schemas/FileStatus"
            },
            "type": "array"
          }
        },
        "required": [
          "currentBranch",
          "fileStatus",
          "branchPublished",
          "ahead",
          "behind"
        ],
        "type": "object"
      },
      "StdinMode": {
        "description": "Whether the process accepts live stdin writes.",
        "enum": [
          "closed",
          "open"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "StdinRequest": {
        "description": "`POST /processes/{id}/stdin` body.",
        "properties": {
          "data": {
            "description": "Data to write. Text by default, or base64url when `encoding=base64`.",
            "type": "string"
          },
          "encoding": {
            "description": "Optional payload encoding: `text` (default) or `base64`.",
            "type": [
              "string",
              "null"
            ]
          },
          "eof": {
            "description": "Whether this request also closes stdin after writing.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "SymbolInfo": {
        "description": "One document or workspace symbol.",
        "properties": {
          "kind": {
            "description": "LSP symbol kind enum value.",
            "format": "int64",
            "type": "integer"
          },
          "location": {
            "$ref": "#/components/schemas/SymbolLocation",
            "description": "Symbol location. Hierarchical symbols without an LSP `location` are normalized to an empty URI and zero range."
          },
          "name": {
            "description": "Human-visible symbol name.",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "location",
          "name"
        ],
        "type": "object"
      },
      "SymbolLocation": {
        "description": "Location of a symbol in a document.",
        "properties": {
          "range": {
            "$ref": "#/components/schemas/SymbolRange",
            "description": "Symbol range in that document."
          },
          "uri": {
            "description": "Document URI, typically a `file://` URI.",
            "type": "string"
          }
        },
        "required": [
          "uri",
          "range"
        ],
        "type": "object"
      },
      "SymbolPosition": {
        "description": "Zero-based line/character location within a document.",
        "properties": {
          "character": {
            "description": "Zero-based UTF-16 character offset on the line.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "line": {
            "description": "Zero-based line number.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "line",
          "character"
        ],
        "type": "object"
      },
      "SymbolRange": {
        "description": "Half-open range within a document.",
        "properties": {
          "end": {
            "$ref": "#/components/schemas/SymbolPosition",
            "description": "Range end position."
          },
          "start": {
            "$ref": "#/components/schemas/SymbolPosition",
            "description": "Range start position."
          }
        },
        "required": [
          "start",
          "end"
        ],
        "type": "object"
      },
      "SymbolsQuery": {
        "description": "Query parameters shared by the symbol routes.",
        "properties": {
          "languageId": {
            "description": "The LSP language key (`python`, `typescript`); required by both symbol routes.",
            "type": [
              "string",
              "null"
            ]
          },
          "pathToProject": {
            "description": "Absolute project root path used as the server's workspace root; required by both symbol routes.",
            "type": [
              "string",
              "null"
            ]
          },
          "query": {
            "description": "Workspace-symbol search string; required on `/lsp/workspacesymbols`, omitted on `/lsp/document-symbols`.",
            "type": [
              "string",
              "null"
            ]
          },
          "uri": {
            "description": "Document URI for `/lsp/document-symbols`; omitted on `/lsp/workspacesymbols`.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "TerminalSize": {
        "description": "Terminal dimensions for PTY processes.",
        "properties": {
          "cols": {
            "description": "Number of columns; must be at least 1.",
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          },
          "rows": {
            "description": "Number of rows; must be at least 1.",
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "cols",
          "rows"
        ],
        "type": "object"
      },
      "TokenRequest": {
        "description": "`POST /rlp/token` \u2014 set (bootstrap) or rotate the control bearer\n(PLAN-DAEMON-LISTENER-HARDENING, Layer 2).\n\nThe runner's **first** `:2281` call on every boot path. Accepted without a\nbearer only while the daemon holds no token; once set, the request must\ncarry the current token as `Authorization: Bearer \u2026` and replaces it.\nRe-pushing the token the daemon already holds is a `200` no-op, which is\nwhat makes the runner's retry after a lost `200` idempotent.",
        "properties": {
          "token": {
            "description": "32 to 128 bytes of printable ASCII (no whitespace); the runner sends\n32 random bytes base64url-encoded (43 characters). Write-only: the\ndaemon never echoes, logs or exports it.",
            "maxLength": 128,
            "minLength": 32,
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "UnmountQuery": {
        "description": "`DELETE /rlp/mounts` query parameters.",
        "properties": {
          "name": {
            "description": "Legacy alias for the mount name.",
            "type": "string"
          },
          "path": {
            "description": "Absolute mount path to unmount.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UploadQuery": {
        "additionalProperties": false,
        "description": "Query parameters for `POST /files/upload`.",
        "properties": {
          "atomic": {
            "description": "Write via a temporary file + rename in the destination directory.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "path": {
            "description": "Destination path for the uploaded file.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "UploadedFile": {
        "description": "One uploaded file result from `POST /files/bulk-upload`.",
        "properties": {
          "bytes": {
            "description": "Number of bytes written.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "path": {
            "description": "Destination path the daemon wrote.",
            "type": "string"
          }
        },
        "required": [
          "path",
          "bytes"
        ],
        "type": "object"
      },
      "UserRequest": {
        "description": "`POST /rlp/user` \u2014 the sandbox default OS user (issue #167,\nPLAN-SANDBOX-OS-USER.md). Pushed by the runner before the entrypoint gate\nreleases; the daemon creates the account if the image lacks it and runs\nevery later exec/session/ssh/git as it. Idempotent.",
        "properties": {
          "user": {
            "description": "POSIX user name (`[a-z_][a-z0-9_.-]{0,31}`). Required \u2014 an omitted\nname is a DTO shape error (422), not a validation 400. Validated by\nthe daemon; a name that could smuggle a passwd field separator is\nrefused.",
            "type": "string"
          }
        },
        "required": [
          "user"
        ],
        "type": "object"
      },
      "VersionResponse": {
        "properties": {
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "VolumeApplyBegin": {
        "additionalProperties": false,
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/VolumeApplyBinding"
          },
          "grant": {
            "$ref": "#/components/schemas/VolumeApplyGrant"
          },
          "instructions": {
            "description": "At most 256; exact duplicate begin returns state, never reruns effects.\nThe trusted runner must persist the grant, block all host publication\n(including automatic/final commits) and prevent concurrent guest writes,\nrenames and mount changes before beginning. Guest stat guards do not\nenforce these prerequisites.",
            "items": {
              "$ref": "#/components/schemas/VolumeApplyInstruction"
            },
            "type": "array"
          },
          "receipt_ids": {
            "$ref": "#/components/schemas/VolumeApplyReceiptIds"
          }
        },
        "required": [
          "binding",
          "grant",
          "receipt_ids",
          "instructions"
        ],
        "type": "object"
      },
      "VolumeApplyBinding": {
        "additionalProperties": false,
        "description": "Internal correlation only, never credentials or ownership evidence. A trusted\nrunner identity/transport and a host-owned publication fence are prerequisites.\nThe runner must derive this binding from its own attachment records, never\nadopt a binding reported by a guest. Only control port 2281 serves this DTO.",
        "properties": {
          "generation": {
            "description": "Positive, matched against the current broker registration atomically.",
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          },
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "reservation_id": {
            "type": "string"
          },
          "session_id": {
            "description": "Every ID is 1..128 ASCII alphanumeric, underscore or hyphen.",
            "type": "string"
          },
          "volume_id": {
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id",
          "volume_id",
          "generation",
          "reservation_id"
        ],
        "type": "object"
      },
      "VolumeApplyCapture": {
        "additionalProperties": false,
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/VolumeApplyBinding"
          },
          "paths": {
            "description": "At most 256 relative paths. Missing paths and descendants of a missing or\nnon-directory ancestor return null without following symlink ancestry.\n\".\" captures the pinned root after reserve; this is a stat guard, not a\nbase/clean-tree proof. Other dot components remain forbidden.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "binding",
          "paths"
        ],
        "type": "object"
      },
      "VolumeApplyCaptureResult": {
        "additionalProperties": false,
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/VolumeApplyBinding"
          },
          "paths": {
            "items": {
              "$ref": "#/components/schemas/VolumeApplyCapturedPath"
            },
            "type": "array"
          }
        },
        "required": [
          "binding",
          "paths"
        ],
        "type": "object"
      },
      "VolumeApplyCapturedPath": {
        "additionalProperties": false,
        "properties": {
          "path": {
            "type": "string"
          },
          "snapshot": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/VolumeApplySnapshot"
              }
            ]
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "VolumeApplyChange": {
        "oneOf": [
          {
            "properties": {
              "digest_hex": {
                "description": "SHA-256 of raw transfer bytes: 64 lowercase hex, NOT a CAS FileID.",
                "type": "string"
              },
              "length": {
                "description": "Aggregate replacement bytes at most 1 TiB.",
                "format": "int64",
                "minimum": 0,
                "type": "integer"
              },
              "metadata": {
                "$ref": "#/components/schemas/VolumeApplyMetadata"
              },
              "type": {
                "enum": [
                  "replace"
                ],
                "type": "string",
                "x-daytona-exact-enum": "discriminator"
              }
            },
            "required": [
              "length",
              "digest_hex",
              "metadata",
              "type"
            ],
            "type": "object"
          },
          {
            "properties": {
              "type": {
                "enum": [
                  "delete"
                ],
                "type": "string",
                "x-daytona-exact-enum": "discriminator"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          },
          {
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/VolumeApplyMetadata"
              },
              "type": {
                "enum": [
                  "metadata"
                ],
                "type": "string",
                "x-daytona-exact-enum": "discriminator"
              }
            },
            "required": [
              "metadata",
              "type"
            ],
            "type": "object"
          },
          {
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/VolumeApplyMetadata"
              },
              "type": {
                "enum": [
                  "create_directory"
                ],
                "type": "string",
                "x-daytona-exact-enum": "discriminator"
              }
            },
            "required": [
              "metadata",
              "type"
            ],
            "type": "object"
          },
          {
            "properties": {
              "metadata": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/VolumeApplyMetadata",
                    "description": "Optional for legacy senders. When present, applies exact mtime to the\nstaged symlink inode, never its target, before atomic installation.\nMode must be 0777. Requires Linux >= 5.8; unsupported kernels refuse."
                  }
                ]
              },
              "target": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "symlink"
                ],
                "type": "string",
                "x-daytona-exact-enum": "discriminator"
              }
            },
            "required": [
              "target",
              "type"
            ],
            "type": "object"
          },
          {
            "description": "Target must resolve to a Replace in this operation; metadata must match.",
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/VolumeApplyMetadata"
              },
              "target": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "hardlink"
                ],
                "type": "string",
                "x-daytona-exact-enum": "discriminator"
              }
            },
            "required": [
              "target",
              "metadata",
              "type"
            ],
            "type": "object"
          }
        ]
      },
      "VolumeApplyConfirm": {
        "additionalProperties": false,
        "description": "Trusted runner assertion AFTER full-tree verification and durable host\nbase/baseline + receipt persistence. Guest recording is not proof of either.",
        "properties": {
          "baseline_digest_hex": {
            "description": "Post-verification record digests, each exactly 64 lowercase hex.",
            "type": "string"
          },
          "binding": {
            "$ref": "#/components/schemas/VolumeApplyBinding"
          },
          "grant": {
            "$ref": "#/components/schemas/VolumeApplyGrant"
          },
          "receipt_digest_hex": {
            "type": "string"
          },
          "receipt_ids": {
            "$ref": "#/components/schemas/VolumeApplyReceiptIds"
          }
        },
        "required": [
          "binding",
          "grant",
          "receipt_ids",
          "baseline_digest_hex",
          "receipt_digest_hex"
        ],
        "type": "object"
      },
      "VolumeApplyConfirmationAck": {
        "properties": {
          "confirmation": {
            "$ref": "#/components/schemas/VolumeApplyConfirm",
            "description": "Immutable acknowledgement of local recording; exact retries remain\nstable even after a new operation starts. Not verification evidence."
          }
        },
        "required": [
          "confirmation"
        ],
        "type": "object"
      },
      "VolumeApplyGrant": {
        "additionalProperties": false,
        "properties": {
          "operation_id": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "source_manifest": {
            "description": "Null explicitly denotes the initial empty source; otherwise 64 lower hex.",
            "type": [
              "string",
              "null"
            ]
          },
          "target_manifest": {
            "description": "Exactly 64 lowercase hexadecimal digits.",
            "type": "string"
          }
        },
        "required": [
          "operation_id",
          "request_id",
          "target_manifest"
        ],
        "type": "object"
      },
      "VolumeApplyInstruction": {
        "additionalProperties": false,
        "properties": {
          "change": {
            "$ref": "#/components/schemas/VolumeApplyChange"
          },
          "expected": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/VolumeApplySnapshot",
                "description": "Null means no existing entry, including future children below a source\nnon-directory replaced by an explicitly planned directory."
              }
            ]
          },
          "path": {
            "description": "Canonical relative path. \".\" is allowed only for Metadata with an expected\nDirectory snapshot captured after reserve; it is finalized after all\ndescendants. Root replacement/deletion and root hardlink targets refuse.",
            "type": "string"
          }
        },
        "required": [
          "path",
          "change"
        ],
        "type": "object"
      },
      "VolumeApplyKind": {
        "enum": [
          "file",
          "directory",
          "symlink"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "VolumeApplyMetadata": {
        "additionalProperties": false,
        "properties": {
          "mode": {
            "description": "POSIX permissions plus setuid/setgid/sticky (0..07777), including final\n000. File-type bits are forbidden. Symlink metadata requires exactly 0777.",
            "format": "int32",
            "maximum": 4095,
            "minimum": 0,
            "type": "integer"
          },
          "mtime_nanos": {
            "description": "0..999999999.",
            "format": "int64",
            "maximum": 999999999,
            "minimum": 0,
            "type": "integer"
          },
          "mtime_seconds": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "mode",
          "mtime_seconds",
          "mtime_nanos"
        ],
        "type": "object"
      },
      "VolumeApplyOperationBinding": {
        "additionalProperties": false,
        "description": "Flat operation binding for GET status query and POST apply JSON.",
        "properties": {
          "generation": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "operation_id": {
            "type": "string"
          },
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "request_id": {
            "type": "string"
          },
          "reservation_id": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "volume_id": {
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id",
          "volume_id",
          "generation",
          "reservation_id",
          "operation_id",
          "request_id"
        ],
        "type": "object"
      },
      "VolumeApplyReceiptIds": {
        "additionalProperties": false,
        "properties": {
          "baseline_id": {
            "type": "string"
          },
          "receipt_id": {
            "type": "string"
          }
        },
        "required": [
          "baseline_id",
          "receipt_id"
        ],
        "type": "object"
      },
      "VolumeApplyReserve": {
        "additionalProperties": false,
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/VolumeApplyBinding"
          },
          "mount_path": {
            "description": "Trusted runner input only: canonical absolute non-root directory, no\nsymlink components. Mount crossings allowed TO this root, never BELOW it.\nPinned once; duplicate reserve must match exactly. No adoption or reopen.",
            "type": "string"
          }
        },
        "required": [
          "binding",
          "mount_path"
        ],
        "type": "object"
      },
      "VolumeApplySnapshot": {
        "additionalProperties": false,
        "description": "Stat guard only; never a clean-tree proof, write fence, or ownership evidence.",
        "properties": {
          "device": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "gid": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "inode": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "kind": {
            "$ref": "#/components/schemas/VolumeApplyKind"
          },
          "links": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "mode": {
            "description": "Raw stat mode including file type; change metadata accepts only 07777.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "mtime_nanos": {
            "format": "int64",
            "type": "integer"
          },
          "mtime_seconds": {
            "format": "int64",
            "type": "integer"
          },
          "size": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "target": {
            "description": "Raw symlink target bytes, JSON byte array; null for other kinds.",
            "items": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "uid": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "device",
          "inode",
          "size",
          "mtime_seconds",
          "mtime_nanos",
          "kind",
          "mode",
          "links",
          "uid",
          "gid"
        ],
        "type": "object"
      },
      "VolumeApplyStageQuery": {
        "additionalProperties": false,
        "description": "Flat query on POST stage; body is application/octet-stream, never JSON.",
        "properties": {
          "generation": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "index": {
            "minimum": 0,
            "type": "integer"
          },
          "operation_id": {
            "type": "string"
          },
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "request_id": {
            "type": "string"
          },
          "reservation_id": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "volume_id": {
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id",
          "volume_id",
          "generation",
          "reservation_id",
          "operation_id",
          "request_id",
          "index"
        ],
        "type": "object"
      },
      "VolumeApplyState": {
        "enum": [
          "staging",
          "applying",
          "recovery_required",
          "awaiting_host_confirmation",
          "host_confirmed"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "VolumeApplyStatus": {
        "properties": {
          "operation": {
            "$ref": "#/components/schemas/VolumeApplyOperationBinding"
          },
          "publication_blocked": {
            "description": "Always true: this response never releases/implements the host fence.",
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VolumeApplyState",
            "description": "Local progress only, never full-tree verification or host durability\nevidence. In-flight requests can instead return a generic 409 (busy)."
          }
        },
        "required": [
          "operation",
          "state",
          "publication_blocked"
        ],
        "type": "object"
      },
      "VolumeSyncAck": {
        "properties": {
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "session_id": {
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id"
        ],
        "type": "object"
      },
      "VolumeSyncAttachment": {
        "additionalProperties": false,
        "properties": {
          "generation": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "volume_id": {
            "type": "string"
          }
        },
        "required": [
          "volume_id",
          "generation"
        ],
        "type": "object"
      },
      "VolumeSyncOperation": {
        "enum": [
          "probe",
          "pull"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "VolumeSyncPollQuery": {
        "additionalProperties": false,
        "properties": {
          "session_id": {
            "type": "string"
          },
          "wait_ms": {
            "description": "Long-poll duration in milliseconds, from 0 to 30000.",
            "format": "int64",
            "maximum": 30000,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "session_id"
        ],
        "type": "object"
      },
      "VolumeSyncPollResponse": {
        "properties": {
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "request": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/VolumeSyncRequest",
                "description": "Oldest outstanding request; polling never removes it."
              }
            ]
          },
          "session_id": {
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id"
        ],
        "type": "object"
      },
      "VolumeSyncRegistration": {
        "additionalProperties": false,
        "properties": {
          "attachments": {
            "description": "At most 64 distinct volume bindings. A repeat registration must carry the sealed session's exact bindings.",
            "items": {
              "$ref": "#/components/schemas/VolumeSyncAttachment"
            },
            "type": "array"
          },
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "session_id": {
            "description": "One session per daemon lifetime: the first is sealed and a different id is refused.",
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id",
          "attachments"
        ],
        "type": "object"
      },
      "VolumeSyncRequest": {
        "additionalProperties": false,
        "properties": {
          "delivery_id": {
            "description": "Positive broker-assigned delivery counter; retries increment it.\nNot part of the stable effect identity used for host receipt lookup.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "generation": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "operation": {
            "$ref": "#/components/schemas/VolumeSyncOperation"
          },
          "request_id": {
            "type": "string"
          },
          "volume_id": {
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "volume_id",
          "generation",
          "operation",
          "delivery_id"
        ],
        "type": "object"
      },
      "VolumeSyncResult": {
        "additionalProperties": false,
        "properties": {
          "delivery_id": {
            "description": "Echo the exact polled delivery counter, including on transport retries.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "generation": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "manifest_id": {
            "description": "Pulled requires exactly 64 lowercase hex digits. Unchanged permits a\nvalid manifest or null and describes remote observation, not local writes.\nEvery other status carries null.",
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "description": "Bounded to 1024 UTF-8 bytes. Must not contain provider credentials.",
            "type": "string"
          },
          "operation": {
            "$ref": "#/components/schemas/VolumeSyncOperation"
          },
          "protocol": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "request_id": {
            "type": "string"
          },
          "retry_after_ms": {
            "description": "Only rate_limited carries a delay, from 1 to 1000 ms. Otherwise null.\nThe runner enforces the per-attachment rate limit across reconnects.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "session_id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/VolumeSyncResultStatus"
          },
          "volume_id": {
            "type": "string"
          }
        },
        "required": [
          "protocol",
          "session_id",
          "request_id",
          "volume_id",
          "generation",
          "operation",
          "delivery_id",
          "status",
          "message"
        ],
        "type": "object"
      },
      "VolumeSyncResultStatus": {
        "enum": [
          "probed",
          "pulled",
          "unchanged",
          "failed",
          "pending",
          "unavailable",
          "rejected",
          "rate_limited"
        ],
        "type": "string",
        "x-daytona-open-enum": true
      },
      "WaitQuery": {
        "description": "`GET /processes/{id}/wait` query parameters.",
        "properties": {
          "timeoutMs": {
            "description": "Long-poll timeout in milliseconds. Omitted means the daemon's default 60-second chunk; `0` means wait until terminal; any positive value is honored uncapped.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "WatchFsEvent": {
        "description": "SSE `fs` event payload from `GET /files/watch`.",
        "properties": {
          "isDir": {
            "description": "Whether the changed entry is a directory.",
            "type": "boolean"
          },
          "name": {
            "description": "Path relative to the watched root.",
            "type": "string"
          },
          "timestamp": {
            "description": "Unix epoch milliseconds when the daemon emitted the event.",
            "format": "int64",
            "type": "integer"
          },
          "type": {
            "description": "Event kind (`create`, `write`, `remove`, `rename`, `chmod`).",
            "type": "string"
          }
        },
        "required": [
          "type",
          "name",
          "isDir",
          "timestamp"
        ],
        "type": "object"
      },
      "WatchOverflowEvent": {
        "description": "SSE `overflow` event payload from `GET /files/watch`.",
        "properties": {
          "dropped": {
            "description": "Whether the daemon dropped at least one watch event before it could emit it.",
            "type": "boolean"
          }
        },
        "required": [
          "dropped"
        ],
        "type": "object"
      },
      "WatchQuery": {
        "additionalProperties": false,
        "description": "Query parameters for `GET /files/watch`.",
        "properties": {
          "follow": {
            "description": "Proxy streaming hint preserved for compatibility; the daemon accepts and ignores it.",
            "type": "boolean"
          },
          "path": {
            "description": "Absolute directory path to watch.",
            "type": [
              "string",
              "null"
            ]
          },
          "recursive": {
            "description": "Whether nested subdirectories should be watched too.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "WatchStartEvent": {
        "description": "SSE `start` event payload from `GET /files/watch`.",
        "type": "object"
      }
    }
  },
  "info": {
    "description": "The in-guest daemon surface: the process engine, sessions, filesystem, git, language servers, ports, system metrics and the lazily started computer-use addon on `:2280`, plus the runner-only control listener on `:2281` (tag `control`). Every daemon binary (Linux, Windows) implements this one surface \u2014 the routes, DTOs and error catalog below are the SDK compatibility contract. Every 4xx/5xx body is an `ErrorEnvelope`; `code` values come from `x-daytona-error-codes` (fixed status per code) or `x-daytona-generic-codes`.",
    "title": "rlp-daemon toolbox API",
    "version": "0.0.0-dev"
  },
  "openapi": "3.1.0",
  "paths": {
    "/computeruse/a11y/find": {
      "post": {
        "description": "Searches accessibility nodes within the requested scope.",
        "operationId": "a11y_find",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseA11yFindRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseA11yFindResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid accessibility filters or request body"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no accessibility root or node matched the requested scope"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `FindReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or the accessibility bus is unavailable"
          }
        },
        "summary": "Find accessibility nodes",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/a11y/node/focus": {
      "post": {
        "description": "Moves desktop focus to the requested accessibility node.",
        "operationId": "a11y_node_focus",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseA11yNodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Node focused"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid node id or unsupported node action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such accessibility node"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `NodeReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or the accessibility bus is unavailable"
          }
        },
        "summary": "Focus an accessibility node",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/a11y/node/invoke": {
      "post": {
        "description": "Invokes the requested accessibility node action.",
        "operationId": "a11y_node_invoke",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseA11yNodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Node invoked"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid node id or unsupported node action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such accessibility node"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `NodeReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or the accessibility bus is unavailable"
          }
        },
        "summary": "Invoke an accessibility node",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/a11y/node/value": {
      "post": {
        "description": "Sets the editable value of the requested accessibility node.",
        "operationId": "a11y_node_value",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseA11yNodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Node value set"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid node id or unsupported node action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such accessibility node"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `NodeReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or the accessibility bus is unavailable"
          }
        },
        "summary": "Set an accessibility node value",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/a11y/tree": {
      "get": {
        "description": "Returns an accessibility tree rooted at the requested scope.",
        "operationId": "a11y_tree",
        "parameters": [
          {
            "description": "Scope selector: omitted/`focused`, `pid`, or Linux `all`/Windows `desktop` aliases.",
            "in": "query",
            "name": "scope",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Owning process id when `scope=pid`.",
            "in": "query",
            "name": "pid",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Maximum tree depth. Omitted or `-1` means unbounded.",
            "in": "query",
            "name": "maxDepth",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseA11yTreeResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid accessibility scope or query parameters"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no accessibility root or node matched the requested scope"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or the accessibility bus is unavailable"
          }
        },
        "summary": "Accessibility tree",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/display/info": {
      "get": {
        "description": "Returns the current display/monitor list.",
        "operationId": "display_info",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseDisplayInfoResponse"
                }
              }
            },
            "description": ""
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Display inventory",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/display/windows": {
      "get": {
        "description": "Returns the current top-level window list.",
        "operationId": "display_windows",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseDisplayWindowsResponse"
                }
              }
            },
            "description": ""
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Window inventory",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/keyboard/hotkey": {
      "post": {
        "description": "Presses a `+`-delimited hotkey chord.",
        "operationId": "keyboard_hotkey",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseKeyboardHotkeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hotkey pressed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported key/modifier values"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `HotkeyReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Press a hotkey",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/keyboard/key": {
      "post": {
        "description": "Presses one key with optional modifiers.",
        "operationId": "keyboard_key",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseKeyboardKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Key pressed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported key/modifier values"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `KeyReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Press one key",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/keyboard/type": {
      "post": {
        "description": "Types UTF-8 text into the desktop.",
        "operationId": "keyboard_type",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseKeyboardTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Text typed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported text for the current desktop keymap"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `TypeReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Type text",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/mouse/click": {
      "post": {
        "description": "Moves the cursor and clicks the requested mouse button.",
        "operationId": "mouse_click",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseMouseClickRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUsePoint"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported button values"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `ClickReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Click the mouse",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/mouse/drag": {
      "post": {
        "description": "Presses a mouse button, drags between two coordinates, and releases it.",
        "operationId": "mouse_drag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseMouseDragRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUsePoint"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported button values"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `DragReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Drag the mouse",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/mouse/move": {
      "post": {
        "description": "Moves the cursor to the requested desktop coordinates.",
        "operationId": "mouse_move",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseMouseMoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUsePoint"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported coordinates"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `MoveReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Move the mouse",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/mouse/position": {
      "get": {
        "description": "Returns the current cursor position.",
        "operationId": "mouse_position",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUsePoint"
                }
              }
            },
            "description": ""
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Mouse position",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/mouse/scroll": {
      "post": {
        "description": "Moves the cursor and scrolls the wheel at the requested position.",
        "operationId": "mouse_scroll",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseMouseScrollRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseScrollResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or unsupported direction values"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `ScrollReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Scroll the mouse wheel",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/process-status": {
      "get": {
        "description": "Returns the state of every supervised desktop process.",
        "operationId": "desktop_process_status",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseProcessStatusMap"
                }
              }
            },
            "description": ""
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Desktop process inventory",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/process/{name}/errors": {
      "get": {
        "description": "Returns retained stderr/error logs for one supervised desktop process.",
        "operationId": "desktop_process_errors",
        "parameters": [
          {
            "description": "Desktop process name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseProcessErrorsResponse"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such desktop process"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "One desktop process stderr",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/process/{name}/logs": {
      "get": {
        "description": "Returns retained stdout logs for one supervised desktop process.",
        "operationId": "desktop_process_logs",
        "parameters": [
          {
            "description": "Desktop process name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseProcessLogsResponse"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such desktop process"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "One desktop process stdout",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/process/{name}/restart": {
      "post": {
        "description": "Restarts one supervised desktop process when the desktop is ready.",
        "operationId": "desktop_process_restart",
        "parameters": [
          {
            "description": "Desktop process name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseProcessRestartResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 the requested process cannot be restarted individually"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such desktop process"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Restart one desktop process",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/process/{name}/status": {
      "get": {
        "description": "Returns the running state of one supervised desktop process.",
        "operationId": "desktop_process_status_by_name",
        "parameters": [
          {
            "description": "Desktop process name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseProcessRunningStatus"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such desktop process"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "One desktop process status",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/recordings": {
      "get": {
        "description": "Returns live and retained recording metadata.",
        "operationId": "recordings_list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseRecordingsResponse"
                }
              }
            },
            "description": ""
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or recording support is unavailable"
          }
        },
        "summary": "List recordings",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/recordings/start": {
      "post": {
        "description": "Starts a desktop recording and returns its metadata.",
        "operationId": "recordings_start",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseRecordingStartRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseRecording"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid request body fields or recording limits were exceeded"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `RecStartReq`"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or recording support is unavailable"
          }
        },
        "summary": "Start a recording",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/recordings/stop": {
      "post": {
        "description": "Stops a recording and returns its terminal metadata.",
        "operationId": "recordings_stop",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputerUseRecordingStopRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseRecording"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such recording"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `RecStopReq`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 recording finalization failed"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or recording support is unavailable"
          }
        },
        "summary": "Stop a recording",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/recordings/{id}": {
      "delete": {
        "description": "Deletes a recording and its retained file.",
        "operationId": "recordings_delete",
        "parameters": [
          {
            "description": "Recording id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recording deleted"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such recording"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 recording cleanup failed"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or recording support is unavailable"
          }
        },
        "summary": "Delete a recording",
        "tags": [
          "computer-use"
        ]
      },
      "get": {
        "description": "Returns metadata for one recording.",
        "operationId": "recordings_get",
        "parameters": [
          {
            "description": "Recording id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseRecording"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such recording"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or recording support is unavailable"
          }
        },
        "summary": "Get recording metadata",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/recordings/{id}/download": {
      "get": {
        "description": "Streams one recording file as `video/mp4`.",
        "operationId": "recordings_download",
        "parameters": [
          {
            "description": "Recording id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "video/mp4": {}
            },
            "description": "Recording file stream"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NOT_FOUND` \u2014 no such recording or recording file"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or recording support is unavailable"
          }
        },
        "summary": "Download a recording",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/restart": {
      "post": {
        "description": "Replaces the current desktop stack and returns the ready desktop status projection.",
        "operationId": "restart",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseRestartResponse"
                }
              }
            },
            "description": ""
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 desktop state persistence failed"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged, no desktop session exists, or its desktop substrate is unavailable"
          }
        },
        "summary": "Restart the desktop",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/screenshot": {
      "get": {
        "description": "Captures the full desktop and returns base64-encoded image bytes in JSON.",
        "operationId": "screenshot",
        "parameters": [
          {
            "description": "Whether to include the current cursor position in the JSON response.",
            "in": "query",
            "name": "show_cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Legacy camelCase alias for `show_cursor`, accepted but omitted from the schema.",
            "in": "query",
            "name": "showCursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image format for compressed screenshot routes. Omitted = `png`.",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "JPEG quality for compressed screenshot routes. Omitted = `85`.",
            "in": "query",
            "name": "quality",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Downscale factor for compressed screenshot routes. Omitted = `1.0`.",
            "in": "query",
            "name": "scale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region left coordinate for region routes.",
            "in": "query",
            "name": "x",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region top coordinate for region routes.",
            "in": "query",
            "name": "y",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region width for region routes. Must be greater than zero.",
            "in": "query",
            "name": "width",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region height for region routes. Must be greater than zero.",
            "in": "query",
            "name": "height",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseScreenshotResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid screenshot query parameters"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 the screenshot task failed internally"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Full screenshot",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/screenshot/compressed": {
      "get": {
        "description": "Captures the full desktop and applies format, quality, and scale controls before returning JSON.",
        "operationId": "screenshot_compressed",
        "parameters": [
          {
            "description": "Whether to include the current cursor position in the JSON response.",
            "in": "query",
            "name": "show_cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Legacy camelCase alias for `show_cursor`, accepted but omitted from the schema.",
            "in": "query",
            "name": "showCursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image format for compressed screenshot routes. Omitted = `png`.",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "JPEG quality for compressed screenshot routes. Omitted = `85`.",
            "in": "query",
            "name": "quality",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Downscale factor for compressed screenshot routes. Omitted = `1.0`.",
            "in": "query",
            "name": "scale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region left coordinate for region routes.",
            "in": "query",
            "name": "x",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region top coordinate for region routes.",
            "in": "query",
            "name": "y",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region width for region routes. Must be greater than zero.",
            "in": "query",
            "name": "width",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region height for region routes. Must be greater than zero.",
            "in": "query",
            "name": "height",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseScreenshotResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid screenshot query parameters"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 the screenshot task failed internally"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Compressed full screenshot",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/screenshot/region": {
      "get": {
        "description": "Captures a rectangular desktop region and returns base64-encoded image bytes in JSON.",
        "operationId": "screenshot_region",
        "parameters": [
          {
            "description": "Whether to include the current cursor position in the JSON response.",
            "in": "query",
            "name": "show_cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Legacy camelCase alias for `show_cursor`, accepted but omitted from the schema.",
            "in": "query",
            "name": "showCursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image format for compressed screenshot routes. Omitted = `png`.",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "JPEG quality for compressed screenshot routes. Omitted = `85`.",
            "in": "query",
            "name": "quality",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Downscale factor for compressed screenshot routes. Omitted = `1.0`.",
            "in": "query",
            "name": "scale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region left coordinate for region routes.",
            "in": "query",
            "name": "x",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region top coordinate for region routes.",
            "in": "query",
            "name": "y",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region width for region routes. Must be greater than zero.",
            "in": "query",
            "name": "width",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region height for region routes. Must be greater than zero.",
            "in": "query",
            "name": "height",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseScreenshotResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid screenshot query parameters"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 the screenshot task failed internally"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Region screenshot",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/screenshot/region/compressed": {
      "get": {
        "description": "Captures a rectangular desktop region and applies format, quality, and scale controls before returning JSON.",
        "operationId": "screenshot_region_compressed",
        "parameters": [
          {
            "description": "Whether to include the current cursor position in the JSON response.",
            "in": "query",
            "name": "show_cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Legacy camelCase alias for `show_cursor`, accepted but omitted from the schema.",
            "in": "query",
            "name": "showCursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image format for compressed screenshot routes. Omitted = `png`.",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "JPEG quality for compressed screenshot routes. Omitted = `85`.",
            "in": "query",
            "name": "quality",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Downscale factor for compressed screenshot routes. Omitted = `1.0`.",
            "in": "query",
            "name": "scale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region left coordinate for region routes.",
            "in": "query",
            "name": "x",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region top coordinate for region routes.",
            "in": "query",
            "name": "y",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region width for region routes. Must be greater than zero.",
            "in": "query",
            "name": "width",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Region height for region routes. Must be greater than zero.",
            "in": "query",
            "name": "height",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseScreenshotResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid screenshot query parameters"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is not ready for actions"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 the screenshot task failed internally"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Compressed region screenshot",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/start": {
      "post": {
        "description": "Starts the desktop stack and returns the supervised-process inventory.",
        "operationId": "start",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseLifecycleResponse"
                }
              }
            },
            "description": ""
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`DESKTOP_NOT_READY` \u2014 the desktop is already starting or failed and needs restart"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 desktop marker cleanup or persistence failed"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged, no desktop session exists, or a required desktop component is unavailable"
          }
        },
        "summary": "Start the desktop",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/status": {
      "get": {
        "description": "Returns the explicit desktop lifetime state and the legacy compatibility `status` field.",
        "operationId": "status",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseStatusResponse"
                }
              }
            },
            "description": ""
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Desktop status",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/computeruse/stop": {
      "post": {
        "description": "Stops the desktop stack and returns the final supervised-process inventory.",
        "operationId": "stop",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComputerUseLifecycleResponse"
                }
              }
            },
            "description": ""
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`INTERNAL_SERVER_ERROR` \u2014 desktop marker cleanup or persistence failed"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ADDON_UNAVAILABLE` \u2014 the computer-use addon is not staged or its desktop substrate is unavailable"
          }
        },
        "summary": "Stop the desktop",
        "tags": [
          "computer-use"
        ]
      }
    },
    "/docker/status": {
      "get": {
        "description": "Reports whether Docker Engine was started in this sandbox, who owns it, why it is in its state, and the process whose logs hold Docker's output (`GET /processes/{id}/logs`). Read-only: it never starts or restarts Docker. `waitMs` (clamped to 1000) waits for a `starting` state to settle before answering. A Docker failure never makes the sandbox unusable; it is reported here as `failed`. Windows sandboxes answer `unsupported`.\n\nThe sandbox environment variable `DAYTONA_DOCKER_START` selects who starts Docker (case-insensitive; unset, empty or an unknown value means `auto`):\n\n- `auto` (default): if the image entrypoint is a recognized Docker entrypoint (`dockerd`, the `docker:dind` `dockerd-entrypoint.sh` when it will run `dockerd`, or `docker-entrypoint.sh dockerd`), the entrypoint starts Docker and the daemon waits for its socket. Otherwise, if the image has a `dockerd`, the daemon starts it (owner `daemon`), waits for it, then starts the entrypoint.\n- `entrypoint`: the image entrypoint starts Docker; the daemon only waits for the socket (owner `entrypoint`) and never launches `dockerd` itself.\n- `off`: the daemon neither starts nor waits for Docker (`disabled`). The image entrypoint still runs, so a recognized Docker entrypoint starts Docker itself anyway; that is reported as `unmanaged` with owner `entrypoint`, reason `docker-start-off-entrypoint-owns-docker` and the entrypoint's `processId`, and the engine is not probed.\n\nDocker storage that is not ready (`unsupported`/`failed`) takes precedence over every mode, and a `DOCKER_HOST` other than the default local socket makes `auto` and `entrypoint` report `unmanaged` without starting anything.\n\nRecognition is deliberately narrow. An entrypoint that starts `dockerd` some other way (`sh -c \"dockerd \u2026\"`, `tini -- dockerd`, a supervisor) is not recognized, so under `auto` the daemon starts its own `dockerd` first; the entrypoint's `dockerd` then typically fails against the one already running, and any flags it passes are lost. Set `DAYTONA_DOCKER_START=entrypoint` for such images.",
        "operationId": "docker_status",
        "parameters": [
          {
            "description": "Wait up to this many milliseconds for a `starting` state to settle\nbefore answering. Clamped to 1000; omitted or `0` answers immediately.",
            "in": "query",
            "name": "waitMs",
            "required": false,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DockerStatus"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid `waitMs` query parameter"
          }
        },
        "summary": "Docker Engine status",
        "tags": [
          "docker"
        ]
      }
    },
    "/env": {
      "post": {
        "description": "Update the daemon's extra environment layer. Every process, PTY, and session created after this call inherits the change \u2014 including the git the daemon runs for `/git/*`; running processes and already-running session kernels are untouched. `unset` removes only values previously pushed into that extra layer. Daemon-owned names refused on `/rlp/secrets` are also refused here, each `KEY=VALUE` entry is capped at 128 KiB, the total `env` payload is capped at 1 MiB, Windows additionally refuses updates whose inherited environment plus projected pushed layer would exceed the 32,767 UTF-16-unit CreateProcessW block limit, and macOS refuses updates that would grow the inherited environment plus projected pushed layer past half of `ARG_MAX`, which argv and the environment share (512 KiB of 1 MiB, counting 8 bytes per variable).",
        "operationId": "set_env",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "The environment layer was updated."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 a key is daemon-reserved or not a valid variable name, an environment value contains NUL, the same key appears in both `env` and `unset`, a single `KEY=VALUE` entry exceeds 128 KiB, the total `env` bytes exceed 1 MiB, the inherited + projected Windows environment block would exceed 32,767 UTF-16 units, or the inherited + projected macOS environment would exceed half of `ARG_MAX` (512 KiB)."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `EnvRequest`."
          }
        },
        "summary": "Update future child-process environment",
        "tags": [
          "env"
        ]
      }
    },
    "/files": {
      "delete": {
        "description": "Delete one file. Directories require `recursive=true` or `recursive=1`.",
        "operationId": "delete_file",
        "parameters": [
          {
            "description": "Path to remove.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Recursive delete flag as the historical string query value.",
            "in": "query",
            "name": "recursive",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The path was deleted."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 missing path or a directory was requested without `recursive=true`"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot remove the path"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the requested path does not exist"
          }
        },
        "summary": "Delete a file or directory",
        "tags": [
          "files"
        ]
      },
      "get": {
        "description": "List entries under the requested directory. Omitting `path` uses the daemon work directory. `depth` defaults to `1` and recursive listings are capped at 10,000 entries.",
        "operationId": "list_files",
        "parameters": [
          {
            "description": "Target path. Omitted on `GET /files` to use the daemon work directory.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Recursive listing depth for `GET /files`; omitted for the flat default (`1`).",
            "in": "query",
            "name": "depth",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FileInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid query, missing directory metadata, invalid depth, or the listing cap was exceeded"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 directory metadata or contents could not be read"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the requested directory does not exist"
          }
        },
        "summary": "List files",
        "tags": [
          "files"
        ]
      }
    },
    "/files/bulk-download": {
      "post": {
        "description": "Stream a multipart response with `file` parts for successful paths and `error` parts carrying error envelopes for per-path failures. The outer response stays 200 on partial success.",
        "operationId": "bulk_download",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDownloadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "multipart/form-data": {}
            },
            "description": "Multipart file and error parts with the fixed boundary `DAYTONA-FILE-BOUNDARY`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or `paths` was empty"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body is well formed but does not match `BulkDownloadRequest`"
          }
        },
        "summary": "Download many files",
        "tags": [
          "files"
        ]
      }
    },
    "/files/bulk-upload": {
      "post": {
        "description": "Stream multipart uploads correlated by `files[i].path` and `files[i].file`. Partial success is reported in the JSON body: each destination is created and opened under the same rules as `/files/upload` (paths normalized lexically, created files and directories handed to the sandbox default OS user, and \u2014 when one is configured \u2014 every write and every directory creation opened as that user could have; a per-entry refusal appears in `errors` and creates nothing). When `atomic=true`, each successful file is written through a temporary file + rename with no non-atomic fallback, and an unsupported atomic rename is reported in that entry's `errors` slot while the rest of the batch continues.",
        "operationId": "bulk_upload",
        "parameters": [
          {
            "description": "Write each uploaded file via a temporary file + rename in its destination directory.",
            "in": "query",
            "name": "atomic",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "string"
              }
            }
          },
          "description": "Multipart form using `files[i].path` metadata parts and `files[i].file` content parts.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkUploadResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 no recognized multipart fields were provided"
          }
        },
        "summary": "Upload many files",
        "tags": [
          "files"
        ]
      }
    },
    "/files/download": {
      "get": {
        "description": "Stream one file as `application/octet-stream`. Directories are rejected.",
        "operationId": "download_file",
        "parameters": [
          {
            "description": "Target path. Omitted on `GET /files` to use the daemon work directory.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Recursive listing depth for `GET /files`; omitted for the flat default (`1`).",
            "in": "query",
            "name": "depth",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {}
            },
            "description": "Raw file bytes."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` is missing or names a directory"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot open the file"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the requested file does not exist"
          }
        },
        "summary": "Download one file",
        "tags": [
          "files"
        ]
      }
    },
    "/files/find": {
      "get": {
        "description": "Walk the tree rooted at `path` and return literal substring matches with one-based line numbers.",
        "operationId": "find_in_files",
        "parameters": [
          {
            "description": "Root path to walk recursively.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filename glob (`search`) or literal substring (`find`) pattern.",
            "in": "query",
            "name": "pattern",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Match"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` and `pattern` are required"
          }
        },
        "summary": "Find text in files",
        "tags": [
          "files"
        ]
      }
    },
    "/files/folder": {
      "post": {
        "description": "Create the requested directory tree. Omitting `mode` uses the route default.",
        "operationId": "create_folder",
        "parameters": [
          {
            "description": "Directory path to create.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional octal mode string; omitted or empty uses the route default.",
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The directory exists."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 missing path or a non-octal mode"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot create the directory"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 a parent path does not exist where the platform reports that condition"
          }
        },
        "summary": "Create a folder",
        "tags": [
          "files"
        ]
      }
    },
    "/files/info": {
      "get": {
        "description": "Return one `FileInfo` record for the requested path.",
        "operationId": "file_info",
        "parameters": [
          {
            "description": "Target path. Omitted on `GET /files` to use the daemon work directory.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Recursive listing depth for `GET /files`; omitted for the flat default (`1`).",
            "in": "query",
            "name": "depth",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInfo"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` is required"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot stat the path"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the requested path does not exist"
          }
        },
        "summary": "Get file metadata",
        "tags": [
          "files"
        ]
      }
    },
    "/files/move": {
      "post": {
        "description": "Rename the path when possible, or copy-then-remove across filesystems.",
        "operationId": "move_file",
        "parameters": [
          {
            "description": "Source path to move.",
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Destination path.",
            "in": "query",
            "name": "destination",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The path was moved."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` or `INVALID_FILE_PATH` \u2014 the request is missing required paths or the platform rejected the path form"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the source path does not exist"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`CONFLICT` \u2014 the destination path already exists"
          }
        },
        "summary": "Move a file or directory",
        "tags": [
          "files"
        ]
      }
    },
    "/files/permissions": {
      "post": {
        "description": "Change mode and, on platforms that support it, owner and group.",
        "operationId": "set_permissions",
        "parameters": [
          {
            "description": "Path whose permissions should change. On Linux, when this names a symlink, owner/group and mode follow it together so one request lands on the target inode.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional octal mode string.",
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional owner id or name, when the platform supports chown.",
            "in": "query",
            "name": "owner",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional group id or name, when the platform supports chgrp.",
            "in": "query",
            "name": "group",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Permissions were updated."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST`, `UNSUPPORTED_OPERATION`, or `INVALID_FILE_PATH` \u2014 the request is invalid or the platform cannot apply the requested ownership change"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot change the requested path"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the requested path does not exist"
          }
        },
        "summary": "Change permissions",
        "tags": [
          "files"
        ]
      }
    },
    "/files/replace": {
      "post": {
        "description": "Replace a literal substring across the requested files. File-specific failures stay inside the 200 response body.",
        "operationId": "replace_in_files",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReplaceResult"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or required replacement fields are missing"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body is well formed but does not match `ReplaceRequest`"
          }
        },
        "summary": "Replace text in files",
        "tags": [
          "files"
        ]
      }
    },
    "/files/search": {
      "get": {
        "description": "Walk the tree rooted at `path` and return absolute file paths whose base name matches the glob `pattern`.",
        "operationId": "search_files",
        "parameters": [
          {
            "description": "Root path to walk recursively.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filename glob (`search`) or literal substring (`find`) pattern.",
            "in": "query",
            "name": "pattern",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` and `pattern` are required"
          }
        },
        "summary": "Search filenames",
        "tags": [
          "files"
        ]
      }
    },
    "/files/upload": {
      "post": {
        "description": "Stream the multipart part named `file` to the destination path from the query string. The path is normalized lexically (`..` collapsed) before use. A newly created file \u2014 and every parent directory this call created \u2014 is owned by the sandbox default OS user when one is configured; a pre-existing file is rewritten in place and never re-owned. A symlink at the path is followed one hop, opened without following further links, and never re-owned. When `atomic=true`, the daemon writes a temporary file in the destination directory, fsyncs it, applies the destination mode, and renames it over the target with no non-atomic fallback. When a default OS user is configured every write \u2014 and every directory this call would create \u2014 is opened as that user could have: search permission on every directory, write permission on the destination (or on the deepest existing directory when parents are missing), symlinks anywhere on the path followed under the same rules; otherwise 403 `FILE_ACCESS_DENIED` and nothing is created.",
        "operationId": "upload_file",
        "parameters": [
          {
            "description": "Destination path for the uploaded file.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Write via a temporary file + rename in the destination directory.",
            "in": "query",
            "name": "atomic",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "string"
              }
            }
          },
          "description": "Multipart form with one file part named `file`.",
          "required": true
        },
        "responses": {
          "200": {
            "description": "The file was uploaded."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` or `INVALID_FILE_PATH` \u2014 missing path, missing `file` part, truncated multipart body, or the platform rejected the path form"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot create or write the destination"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 a parent path does not exist where the platform reports that condition"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`ATOMIC_UPLOAD_UNSUPPORTED` \u2014 atomic upload is not supported on this filesystem (volume mounts); retry without atomic"
          }
        },
        "summary": "Upload one file",
        "tags": [
          "files"
        ]
      }
    },
    "/files/watch": {
      "get": {
        "description": "Server-sent events for one directory. The stream emits `start` with `{}`, `fs` with `WatchFsEvent`, and `overflow` with `WatchOverflowEvent`. `follow=true` is accepted and ignored for compatibility.",
        "operationId": "watch_files",
        "parameters": [
          {
            "description": "Absolute directory path to watch.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Whether nested subdirectories should be watched too.",
            "in": "query",
            "name": "recursive",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Proxy streaming hint preserved for compatibility; the daemon accepts and ignores it.",
            "in": "query",
            "name": "follow",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/event-stream": {}
            },
            "description": "SSE stream of `start`, `fs`, and `overflow` events."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 missing path, non-absolute path, not a directory, or the concurrent-watch limit was reached"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_ACCESS_DENIED` \u2014 the daemon cannot inspect the watched directory"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FILE_NOT_FOUND` \u2014 the watched directory does not exist"
          }
        },
        "summary": "Watch a directory",
        "tags": [
          "files"
        ]
      }
    },
    "/git/add": {
      "post": {
        "description": "Run `git add -- <files...>` in the target repository.",
        "operationId": "git_add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Files staged"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, missing `path`, or no files were provided"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git add did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `AddRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Stage files",
        "tags": [
          "git"
        ]
      }
    },
    "/git/branches": {
      "delete": {
        "description": "Force-delete one branch in the target repository.",
        "operationId": "delete_branch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BranchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Branch deleted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, missing `path`, or missing branch name"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git branch did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `BranchRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Delete a branch",
        "tags": [
          "git"
        ]
      },
      "get": {
        "description": "Return local branch names from the target repository.",
        "operationId": "list_branches",
        "parameters": [
          {
            "description": "Repository path to inspect.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BranchList"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` is missing"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git branch did not finish before the daemon deadline"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "List branches",
        "tags": [
          "git"
        ]
      },
      "post": {
        "description": "Create one branch in the target repository.",
        "operationId": "create_branch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BranchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Branch created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, missing `path`, or missing branch name"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git branch did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `BranchRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Create a branch",
        "tags": [
          "git"
        ]
      }
    },
    "/git/checkout": {
      "post": {
        "description": "Switch the target repository to another branch using `git switch`.",
        "operationId": "git_checkout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Branch checked out"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, missing `path`, or missing branch name"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND`, `NOT_FOUND` \u2014 the repository or requested branch was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git switch did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `CheckoutRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Switch branches",
        "tags": [
          "git"
        ]
      }
    },
    "/git/clone": {
      "post": {
        "description": "Clone a repository URL or local path into a destination directory. Credentials, when provided, are delivered to git via askpass and are never echoed back. Optional `depth` performs a shallow clone, and `insecureSkipTls=true` disables TLS verification for this clone invocation only.",
        "operationId": "git_clone",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Repository cloned"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or a missing `url`/`path`"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the source repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the clone did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `CloneRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Clone a repository",
        "tags": [
          "git"
        ]
      }
    },
    "/git/commit": {
      "post": {
        "description": "Create one commit and return its full SHA. Author identity is passed to git for this invocation only and is not written into repository config.",
        "operationId": "git_commit",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommitResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or missing commit metadata"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git commit did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `CommitRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Create a commit",
        "tags": [
          "git"
        ]
      }
    },
    "/git/config": {
      "get": {
        "description": "Read one git config value from global scope by default, or local scope when `scope=local` and `path` is provided.",
        "operationId": "get_git_config",
        "parameters": [
          {
            "description": "Config key to read.",
            "in": "query",
            "name": "key",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Repository path required for `scope=local`.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Config scope; omitted means `global`.",
            "in": "query",
            "name": "scope",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GitConfigResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 missing key, invalid scope, invalid key, or missing local path"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the local-scope repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git config did not finish before the daemon deadline"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Read one git config key",
        "tags": [
          "git"
        ]
      },
      "post": {
        "description": "Write one git config value to global scope by default, or local scope when `scope=local` and `path` is provided.",
        "operationId": "set_git_config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetConfigRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Config value set"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, invalid scope, invalid key, or missing local path"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the local-scope repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git config did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `SetConfigRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Set one git config key",
        "tags": [
          "git"
        ]
      }
    },
    "/git/history": {
      "get": {
        "description": "Return commit metadata from `git log` in newest-first order.",
        "operationId": "git_history",
        "parameters": [
          {
            "description": "Repository path to inspect.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CommitInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` is missing"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git log did not finish before the daemon deadline"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Read commit history",
        "tags": [
          "git"
        ]
      }
    },
    "/git/init": {
      "post": {
        "description": "Run `git init` and return the created status the historical wire contract uses.",
        "operationId": "git_init",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Repository initialized"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or missing `path`"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git init did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `InitRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Initialize a repository",
        "tags": [
          "git"
        ]
      }
    },
    "/git/pull": {
      "post": {
        "description": "Pull from the repository's configured upstream by default, or from an explicit `remote` and optional `branch`, with `--ff-only` so divergent history becomes a conflict instead of a merge.",
        "operationId": "git_pull",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Pull completed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or missing `path`"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git pull did not finish before the daemon deadline"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`CONFLICT` \u2014 non-fast-forward update"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `RepoRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Pull from a remote",
        "tags": [
          "git"
        ]
      }
    },
    "/git/push": {
      "post": {
        "description": "Push the current HEAD ref by default, or an explicit `branch` to `remote` (default `origin`) using an explicit `<ref>:<ref>` refspec. `setUpstream=true` passes `-u` to git.",
        "operationId": "git_push",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Push completed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or missing `path`"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND`, `NOT_FOUND` \u2014 the repository or HEAD ref could not be resolved"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git push did not finish before the daemon deadline"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`CONFLICT` \u2014 non-fast-forward update"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `RepoRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Push a branch",
        "tags": [
          "git"
        ]
      }
    },
    "/git/remotes": {
      "get": {
        "description": "Return configured remotes. Any userinfo in remote URLs is redacted before it is returned.",
        "operationId": "list_remotes",
        "parameters": [
          {
            "description": "Repository path to inspect.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRemotesResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` is missing"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git remote did not finish before the daemon deadline"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure or malformed git output"
          }
        },
        "summary": "List remotes",
        "tags": [
          "git"
        ]
      },
      "post": {
        "description": "Run `git remote add` in the target repository.",
        "operationId": "add_remote",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRemoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Remote added"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or a missing `path`, `name`, or `url`"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git remote add did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `AddRemoteRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Add a remote",
        "tags": [
          "git"
        ]
      }
    },
    "/git/reset": {
      "post": {
        "description": "Run `git reset` with the requested mode, target, and optional pathspecs.",
        "operationId": "git_reset",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Reset completed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, missing `path`, invalid reset mode, or invalid pathspec usage"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git reset did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `ResetRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Reset repository state",
        "tags": [
          "git"
        ]
      }
    },
    "/git/restore": {
      "post": {
        "description": "Run `git restore` for one or more files from the index, worktree, or an optional source tree-ish.",
        "operationId": "git_restore",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Restore completed"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, missing `path`, no files, or an invalid staged/worktree combination"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git restore did not finish before the daemon deadline"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `RestoreRequest`"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure"
          }
        },
        "summary": "Restore files",
        "tags": [
          "git"
        ]
      }
    },
    "/git/status": {
      "get": {
        "description": "Return the current branch, ahead/behind counts, and file status entries from `git status --porcelain=v2 --branch -z`.",
        "operationId": "git_status",
        "parameters": [
          {
            "description": "Repository path to inspect.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 `path` is missing"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`GIT_REPO_NOT_FOUND` \u2014 the repository was not found"
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 git status did not finish before the daemon deadline"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal git failure or malformed git output"
          }
        },
        "summary": "Read repository status",
        "tags": [
          "git"
        ]
      }
    },
    "/info": {
      "get": {
        "description": "Everything an SDK wants at connect time in one call: version, working directory and (when it differs) the user's home directory.",
        "operationId": "info",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InfoResponse"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Sandbox handshake",
        "tags": [
          "info"
        ]
      }
    },
    "/lsp/completions": {
      "post": {
        "description": "Query `textDocument/completion` and normalize the reply to the daemon's stable `CompletionList` wire shape.",
        "operationId": "lsp_completions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompletionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompletionList"
                }
              }
            },
            "description": "Normalized completion list."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, unsupported language, invalid request data, or the language server returned a request error."
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the language server did not answer in time."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 no matching server is running."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `CompletionRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          }
        },
        "summary": "Request completions",
        "tags": [
          "lsp"
        ]
      }
    },
    "/lsp/did-close": {
      "post": {
        "description": "Send `textDocument/didClose` to the running language server.",
        "operationId": "lsp_did_close",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Close notification sent."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or invalid request data."
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the language server did not accept the notification in time."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 no matching server is running."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `DocumentRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          }
        },
        "summary": "Notify LSP did-close",
        "tags": [
          "lsp"
        ]
      }
    },
    "/lsp/did-open": {
      "post": {
        "description": "Read the document from disk and send `textDocument/didOpen` to the running language server.",
        "operationId": "lsp_did_open",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Open notification sent."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, invalid request data, or the document could not be read."
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the language server did not accept the notification in time."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 no matching server is running."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `DocumentRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          }
        },
        "summary": "Notify LSP did-open",
        "tags": [
          "lsp"
        ]
      }
    },
    "/lsp/document-symbols": {
      "get": {
        "description": "Query `textDocument/documentSymbol` for one document and normalize the result to flat `SymbolInfo` rows.",
        "operationId": "lsp_document_symbols",
        "parameters": [
          {
            "description": "Workspace-symbol search string; required on `/lsp/workspacesymbols`, omitted on `/lsp/document-symbols`.",
            "in": "query",
            "name": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The LSP language key (`python`, `typescript`); required by both symbol routes.",
            "in": "query",
            "name": "languageId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Absolute project root path used as the server's workspace root; required by both symbol routes.",
            "in": "query",
            "name": "pathToProject",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Document URI for `/lsp/document-symbols`; omitted on `/lsp/workspacesymbols`.",
            "in": "query",
            "name": "uri",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SymbolInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Normalized document symbols."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 required query parameters are missing, unsupported language was requested, or the language server returned a request error."
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the language server did not answer in time."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 no matching server is running."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          }
        },
        "summary": "List document symbols",
        "tags": [
          "lsp"
        ]
      }
    },
    "/lsp/start": {
      "post": {
        "description": "Start or reuse the language server for one `(languageId, pathToProject)` workspace.",
        "operationId": "lsp_start",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Server started or was already running."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON, unsupported language, or invalid request data."
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the language server did not answer during initialization."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 the start finished after being superseded by another start."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `ServerRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_SERVER_UNAVAILABLE` \u2014 the server binary is missing or failed to start."
          }
        },
        "summary": "Start an LSP server",
        "tags": [
          "lsp"
        ]
      }
    },
    "/lsp/stop": {
      "post": {
        "description": "Stop the language server for one `(languageId, pathToProject)` workspace.",
        "operationId": "lsp_stop",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Server stopped."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 malformed JSON or invalid request data."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 no matching server is running."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body does not match `ServerRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          }
        },
        "summary": "Stop an LSP server",
        "tags": [
          "lsp"
        ]
      }
    },
    "/lsp/workspacesymbols": {
      "get": {
        "description": "Query `workspace/symbol` for one workspace and normalize the result to flat `SymbolInfo` rows.",
        "operationId": "lsp_workspace_symbols",
        "parameters": [
          {
            "description": "Workspace-symbol search string; required on `/lsp/workspacesymbols`, omitted on `/lsp/document-symbols`.",
            "in": "query",
            "name": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The LSP language key (`python`, `typescript`); required by both symbol routes.",
            "in": "query",
            "name": "languageId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Absolute project root path used as the server's workspace root; required by both symbol routes.",
            "in": "query",
            "name": "pathToProject",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Document URI for `/lsp/document-symbols`; omitted on `/lsp/workspacesymbols`.",
            "in": "query",
            "name": "uri",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SymbolInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Normalized workspace symbols."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 required query parameters are missing, unsupported language was requested, or the language server returned a request error."
          },
          "408": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`REQUEST_TIMEOUT` \u2014 the language server did not answer in time."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`LSP_NOT_STARTED` \u2014 no matching server is running."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          }
        },
        "summary": "List workspace symbols",
        "tags": [
          "lsp"
        ]
      }
    },
    "/port": {
      "get": {
        "description": "Returns every listening TCP port inside the sandbox, including the daemon's own listeners.",
        "operationId": "list_ports",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PortList"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "List listening ports",
        "tags": [
          "ports"
        ]
      }
    },
    "/port/{port}/in-use": {
      "get": {
        "description": "Parses the path segment as a decimal TCP port, requires the upstream Daytona range `3000..=9999`, then checks the live listener table and a loopback dial fallback.",
        "operationId": "port_in_use",
        "parameters": [
          {
            "description": "TCP port number as a decimal string between 3000 and 9999.",
            "in": "path",
            "name": "port",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IsPortInUseResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 the path is not a decimal port or is outside `3000..=9999`."
          }
        },
        "summary": "Check whether a port is in use",
        "tags": [
          "ports"
        ]
      }
    },
    "/processes": {
      "get": {
        "description": "List process records, optionally filtered by state, kind, session, name, or pid.",
        "operationId": "list_processes",
        "parameters": [
          {
            "description": "`running`, `terminal`, or `all` (the default when omitted).",
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by process kind.",
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Kind"
            }
          },
          {
            "description": "Filter by the session a process ran in (`kind=session` process id or interpreter context id).",
            "in": "query",
            "name": "sessionId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by live name alias.",
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by OS process id.",
            "in": "query",
            "name": "pid",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessListResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid filter value."
          }
        },
        "summary": "List processes",
        "tags": [
          "processes"
        ]
      },
      "post": {
        "description": "Create a process record and launch exec, pty, or code work. `waitMs` keeps the request open until terminal or timeout; `logs=text|base64` adds the first log page and therefore requires `waitMs`.",
        "operationId": "create_process",
        "parameters": [
          {
            "description": "Wait up to this many milliseconds before replying; timing out still returns 201 with a running record.",
            "in": "query",
            "name": "waitMs",
            "required": false,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Inline the first logs page using `text` or `base64`; requires `waitMs`.",
            "in": "query",
            "name": "logs",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProcessRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessDto"
                }
              }
            },
            "description": "Created process record. When `waitMs` and `logs` are requested, the response includes the inline `logs` page."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST`, `PROCESS_START_FAILED`, or `UNSUPPORTED_OPERATION` \u2014 invalid create shape, shell/session misuse, or startup failure."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`SESSION_NOT_FOUND` \u2014 the requested session does not exist."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NAME_CONFLICT` \u2014 the requested process or implicit-session name is already in use."
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`SESSION_ENDED` \u2014 the requested session existed but has ended."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body was well-formed but did not match `CreateProcessRequest`."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`KERNEL_UNAVAILABLE` \u2014 the requested language kernel is unavailable."
          }
        },
        "summary": "Create a process",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}": {
      "delete": {
        "description": "Delete a process record and purge its logs. System processes stay protected.",
        "operationId": "cleanup_process",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Process record deleted."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNSUPPORTED_OPERATION` \u2014 the process cannot be cleaned up in its current state."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROTECTED_PROCESS` \u2014 daemon-owned system processes cannot be cleaned up."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          }
        },
        "summary": "Delete a process record",
        "tags": [
          "processes"
        ]
      },
      "get": {
        "description": "Fetch a process by stable id or by its live alias.",
        "operationId": "get_process",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessDto"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          }
        },
        "summary": "Get a process",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}/attach": {
      "get": {
        "description": "Upgrades to a websocket that streams live output frames and accepts stdin bytes. When `cursor` is set, the daemon replays ledger bytes up to the attach-time tail first. Invalid or expired replay cursors are reported as websocket policy closes (`1008`), not HTTP errors.",
        "operationId": "attach_process",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional logs cursor to replay before switching to live websocket output.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "101": {
            "description": "Websocket upgrade accepted."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          }
        },
        "summary": "Attach a websocket to a process",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}/logs": {
      "get": {
        "description": "Returns a JSON page by default, or an SSE stream when `follow=true`. SSE event names are `log`, `state`, `warning`, `error`, and `eof`; `Last-Event-ID` resumes from the last seen cursor.",
        "operationId": "process_logs",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Resume after this cursor. Empty or omitted starts from the beginning.",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page size for JSON reads; clamped by the daemon.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Payload encoding: `text` (default) or `base64`.",
            "in": "query",
            "name": "encoding",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "When true, answer an SSE follow stream instead of a JSON page.",
            "in": "query",
            "name": "follow",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Optional resume cursor for SSE reconnects; wins over the `cursor` query parameter.",
            "in": "header",
            "name": "Last-Event-ID",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/event-stream": {}
            },
            "description": "SSE stream when `follow=true`: `log` carries `LogFrameDto`, `state` carries `ProcessStateEventDto`, `warning` carries `ProcessWarningEventDto`, `error` carries `ProcessErrorEventDto`, and `eof` carries `ProcessEofEventDto`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` or `INVALID_CURSOR` \u2014 invalid encoding or invalid resume cursor."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`CURSOR_EXPIRED` \u2014 the requested cursor was evicted by retention and `firstAvailableCursor` names the resume point."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error while reading the ledger."
          }
        },
        "summary": "Read process logs or follow them as SSE",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}/resize": {
      "post": {
        "description": "Change the terminal size of a PTY process.",
        "operationId": "process_resize",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResizeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "PTY resized."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` or `UNSUPPORTED_OPERATION` \u2014 invalid geometry or the process is not a PTY."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body was well-formed but did not match `ResizeRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error while resizing the PTY."
          }
        },
        "summary": "Resize a PTY",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}/signals": {
      "post": {
        "description": "Send a signal, optionally with escalation, or interrupt a running code execution.",
        "operationId": "process_signals",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Signal accepted."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` or `UNSUPPORTED_OPERATION` \u2014 invalid signal request or an unsupported operation for this process kind."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROTECTED_PROCESS` \u2014 daemon-owned system processes cannot be signaled."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_TERMINAL` \u2014 the process has already exited."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body was well-formed but did not match `SignalRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error while signaling the process."
          }
        },
        "summary": "Signal a process",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}/stdin": {
      "post": {
        "description": "Write stdin data and optionally close stdin.",
        "operationId": "process_stdin",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StdinRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "stdin written."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 invalid encoding or malformed request body."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROTECTED_PROCESS` \u2014 daemon-owned system processes do not accept stdin."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_TERMINAL`, `STDIN_UNAVAILABLE`, or `STDIN_CLOSED` \u2014 stdin can no longer accept bytes."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body was well-formed but did not match `StdinRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error while writing stdin."
          }
        },
        "summary": "Write process stdin",
        "tags": [
          "processes"
        ]
      }
    },
    "/processes/{id}/wait": {
      "get": {
        "description": "Long-poll for the terminal result. Omitted `timeoutMs` keeps the daemon's default 60-second chunk, `timeoutMs=0` waits until terminal, and any positive value is honored uncapped. Timing out returns `reason: timed_out` without killing the process.",
        "operationId": "wait_process",
        "parameters": [
          {
            "description": "Process id or live alias.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Long-poll timeout in milliseconds. Omitted means the daemon's default 60-second chunk; `0` means wait until terminal; any positive value is honored uncapped.",
            "in": "query",
            "name": "timeoutMs",
            "required": false,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExitResult"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`PROCESS_NOT_FOUND` \u2014 no such process or alias."
          }
        },
        "summary": "Wait for process completion",
        "tags": [
          "processes"
        ]
      }
    },
    "/rlp/activity": {
      "get": {
        "description": "Counts the daemon's non-terminal processes that hold the sandbox idle clock (PLAN-DAEMON-PROCESS-ACTIVITY): every non-PTY process a caller started \u2014 a standalone `kind=exec` process, a session member, or a `kind=code` cell, including a cell still queued in `starting`. PTYs, session shells, language kernels and system processes (the entrypoint, `dockerd`) never count, and neither do records reconciled `lost` at boot. The runner polls this route and keeps the sandbox from auto-stopping while `busy` is `true`. Read-only and immediate; it never waits.",
        "operationId": "get_activity",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivitySummary"
                }
              }
            },
            "description": ""
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Report whether caller-started processes are running",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/entrypoint-start": {
      "post": {
        "description": "Releases the runner-held entrypoint gate. Once released, the Linux daemon runs its one-per-boot startup coordinator: Docker Engine startup (reported on `GET /docker/status`), then the image entrypoint. `fnReady=1` marks the release of a function-ready template build, which skips Docker startup (status `deferred`) but still starts the entrypoint. Idempotent \u2014 repeat calls answer 200 without spawning a second entrypoint. A platform without an image entrypoint (Windows) answers 200 as a no-op.",
        "operationId": "entrypoint_start",
        "parameters": [
          {
            "description": "`1` (or `true`) marks the release of a function-ready template build\n(the runner's template builder releases the gate before capture). The\ndaemon then skips Docker startup and reports Docker as `deferred`;\nthe image entrypoint still starts. Any other value, or omitted, is an\nordinary release.",
            "in": "query",
            "name": "fnReady",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Release the entrypoint gate",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/fs-freeze": {
      "post": {
        "description": "Issues `FIFREEZE` on the guest's scratch ext4 filesystem \u2014 the mount whose mountinfo root is `/runtime/containerd` (or `/runtime/docker`), bind-mounted by guest init \u2014 which checkpoints the journal and blocks new writers, so the runner's host-side trim can trust the captured copy's block bitmaps. The runner freezes right before pausing the VM and thaws after resume. An auto-thaw fires `timeoutMs` (default 10000, clamped to 1000..=30000) after the request arrives, so a lost thaw cannot wedge the guest. Idempotent: a repeat call while frozen re-arms the auto-thaw and answers 200. While frozen, other requests that write to that filesystem block until the thaw.",
        "operationId": "fs_freeze",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FsFreezeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FsFreezeResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 unparseable JSON."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FS_FREEZE_UNSUPPORTED` \u2014 no scratch filesystem to freeze (an init without the runtime store, a non-ext4 filesystem, a kernel or filesystem that refuses `FIFREEZE`, or a Windows sandbox); `CONFLICT` \u2014 the filesystem is already frozen by someone other than this daemon."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 well-formed JSON that does not match `FsFreezeRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "The freeze failed or did not complete in time; any freeze that lands later is still auto-thawed."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Freeze the scratch filesystem for a disk snapshot",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/fs-thaw": {
      "post": {
        "description": "Issues `FITHAW` on the filesystem `POST /rlp/fs-freeze` froze and cancels its auto-thaw. Idempotent: nothing frozen, or a filesystem already thawed, answers 200. Windows sandboxes answer 200 as a no-op.",
        "operationId": "fs_thaw",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FsThawResponse"
                }
              }
            },
            "description": ""
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FITHAW` failed, or did not complete in time; the auto-thaw stays armed."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Thaw the scratch filesystem",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/mounts": {
      "delete": {
        "description": "Unmounts one bucket mount by absolute path. The legacy `name` alias is still accepted for runner compatibility.",
        "operationId": "unmount",
        "parameters": [
          {
            "description": "Absolute mount path to unmount.",
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Legacy alias for the mount name.",
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` for a missing mount key, or `UNSUPPORTED_OPERATION` on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "The daemon could not unmount the requested path."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Unmount one bucket mount",
        "tags": [
          "control"
        ]
      },
      "get": {
        "description": "Returns the daemon's redacted bucket mount state. Credentials never appear in this response.",
        "operationId": "list_mounts",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MountDto"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNSUPPORTED_OPERATION` \u2014 mounts are not available on Windows sandboxes."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "The daemon could not inspect mount state."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "List bucket mounts",
        "tags": [
          "control"
        ]
      },
      "post": {
        "description": "Applies the desired bucket mount set. Gateway credentials are write-only and never echoed back.",
        "operationId": "apply_mounts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MountsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` for malformed mount requests, or `UNSUPPORTED_OPERATION` on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 well-formed JSON that does not match `MountsRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "The daemon could not apply the requested mount set."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Apply bucket mounts",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/secrets": {
      "post": {
        "description": "Pushes placeholder environment variables plus an optional PEM CA bundle fragment before the runner releases the entrypoint gate. Reserved keys are refused with 400 naming the key, and nothing from that request is stored: keys starting with `RLP_`, any `DAYTONA_*` key other than `DAYTONA_SANDBOX_TOKEN`, `DAYTONA_API_URL`, `DAYTONA_OTEL_ENDPOINT`, `DAYTONA_DOCKER_START`, `DAYTONA_FN_PORT` and `DAYTONA_FN_HANDLER` (the last two are platform-injected by the API's functions service for the tenant's handler process), and keys that are not valid variable names (empty, or containing `=`, NUL, CR or LF). The sandbox's create env travels on this route too, so `PATH`, `LD_*` and the CA-bundle variables (`SSL_CERT_FILE`, `REQUESTS_CA_BUNDLE`, `CURL_CA_BUNDLE`, `NODE_EXTRA_CA_CERTS`, `GIT_SSL_CAINFO`, `DENO_CERT`) are admitted; once an egress CA is installed, the daemon's own bundle paths replace any pushed value under the CA names. No size limit applies here: the API bounds the create env, and the tenant `POST /env` caps do not apply.",
        "operationId": "push_secrets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecretsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 unparseable JSON, or a reserved env key (the message names it)."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 well-formed JSON that does not match `SecretsRequest`."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Inject placeholder env vars and an optional CA",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/self-delete": {
      "post": {
        "description": "Arms one process-bound lifecycle action (`delete`, `stop`, or `pause`) for this sandbox.",
        "operationId": "self_delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelfDeleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 unparseable JSON, unknown action, or a pid that is not a live process."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 well-formed JSON that does not match `SelfDeleteRequest`."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Arm process-bound self deletion",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/token": {
      "post": {
        "description": "The runner's first control call on every boot path (PLAN-DAEMON-LISTENER-HARDENING). Accepted without a bearer only while the daemon holds no token (bootstrap); once a token is set, the request must carry it as `Authorization: Bearer \u2026` and the body's token replaces it (rotation \u2014 a clone resumed from a template rotates the template's token to a per-clone one). Re-pushing the token the daemon already holds is a 200 no-op, so a retry after a lost 200 is idempotent. The token lives in daemon memory only and is never echoed, logged or exported. Like every control route this one sits behind the gateway-peer guard (403); unlike the others it bypasses the bearer layer and checks the bearer itself (401). A daemon that predates control tokens answers the plain-text `404 page not found` fallback.",
        "operationId": "push_token",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`; the token is now the bearer every other control route requires."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 unparseable JSON, or a token that is not 32\u2013128 bytes of printable ASCII."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 a token is set and the request carries none, or not the current one; the state is unchanged."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 well-formed JSON that does not match `TokenRequest`."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Set or rotate the control bearer token",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/user": {
      "post": {
        "description": "Sets the OS user every later exec, session, SSH login and git operation runs as, creating the account inside the guest if the image lacks it (issue #167). Pushed by the runner before the entrypoint gate releases. One-shot per boot: re-pushing the same name is an idempotent no-op; a different name is refused.",
        "operationId": "push_user",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "text/plain": {}
            },
            "description": "Plain-text `ok\\n`."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` \u2014 unparseable JSON or a name that is not a POSIX username, or `UNSUPPORTED_OPERATION` on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NAME_CONFLICT` \u2014 a different default user is already set for this boot."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 well-formed JSON that does not match `UserRequest`."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Creating the account failed; the boot should fail loud rather than run as the wrong identity."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Set the sandbox default OS user",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/apply": {
      "post": {
        "operationId": "volume_apply_apply",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeApplyOperationBinding"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyStatus"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid request or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, or recovery required."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON body exceeds the request limit."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Expected application/json."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the request schema."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/begin": {
      "post": {
        "operationId": "volume_apply_begin",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeApplyBegin"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyStatus"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid request or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, or recovery required."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON body exceeds the request limit."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Expected application/json."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the request schema, including unknown change fields."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/capture": {
      "post": {
        "operationId": "volume_apply_capture",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeApplyCapture"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyCaptureResult"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid request or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, or recovery required."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON body exceeds the request limit."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Expected application/json."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the request schema."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/confirm": {
      "post": {
        "operationId": "volume_apply_confirm",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeApplyConfirm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyConfirmationAck"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid request or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, or recovery required."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON body exceeds the request limit."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Expected application/json."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the request schema."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/reserve": {
      "post": {
        "operationId": "volume_apply_reserve",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeApplyReserve"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyBinding"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid request or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, or recovery required."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON body exceeds the request limit."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Expected application/json."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the request schema."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/stage": {
      "post": {
        "operationId": "volume_apply_stage",
        "parameters": [
          {
            "in": "query",
            "name": "protocol",
            "required": true,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "volume_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "generation",
            "required": true,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "reservation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "index",
            "required": true,
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyStatus"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid query or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, failed transfer, or recovery required."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "An ingress body frame exceeds 1 MiB. Accepted work remains fenced and requires recovery."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Expected application/octet-stream."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-apply/status": {
      "get": {
        "operationId": "volume_apply_status",
        "parameters": [
          {
            "in": "query",
            "name": "protocol",
            "required": true,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "volume_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "generation",
            "required": true,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "reservation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeApplyStatus"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid query or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Binding conflict, busy owner, or recovery required."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal error."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-sync/register": {
      "post": {
        "description": "Protocol 1 runner-only correlation state, not a credential or proof of ownership. The first session is sealed for the daemon's lifetime: a different session is refused with 409; repeating the session requires identical bindings.",
        "operationId": "volume_sync_register",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeSyncRegistration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeSyncAck"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid registration or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Session binding conflict."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the registration schema."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Register internal volume-sync bindings",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-sync/requests": {
      "get": {
        "description": "Returns the oldest outstanding delivery without removing it. Waits at most 30000 ms. A missing request is null, not proof of execution failure.",
        "operationId": "volume_sync_requests",
        "parameters": [
          {
            "in": "query",
            "name": "session_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Long-poll duration in milliseconds, from 0 to 30000.",
            "in": "query",
            "name": "wait_ms",
            "required": false,
            "schema": {
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeSyncPollResponse"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid query or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Stale session."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Poll internal volume-sync requests",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/rlp/volume-sync/results": {
      "post": {
        "description": "Requires the submitted session, request, volume, generation, operation and delivery id. Identical completions replay; contradictory results refuse. Pending, unavailable and rate_limited finish this delivery but allow internal resubmission with the same effect identity and a new delivery id. Rate admission is enforced by the runner across reconnects.",
        "operationId": "volume_sync_results",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeSyncResult"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeSyncAck"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid result or UNSUPPORTED_OPERATION on Windows."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNAUTHORIZED` \u2014 the control token is set (or required) and the request carries none, or the wrong one."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`FORBIDDEN` \u2014 the connection did not arrive from the guest's default gateway."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Stale session, unknown request, or contradictory completion."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON does not match the result schema."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`NO_DEFAULT_GATEWAY` \u2014 macOS only: the guest has no usable default gateway yet to check the connection against; retry."
          }
        },
        "summary": "Complete an internal volume-sync delivery",
        "tags": [
          "control"
        ]
      },
      "servers": [
        {
          "description": "Runner-only control listener; not reachable through the toolbox proxy.",
          "url": "http://{sandbox}:2281",
          "variables": {
            "sandbox": {
              "default": "sandbox"
            }
          }
        }
      ]
    },
    "/sessions": {
      "get": {
        "description": "List session execution hosts in creation order.",
        "operationId": "list_sessions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionListResponse"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "List sessions",
        "tags": [
          "sessions"
        ]
      },
      "post": {
        "description": "Create a long-lived execution host such as a shell session or a language-kernel session.",
        "operationId": "create_session",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSessionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`BAD_REQUEST` or `NAME_CONFLICT` \u2014 invalid session shape or duplicate session id."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`UNPROCESSABLE_ENTITY` \u2014 the JSON body was well-formed but did not match `CreateSessionRequest`."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`KERNEL_UNAVAILABLE` \u2014 the requested kernel is unavailable."
          }
        },
        "summary": "Create a session",
        "tags": [
          "sessions"
        ]
      }
    },
    "/sessions/{id}": {
      "delete": {
        "description": "Delete a session, its backing kernel, and any member records that belong to it.",
        "operationId": "delete_session",
        "parameters": [
          {
            "description": "Session id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Session deleted."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`SESSION_NOT_FOUND` \u2014 no such session."
          }
        },
        "summary": "Delete a session",
        "tags": [
          "sessions"
        ]
      },
      "get": {
        "description": "Fetch a session by id.",
        "operationId": "get_session",
        "parameters": [
          {
            "description": "Session id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionDto"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "`SESSION_NOT_FOUND` \u2014 no such session."
          }
        },
        "summary": "Get a session",
        "tags": [
          "sessions"
        ]
      }
    },
    "/system/metrics": {
      "get": {
        "description": "Returns one RFC 3339 metrics snapshot: logical CPU count, sampled CPU utilization, guest memory usage, and disk usage for the filesystem containing the sandbox work directory.",
        "operationId": "system_metrics",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metrics"
                }
              }
            },
            "description": ""
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "A sampler or formatting failure prevented metrics collection."
          }
        },
        "summary": "Sample guest resource metrics",
        "tags": [
          "system"
        ]
      }
    },
    "/version": {
      "get": {
        "description": "The runner's readiness probe: answers as soon as the toolbox listener is up. The shape is frozen.",
        "operationId": "version",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VersionResponse"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Daemon version",
        "tags": [
          "info"
        ]
      }
    },
    "/volumes/{volumeId}/pull": {
      "post": {
        "description": "Pull only; there is no public commit operation. Retain requestId across retries. Definitive results replay within the current session. A pending, unavailable or rate-limited result is retried only by a call with waitMs above zero; waitMs 0 returns the last outcome (a rate limit with its remaining delay) and queues nothing. An elapsed wait or disconnected caller does not cancel accepted work. An unregistered attachment returns a conflict; replay is not durable across daemon restart. Windows returns UNSUPPORTED_OPERATION.",
        "operationId": "pull_volume",
        "parameters": [
          {
            "description": "Attached volume ID (1\u2013128 ASCII letters, digits, underscores or hyphens).",
            "in": "path",
            "name": "volumeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PullVolumeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PullVolumeResponse"
                }
              }
            },
            "description": "Pulled or unchanged."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PullVolumeResponse"
                }
              }
            },
            "description": "Pending; retry with the same requestId and waitMs above zero."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid identifier/wait, malformed JSON, or UNSUPPORTED_OPERATION on Windows."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unregistered attachment, conflicting request identity, or failed/rejected pull."
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Request body exceeds the JSON limit."
          },
          "415": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "JSON content type required."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Invalid request shape, including unknown fields."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Admission refused. Envelope includes requestId and retryAfterMs; Retry-After rounds up to one second.",
            "headers": {
              "Retry-After": {
                "description": "1 second.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Pull provider unavailable; retain requestId for retry."
          }
        },
        "summary": "Pull remote changes into an attached volume",
        "tags": [
          "volumes"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "The toolbox listener inside the sandbox; reached by SDKs through the toolbox proxy.",
      "url": "http://{sandbox}:2280",
      "variables": {
        "sandbox": {
          "default": "sandbox"
        }
      }
    }
  ],
  "tags": [
    {
      "description": "Version probe and the SDK handshake.",
      "name": "info"
    },
    {
      "description": "Future child-process environment updates applied at spawn time.",
      "name": "env"
    },
    {
      "description": "The process engine: exec, pty and code processes, their logs, stdin, signals and lifecycle.",
      "name": "processes"
    },
    {
      "description": "Long-lived execution hosts (shell and language kernels) that processes run in.",
      "name": "sessions"
    },
    {
      "description": "Filesystem: listing, transfer (streamed both ways), search and replace, permissions, change watch.",
      "name": "files"
    },
    {
      "description": "Repository operations shelled out to the sandbox's git with askpass credentials.",
      "name": "git"
    },
    {
      "description": "Language servers: lifecycle, document sync, completions and symbols.",
      "name": "lsp"
    },
    {
      "description": "Listening-port discovery.",
      "name": "ports"
    },
    {
      "description": "Guest resource metrics.",
      "name": "system"
    },
    {
      "description": "Pull remote changes into an attached volume; publication remains internal.",
      "name": "volumes"
    },
    {
      "description": "Docker Engine startup status: whether the image's Docker was started, who owns it, and where its logs are. Read-only.",
      "name": "docker"
    },
    {
      "description": "Desktop automation addon, lazily started on first request and relayed over loopback. Every route answers 503 ADDON_UNAVAILABLE when the addon is not staged.",
      "name": "computer-use"
    },
    {
      "description": "Runner-only lifecycle operations on :2281 \u2014 entrypoint gate, secret injection, bucket mounts, self-delete. Not reachable through the toolbox proxy.",
      "name": "control"
    }
  ],
  "x-daytona-error-codes": {
    "ADDON_UNAVAILABLE": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 503
    },
    "ATOMIC_UPLOAD_UNSUPPORTED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "CURSOR_EXPIRED": {
      "extras": [
        "firstAvailableCursor"
      ],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "DESKTOP_NOT_READY": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "FILE_ACCESS_DENIED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 403
    },
    "FILE_NOT_FOUND": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 404
    },
    "FILE_READ_FAILED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 500
    },
    "FS_FREEZE_UNSUPPORTED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "GIT_AUTH_FAILED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 401
    },
    "GIT_BRANCH_EXISTS": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "GIT_BRANCH_NOT_FOUND": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 404
    },
    "GIT_REPO_NOT_FOUND": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 404
    },
    "INVALID_CURSOR": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 400
    },
    "INVALID_FILE_PATH": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 400
    },
    "KERNEL_UNAVAILABLE": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 503
    },
    "LSP_NOT_STARTED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "LSP_SERVER_UNAVAILABLE": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 503
    },
    "NAME_CONFLICT": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "NO_DEFAULT_GATEWAY": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 503
    },
    "PROCESS_EXECUTION_TIMEOUT": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 408
    },
    "PROCESS_NOT_FOUND": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 404
    },
    "PROCESS_START_FAILED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 400
    },
    "PROCESS_TERMINAL": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "PROTECTED_PROCESS": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 403
    },
    "SESSION_ENDED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 410
    },
    "SESSION_NOT_FOUND": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 404
    },
    "STDIN_CLOSED": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "STDIN_UNAVAILABLE": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 409
    },
    "UNSUPPORTED_OPERATION": {
      "extras": [],
      "source": "DAYTONA_DAEMON",
      "status": 400
    }
  },
  "x-daytona-generic-codes": {
    "BAD_GATEWAY": {
      "extras": [],
      "status": 502
    },
    "BAD_REQUEST": {
      "extras": [],
      "status": 400
    },
    "CONFLICT": {
      "extras": [],
      "status": 409
    },
    "FORBIDDEN": {
      "extras": [],
      "status": 403
    },
    "GONE": {
      "extras": [],
      "status": 410
    },
    "INTERNAL_SERVER_ERROR": {
      "extras": [],
      "status": 500
    },
    "METHOD_NOT_ALLOWED": {
      "extras": [],
      "status": 405
    },
    "NOT_FOUND": {
      "extras": [],
      "status": 404
    },
    "PAYLOAD_TOO_LARGE": {
      "extras": [],
      "status": 413
    },
    "REQUEST_TIMEOUT": {
      "extras": [],
      "status": 408
    },
    "SERVICE_UNAVAILABLE": {
      "extras": [],
      "status": 503
    },
    "TOO_MANY_REQUESTS": {
      "extras": [],
      "status": 429
    },
    "UNAUTHORIZED": {
      "extras": [],
      "status": 401
    },
    "UNPROCESSABLE_ENTITY": {
      "extras": [],
      "status": 422
    },
    "UNSUPPORTED_MEDIA_TYPE": {
      "extras": [],
      "status": 415
    }
  },
  "x-daytona-log-channels": {
    "display": {
      "description": "Kernel side outputs from display_data/update_display_data, keyed by media type."
    },
    "error": {
      "description": "Kernel exception payload {ename, evalue, traceback}."
    },
    "execute_result": {
      "description": "Kernel primary result from execute_result, keyed by media type."
    },
    "pty": {
      "description": "Merged terminal byte stream of a kind=pty process."
    },
    "setup": {
      "description": "Daemon-emitted provisioning and setup progress messages."
    },
    "stderr": {
      "description": "Process stderr bytes."
    },
    "stdout": {
      "description": "Process stdout bytes."
    }
  }
}
