{
  "openapi": "3.1.1",
  "info": {
    "title": "Casebox.Server | v1",
    "version": "1.0.0"
  },
  "paths": {
    "/api/v1/auth/methods": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/local": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocalLogin"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/oidc/login": {
      "get": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "returnUrl",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/logout": {
      "post": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/csrf": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/me": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/devices": {
      "post": {
        "tags": [
          "Tokens"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/privacy/erasures": {
      "post": {
        "tags": [
          "Privacy"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EraseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/sessions/{id}/work-item": {
      "put": {
        "tags": [
          "Work"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Reassign"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/mining": {
      "post": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/proposer/runs": {
      "post": {
        "tags": [
          "Proposals"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProposerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/accounts": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/accounts/{id}/role": {
      "put": {
        "tags": [
          "Accounts"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleChange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/device/code": {
      "post": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/device/approve": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Approve"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/device/token": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/org": {
      "get": {
        "tags": [
          "Organisation"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/org/settings": {
      "put": {
        "tags": [
          "Organisation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrgSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Workspaces"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWorkspace"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/repos": {
      "post": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepoBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/repos/{repo}": {
      "delete": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "repo",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/harness": {
      "put": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HarnessBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/recipe": {
      "put": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProposeRecipe"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/recipe/validation": {
      "post": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipeValidation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/workspaces/{name}/recipe/confirmation": {
      "post": {
        "tags": [
          "Workspaces"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipeConfirmation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tokens": {
      "get": {
        "tags": [
          "Tokens"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Tokens"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueToken"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tokens/{id}": {
      "delete": {
        "tags": [
          "Tokens"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/integrations": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/integrations/github": {
      "put": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectGitHub"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/integrations/jira": {
      "put": {
        "tags": [
          "Integrations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectJira"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/integrations/{kind}": {
      "delete": {
        "tags": [
          "Integrations"
        ],
        "parameters": [
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/work-items": {
      "get": {
        "tags": [
          "Work"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/work-items/timeline": {
      "get": {
        "tags": [
          "Work"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/steering/report": {
      "get": {
        "tags": [
          "Steering"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/steering/interventions": {
      "get": {
        "tags": [
          "Steering"
        ],
        "parameters": [
          {
            "name": "wentWrong",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/steering/relabel": {
      "post": {
        "tags": [
          "Steering"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelabelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/steering/status": {
      "get": {
        "tags": [
          "Steering"
        ],
        "parameters": [
          {
            "name": "repo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/steering/refresh": {
      "post": {
        "tags": [
          "Steering"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/RefreshRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/steering/agreement": {
      "get": {
        "tags": [
          "Steering"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases": {
      "get": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workspace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "split",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/queue": {
      "get": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "workspace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}": {
      "get": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/validations": {
      "get": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/oracle": {
      "get": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/instruction": {
      "put": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/assertions": {
      "post": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssertionsBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/approval": {
      "post": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/approvals": {
      "post": {
        "tags": [
          "Cases"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkApproval"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/rejection": {
      "post": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectionBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/cases/{id}/retirement": {
      "post": {
        "tags": [
          "Cases"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/estimate": {
      "post": {
        "tags": [
          "Evaluations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations": {
      "post": {
        "tags": [
          "Evaluations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "workspace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/{id}/confirmation": {
      "post": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/{id}/cancellation": {
      "post": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CancelBody"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/{id}": {
      "get": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/{id}/cases": {
      "get": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/{id}/runs/{runId}": {
      "get": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/evaluations/offer": {
      "get": {
        "tags": [
          "Evaluations"
        ],
        "parameters": [
          {
            "name": "workspace",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ci/baselines": {
      "post": {
        "tags": [
          "Harness CI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaselineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ci/pull-requests": {
      "post": {
        "tags": [
          "Harness CI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PullRequestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/ci/runs/{id}": {
      "get": {
        "tags": [
          "Harness CI"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/patterns": {
      "get": {
        "tags": [
          "Patterns"
        ],
        "parameters": [
          {
            "name": "workspace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/patterns/{id}": {
      "get": {
        "tags": [
          "Patterns"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/patterns/{id}/acknowledgement": {
      "post": {
        "tags": [
          "Patterns"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/patterns/{id}/dismissal": {
      "post": {
        "tags": [
          "Patterns"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DismissBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/proposals": {
      "get": {
        "tags": [
          "Proposals"
        ],
        "parameters": [
          {
            "name": "workspace",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/proposals/{id}": {
      "get": {
        "tags": [
          "Proposals"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/proposals/{id}/rejection": {
      "post": {
        "tags": [
          "Proposals"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ingest/v1/config": {
      "get": {
        "tags": [
          "Ingest"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ingest/v1/sessions": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaptureBatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/logs": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/metrics": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/jobs/lease": {
      "post": {
        "tags": [
          "Worker"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/jobs/{id}/heartbeat": {
      "post": {
        "tags": [
          "Worker"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkerRef"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/jobs/{id}/complete": {
      "post": {
        "tags": [
          "Worker"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/jobs/{id}/fail": {
      "post": {
        "tags": [
          "Worker"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FailRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/blobs/{hash}": {
      "put": {
        "tags": [
          "Worker"
        ],
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "byte"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Worker"
        ],
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/sessions": {
      "post": {
        "tags": [
          "Worker"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaptureBatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/attributions": {
      "post": {
        "tags": [
          "Worker"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Attributions"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/cases/{id}/source": {
      "get": {
        "tags": [
          "Worker"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/patterns/{id}/evidence": {
      "get": {
        "tags": [
          "Casebox.Server"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/steering/windows": {
      "post": {
        "tags": [
          "Worker"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WindowsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/worker/v1/steering/examples": {
      "get": {
        "tags": [
          "Worker"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AgentSettings": {
        "required": [
          "maxTurns",
          "timeoutMinutes",
          "tokenCap"
        ],
        "type": "object",
        "properties": {
          "maxTurns": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "timeoutMinutes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tokenCap": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          }
        }
      },
      "Approve": {
        "required": [
          "userCode"
        ],
        "type": "object",
        "properties": {
          "userCode": {
            "type": "string"
          }
        }
      },
      "Assertion": {
        "required": [
          "kind",
          "path",
          "pattern"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "path": {
            "type": [
              "null",
              "string"
            ]
          },
          "pattern": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "AssertionsBody": {
        "required": [
          "assertions",
          "judge"
        ],
        "type": "object",
        "properties": {
          "assertions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Assertion"
            }
          },
          "judge": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/JudgeQuestion"
            }
          }
        }
      },
      "AttributedCommit": {
        "required": [
          "sha",
          "files"
        ],
        "type": "object",
        "properties": {
          "sha": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributedFile"
            }
          }
        }
      },
      "AttributedFile": {
        "required": [
          "path",
          "agent",
          "model",
          "ranges"
        ],
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "agent": {
            "type": [
              "null",
              "string"
            ]
          },
          "model": {
            "type": [
              "null",
              "string"
            ]
          },
          "ranges": {
            "type": "string"
          }
        }
      },
      "Attributions": {
        "required": [
          "repo",
          "commits"
        ],
        "type": "object",
        "properties": {
          "repo": {
            "type": "string"
          },
          "commits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributedCommit"
            }
          }
        }
      },
      "BaselineRequest": {
        "required": [
          "workspace",
          "spec",
          "repeats",
          "prices",
          "capUsd",
          "globs",
          "shared"
        ],
        "type": "object",
        "properties": {
          "workspace": {
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/HarnessSpec"
          },
          "repeats": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "prices": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "capUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "globs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "shared": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Budgets": {
        "required": [
          "monthlyUsd",
          "perEvaluationUsd",
          "confirmAboveUsd"
        ],
        "type": "object",
        "properties": {
          "monthlyUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "perEvaluationUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "confirmAboveUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "BulkApproval": {
        "required": [
          "ids"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CancelBody": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CaptureBatch": {
        "required": [
          "session",
          "events"
        ],
        "type": "object",
        "properties": {
          "session": {
            "$ref": "#/components/schemas/CapturedSession"
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CapturedEvent"
            }
          }
        }
      },
      "CapturedEvent": {
        "required": [
          "seq",
          "at",
          "kind",
          "text",
          "tool",
          "usage",
          "attrs"
        ],
        "type": "object",
        "properties": {
          "seq": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "at": {
            "type": "string",
            "format": "date-time"
          },
          "kind": {
            "type": "string"
          },
          "text": {
            "type": [
              "null",
              "string"
            ]
          },
          "tool": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CapturedTool"
              }
            ]
          },
          "usage": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CapturedUsage"
              }
            ]
          },
          "attrs": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "CapturedHarness": {
        "required": [
          "hash",
          "files"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CapturedSession": {
        "required": [
          "id",
          "agent",
          "agentVersion",
          "model",
          "repo",
          "branch",
          "headStart",
          "headEnd",
          "startedAt",
          "endedAt",
          "source",
          "workItem",
          "person"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "agent": {
            "type": "string"
          },
          "agentVersion": {
            "type": [
              "null",
              "string"
            ]
          },
          "model": {
            "type": [
              "null",
              "string"
            ]
          },
          "repo": {
            "type": [
              "null",
              "string"
            ]
          },
          "branch": {
            "type": [
              "null",
              "string"
            ]
          },
          "headStart": {
            "type": [
              "null",
              "string"
            ]
          },
          "headEnd": {
            "type": [
              "null",
              "string"
            ]
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "endedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "workItem": {
            "type": [
              "null",
              "string"
            ]
          },
          "person": {
            "type": "string"
          },
          "harness": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CapturedHarness"
              }
            ]
          },
          "commits": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "baseCommit": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CapturedTool": {
        "required": [
          "name",
          "status",
          "files"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "files": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CapturedUsage": {
        "required": [
          "inputTokens",
          "outputTokens",
          "cacheReadTokens",
          "cacheWriteTokens",
          "costUsd"
        ],
        "type": "object",
        "properties": {
          "inputTokens": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "outputTokens": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "cacheReadTokens": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "cacheWriteTokens": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "costUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CommandTemplate": {
        "required": [
          "template",
          "logGlob",
          "logFormat"
        ],
        "type": "object",
        "properties": {
          "template": {
            "type": "string"
          },
          "logGlob": {
            "type": [
              "null",
              "string"
            ]
          },
          "logFormat": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CompleteRequest": {
        "required": [
          "workerId",
          "result"
        ],
        "type": "object",
        "properties": {
          "workerId": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/JsonElement"
          }
        }
      },
      "ConnectGitHub": {
        "required": [
          "mode",
          "token",
          "appId",
          "installationId",
          "privateKey",
          "webhookSecret"
        ],
        "type": "object",
        "properties": {
          "mode": {
            "type": "string"
          },
          "token": {
            "type": [
              "null",
              "string"
            ]
          },
          "appId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "installationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "privateKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "webhookSecret": {
            "type": [
              "null",
              "string"
            ]
          },
          "issues": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "ConnectJira": {
        "required": [
          "url",
          "token",
          "projects"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CreateWorkspace": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "DismissBody": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "EraseRequest": {
        "required": [
          "identity"
        ],
        "type": "object",
        "properties": {
          "identity": {
            "type": "string"
          }
        }
      },
      "EvaluationRequest": {
        "required": [
          "workspace",
          "baseline",
          "candidate",
          "split",
          "caseIds",
          "maxCases",
          "repeats",
          "delta",
          "capUsd",
          "purpose",
          "prices"
        ],
        "type": "object",
        "properties": {
          "workspace": {
            "type": "string"
          },
          "baseline": {
            "$ref": "#/components/schemas/HarnessSpec"
          },
          "candidate": {
            "$ref": "#/components/schemas/HarnessSpec"
          },
          "split": {
            "type": [
              "null",
              "string"
            ]
          },
          "caseIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxCases": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "repeats": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "delta": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?(?:[eE][\u002B-]?\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "capUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "purpose": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Purpose"
              }
            ]
          },
          "prices": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/Price"
            }
          }
        }
      },
      "FailRequest": {
        "required": [
          "workerId",
          "error",
          "retryable"
        ],
        "type": "object",
        "properties": {
          "workerId": {
            "type": "string"
          },
          "error": {
            "type": "string"
          },
          "retryable": {
            "type": "boolean"
          }
        }
      },
      "HarnessBody": {
        "required": [
          "globs",
          "shared"
        ],
        "type": "object",
        "properties": {
          "globs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "shared": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "HarnessSpec": {
        "required": [
          "agent",
          "agentVersion",
          "model",
          "effort",
          "harness",
          "settings",
          "command"
        ],
        "type": "object",
        "properties": {
          "agent": {
            "type": "string"
          },
          "agentVersion": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "effort": {
            "type": [
              "null",
              "string"
            ]
          },
          "harness": {
            "type": "string"
          },
          "settings": {
            "$ref": "#/components/schemas/AgentSettings"
          },
          "command": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CommandTemplate"
              }
            ]
          },
          "shared": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/SharedHarness"
              }
            ]
          },
          "overrides": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "InstructionBody": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          }
        }
      },
      "IssueToken": {
        "required": [
          "kind",
          "name"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/TokenKind"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "JsonElement": {},
      "JudgeQuestion": {
        "required": [
          "question"
        ],
        "type": "object",
        "properties": {
          "question": {
            "type": "string"
          }
        }
      },
      "LeaseRequest": {
        "required": [
          "workerId",
          "version",
          "kinds"
        ],
        "type": "object",
        "properties": {
          "workerId": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "kinds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "scope": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "LocalLogin": {
        "required": [
          "password"
        ],
        "type": "object",
        "properties": {
          "password": {
            "type": "string"
          }
        }
      },
      "OrgSettings": {
        "required": [
          "promptMode",
          "k",
          "pseudonymPeriod",
          "budgets"
        ],
        "type": "object",
        "properties": {
          "promptMode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PromptMode"
              }
            ]
          },
          "k": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pseudonymPeriod": {
            "$ref": "#/components/schemas/PseudonymPeriod"
          },
          "budgets": {
            "$ref": "#/components/schemas/Budgets"
          },
          "retentionMonths": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "traceRetentionDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "proposerShare": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "Price": {
        "required": [
          "input",
          "output",
          "cacheRead",
          "cacheWrite"
        ],
        "type": "object",
        "properties": {
          "input": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "output": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "cacheRead": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "cacheWrite": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PromptMode": {
        "enum": [
          "off",
          "redacted",
          "full",
          null
        ]
      },
      "ProposeRecipe": {
        "required": [
          "recipe"
        ],
        "type": "object",
        "properties": {
          "recipe": {
            "$ref": "#/components/schemas/JsonElement"
          }
        }
      },
      "ProposerRequest": {
        "required": [
          "workspace",
          "spec",
          "prices",
          "repeats",
          "budgetRuns",
          "pattern",
          "repo"
        ],
        "type": "object",
        "properties": {
          "workspace": {
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/HarnessSpec"
          },
          "prices": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "repeats": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "budgetRuns": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pattern": {
            "type": [
              "null",
              "string"
            ]
          },
          "repo": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "PseudonymPeriod": {
        "enum": [
          "month",
          "quarter",
          "year"
        ]
      },
      "PullRequestRequest": {
        "required": [
          "workspace",
          "repo",
          "number",
          "headSha",
          "baseSha",
          "spec",
          "onSharedHarness",
          "size",
          "repeats",
          "prices",
          "serverUrl",
          "capUsd",
          "globs",
          "shared"
        ],
        "type": "object",
        "properties": {
          "workspace": {
            "type": [
              "null",
              "string"
            ]
          },
          "repo": {
            "type": "string"
          },
          "number": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "headSha": {
            "type": "string"
          },
          "baseSha": {
            "type": [
              "null",
              "string"
            ]
          },
          "spec": {
            "$ref": "#/components/schemas/HarnessSpec"
          },
          "onSharedHarness": {
            "type": "boolean"
          },
          "size": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "repeats": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "prices": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "serverUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "capUsd": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d\u002B)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "globs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "shared": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Purpose": {
        "enum": [
          "compare",
          "harness_vs_none",
          "harness_ci",
          "gate",
          "baseline",
          "search",
          null
        ]
      },
      "Reassign": {
        "required": [
          "workItem"
        ],
        "type": "object",
        "properties": {
          "workItem": {
            "type": "string"
          }
        }
      },
      "RecipeConfirmation": {
        "required": [
          "hash"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          }
        }
      },
      "RecipeValidation": {
        "required": [
          "hash",
          "passed",
          "reportBlob"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          },
          "passed": {
            "type": "boolean"
          },
          "reportBlob": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RefreshRequest": {
        "required": [
          "repo"
        ],
        "type": "object",
        "properties": {
          "repo": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RejectBody": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RejectionBody": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          }
        }
      },
      "RelabelRequest": {
        "required": [
          "ref",
          "intent",
          "wentWrong",
          "wentWrongLabel",
          "prevention"
        ],
        "type": "object",
        "properties": {
          "ref": {
            "type": "string"
          },
          "intent": {
            "type": "string"
          },
          "wentWrong": {
            "type": [
              "null",
              "string"
            ]
          },
          "wentWrongLabel": {
            "type": [
              "null",
              "string"
            ]
          },
          "prevention": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RepoBody": {
        "required": [
          "repo"
        ],
        "type": "object",
        "properties": {
          "repo": {
            "type": "string"
          }
        }
      },
      "Role": {
        "enum": [
          "viewer",
          "member",
          "admin",
          "owner"
        ]
      },
      "RoleChange": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "role": {
            "$ref": "#/components/schemas/Role"
          }
        }
      },
      "SharedHarness": {
        "required": [
          "repo",
          "ref"
        ],
        "type": "object",
        "properties": {
          "repo": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          }
        }
      },
      "TokenKind": {
        "enum": [
          "worker",
          "ingest",
          "cli",
          "ci"
        ]
      },
      "TokenRequest": {
        "required": [
          "deviceCode"
        ],
        "type": "object",
        "properties": {
          "deviceCode": {
            "type": "string"
          }
        }
      },
      "WindowsRequest": {
        "required": [
          "stream",
          "interventionIds",
          "taskFor"
        ],
        "type": "object",
        "properties": {
          "stream": {
            "type": "string"
          },
          "interventionIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "taskFor": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "WorkerRef": {
        "required": [
          "workerId"
        ],
        "type": "object",
        "properties": {
          "workerId": {
            "type": "string"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Auth"
    },
    {
      "name": "Tokens"
    },
    {
      "name": "Privacy"
    },
    {
      "name": "Work"
    },
    {
      "name": "Cases"
    },
    {
      "name": "Proposals"
    },
    {
      "name": "Accounts"
    },
    {
      "name": "Organisation"
    },
    {
      "name": "Workspaces"
    },
    {
      "name": "Integrations"
    },
    {
      "name": "Steering"
    },
    {
      "name": "Evaluations"
    },
    {
      "name": "Harness CI"
    },
    {
      "name": "Patterns"
    },
    {
      "name": "Ingest"
    },
    {
      "name": "Worker"
    },
    {
      "name": "Casebox.Server"
    }
  ]
}
