{
  "components": {
    "schemas": {
      "AdvisorDisclosureConfirmationOut": {
        "additionalProperties": false,
        "properties": {
          "authorization_id": {
            "pattern": "^[0-9a-f]{32}$",
            "title": "Authorization Id",
            "type": "string"
          },
          "confirmation_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Confirmation Digest",
            "type": "string"
          },
          "consent_approved_at": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$",
            "title": "Consent Approved At",
            "type": "string"
          },
          "destination": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Destination",
            "type": "string"
          },
          "disclosure_mode": {
            "const": "finding_evidence",
            "title": "Disclosure Mode",
            "type": "string"
          },
          "finding_id": {
            "minimum": 1.0,
            "title": "Finding Id",
            "type": "integer"
          },
          "finding_revision": {
            "minimum": 1.0,
            "title": "Finding Revision",
            "type": "integer"
          },
          "model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Model Digest",
            "type": "string"
          },
          "payload_categories": {
            "items": {
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Payload Categories",
            "type": "array"
          },
          "prompt_sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "provider_config_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Provider Config Digest",
            "type": "string"
          },
          "provider_config_revision": {
            "minimum": 1.0,
            "title": "Provider Config Revision",
            "type": "integer"
          },
          "provider_id": {
            "pattern": "^[a-z][a-z0-9-]{0,39}$",
            "title": "Provider Id",
            "type": "string"
          },
          "schema": {
            "const": "lomo-advisor-run-confirmation/v1",
            "title": "Schema",
            "type": "string"
          },
          "transport": {
            "enum": [
              "direct",
              "ssh"
            ],
            "title": "Transport",
            "type": "string"
          }
        },
        "required": [
          "schema",
          "authorization_id",
          "provider_id",
          "provider_config_revision",
          "provider_config_digest",
          "transport",
          "destination",
          "disclosure_mode",
          "payload_categories",
          "model",
          "model_digest",
          "consent_approved_at",
          "finding_id",
          "finding_revision",
          "prompt_sha256",
          "confirmation_digest"
        ],
        "title": "AdvisorDisclosureConfirmationOut",
        "type": "object"
      },
      "AdvisorDisclosurePacketEvidenceOut": {
        "additionalProperties": false,
        "properties": {
          "code_snippet": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code Snippet"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          }
        },
        "required": [
          "metadata"
        ],
        "title": "AdvisorDisclosurePacketEvidenceOut",
        "type": "object"
      },
      "AdvisorDisclosurePacketFindingOut": {
        "additionalProperties": false,
        "properties": {
          "display_id": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Display Id",
            "type": "string"
          },
          "fingerprint": {
            "maxLength": 128,
            "title": "Fingerprint",
            "type": "string"
          },
          "id": {
            "minimum": 1.0,
            "title": "Id",
            "type": "integer"
          },
          "message": {
            "maxLength": 4000,
            "title": "Message",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 160,
            "title": "Rule Id",
            "type": "string"
          },
          "scanner": {
            "maxLength": 80,
            "title": "Scanner",
            "type": "string"
          },
          "severity": {
            "maxLength": 30,
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "id",
          "display_id",
          "scanner",
          "rule_id",
          "severity",
          "message",
          "fingerprint"
        ],
        "title": "AdvisorDisclosurePacketFindingOut",
        "type": "object"
      },
      "AdvisorDisclosurePacketLocationOut": {
        "additionalProperties": false,
        "properties": {
          "end_column": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Column"
          },
          "end_line": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Line"
          },
          "file_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "File Path",
            "type": "string"
          },
          "start_column": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Column"
          },
          "start_line": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Line"
          }
        },
        "required": [
          "file_path"
        ],
        "title": "AdvisorDisclosurePacketLocationOut",
        "type": "object"
      },
      "AdvisorDisclosurePacketOut": {
        "additionalProperties": false,
        "properties": {
          "finding": {
            "$ref": "#/components/schemas/AdvisorDisclosurePacketFindingOut"
          },
          "location": {
            "$ref": "#/components/schemas/AdvisorDisclosurePacketLocationOut"
          },
          "repo_context": {
            "$ref": "#/components/schemas/AdvisorDisclosurePacketRepoContextOut"
          },
          "scanner_evidence": {
            "$ref": "#/components/schemas/AdvisorDisclosurePacketEvidenceOut"
          },
          "schema_version": {
            "const": 1,
            "title": "Schema Version",
            "type": "integer"
          }
        },
        "required": [
          "schema_version",
          "finding",
          "location",
          "repo_context",
          "scanner_evidence"
        ],
        "title": "AdvisorDisclosurePacketOut",
        "type": "object"
      },
      "AdvisorDisclosurePacketRepoContextOut": {
        "additionalProperties": false,
        "properties": {
          "base_ref": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Ref"
          },
          "head_ref": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Head Ref"
          },
          "mode": {
            "maxLength": 40,
            "title": "Mode",
            "type": "string"
          },
          "project": {
            "maxLength": 120,
            "title": "Project",
            "type": "string"
          },
          "remote_url": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Url"
          },
          "repo_path": {
            "maxLength": 4096,
            "title": "Repo Path",
            "type": "string"
          },
          "scan_id": {
            "minimum": 1.0,
            "title": "Scan Id",
            "type": "integer"
          }
        },
        "required": [
          "project",
          "repo_path",
          "scan_id",
          "mode"
        ],
        "title": "AdvisorDisclosurePacketRepoContextOut",
        "type": "object"
      },
      "AdvisorDisclosurePreviewOut": {
        "additionalProperties": false,
        "properties": {
          "confirmation": {
            "$ref": "#/components/schemas/AdvisorDisclosureConfirmationOut"
          },
          "packet": {
            "$ref": "#/components/schemas/AdvisorDisclosurePacketOut"
          },
          "packet_utf8_bytes": {
            "maximum": 262144.0,
            "minimum": 2.0,
            "title": "Packet Utf8 Bytes",
            "type": "integer"
          }
        },
        "required": [
          "confirmation",
          "packet",
          "packet_utf8_bytes"
        ],
        "title": "AdvisorDisclosurePreviewOut",
        "type": "object"
      },
      "AdvisorDisclosurePreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "provider_id": {
            "anyOf": [
              {
                "pattern": "^[a-z][a-z0-9-]{0,39}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Id"
          }
        },
        "required": [
          "expected_revision"
        ],
        "title": "AdvisorDisclosurePreviewRequest",
        "type": "object"
      },
      "AdvisorLocalCatalogOut": {
        "additionalProperties": false,
        "properties": {
          "models": {
            "items": {
              "$ref": "#/components/schemas/AdvisorLocalModelOut"
            },
            "maxItems": 200,
            "title": "Models",
            "type": "array"
          },
          "recommended_model": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recommended Model"
          },
          "schema": {
            "const": "lomo-advisor-local-catalog/v1",
            "title": "Schema",
            "type": "string"
          },
          "source": {
            "const": "dedicated_local_connector",
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "schema",
          "source",
          "models"
        ],
        "title": "AdvisorLocalCatalogOut",
        "type": "object"
      },
      "AdvisorLocalModelOut": {
        "additionalProperties": false,
        "properties": {
          "digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "size_bytes": {
            "maximum": 9007199254740991.0,
            "minimum": 0.0,
            "title": "Size Bytes",
            "type": "integer"
          },
          "storage": {
            "enum": [
              "local_weights",
              "cloud_stub"
            ],
            "title": "Storage",
            "type": "string"
          }
        },
        "required": [
          "name",
          "digest",
          "size_bytes",
          "storage"
        ],
        "title": "AdvisorLocalModelOut",
        "type": "object"
      },
      "AdvisorProviderActivationApproval": {
        "additionalProperties": false,
        "properties": {
          "destination": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Destination",
            "type": "string"
          },
          "disclosure_mode": {
            "const": "finding_evidence",
            "title": "Disclosure Mode",
            "type": "string"
          },
          "model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Model Digest",
            "type": "string"
          },
          "payload_categories": {
            "items": {
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Payload Categories",
            "type": "array"
          },
          "provider_config_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Provider Config Digest",
            "type": "string"
          },
          "provider_config_revision": {
            "minimum": 1.0,
            "title": "Provider Config Revision",
            "type": "integer"
          },
          "provider_id": {
            "pattern": "^[a-z][a-z0-9-]{0,39}$",
            "title": "Provider Id",
            "type": "string"
          },
          "schema": {
            "const": "lomo-advisor-activation-approval/v1",
            "title": "Schema",
            "type": "string"
          },
          "transport": {
            "enum": [
              "direct",
              "ssh"
            ],
            "title": "Transport",
            "type": "string"
          }
        },
        "required": [
          "schema",
          "provider_id",
          "provider_config_revision",
          "provider_config_digest",
          "transport",
          "destination",
          "disclosure_mode",
          "payload_categories",
          "model",
          "model_digest"
        ],
        "title": "AdvisorProviderActivationApproval",
        "type": "object"
      },
      "AdvisorProviderCollectionOut": {
        "additionalProperties": false,
        "properties": {
          "active_provider_id": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active Provider Id"
          },
          "providers": {
            "items": {
              "$ref": "#/components/schemas/AdvisorProviderOut"
            },
            "maxItems": 8,
            "title": "Providers",
            "type": "array"
          },
          "resolution": {
            "$ref": "#/components/schemas/AdvisorProviderResolutionOut"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "providers",
          "resolution"
        ],
        "title": "AdvisorProviderCollectionOut",
        "type": "object"
      },
      "AdvisorProviderCommandRequest": {
        "additionalProperties": false,
        "properties": {
          "acknowledge_source_disclosure": {
            "default": false,
            "title": "Acknowledge Source Disclosure",
            "type": "boolean"
          },
          "action": {
            "enum": [
              "test",
              "activate",
              "disconnect"
            ],
            "title": "Action",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "source_disclosure_approval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdvisorProviderActivationApproval"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "expected_revision",
          "action"
        ],
        "title": "AdvisorProviderCommandRequest",
        "type": "object"
      },
      "AdvisorProviderDeleteRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_revision"
        ],
        "title": "AdvisorProviderDeleteRequest",
        "type": "object"
      },
      "AdvisorProviderInput": {
        "additionalProperties": false,
        "properties": {
          "base_url": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Url"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "id": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9-]{0,39}$",
            "title": "Id",
            "type": "string"
          },
          "model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Model Digest",
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "priority": {
            "maximum": 7.0,
            "minimum": 0.0,
            "title": "Priority",
            "type": "integer"
          },
          "ssh_host": {
            "anyOf": [
              {
                "maxLength": 253,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Host"
          },
          "ssh_port": {
            "anyOf": [
              {
                "const": 22,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Port"
          },
          "ssh_user": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh User"
          },
          "transport": {
            "enum": [
              "local",
              "direct",
              "ssh"
            ],
            "title": "Transport",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "transport",
          "priority",
          "enabled",
          "model",
          "model_digest"
        ],
        "title": "AdvisorProviderInput",
        "type": "object"
      },
      "AdvisorProviderOut": {
        "additionalProperties": false,
        "properties": {
          "authorization": {
            "enum": [
              "not_required",
              "required",
              "authorized"
            ],
            "title": "Authorization",
            "type": "string"
          },
          "base_url": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Url"
          },
          "config_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Config Digest",
            "type": "string"
          },
          "config_revision": {
            "minimum": 1.0,
            "title": "Config Revision",
            "type": "integer"
          },
          "content_disclosure_approved": {
            "title": "Content Disclosure Approved",
            "type": "boolean"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "id": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9-]{0,39}$",
            "title": "Id",
            "type": "string"
          },
          "last_activity_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Activity At"
          },
          "model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Model Digest",
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "priority": {
            "maximum": 7.0,
            "minimum": 0.0,
            "title": "Priority",
            "type": "integer"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 240,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "reason_code": {
            "anyOf": [
              {
                "maxLength": 80,
                "pattern": "^[a-z][a-z0-9_]{0,79}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason Code"
          },
          "remediation": {
            "enum": [
              "none",
              "authorize",
              "test",
              "activate",
              "retry",
              "refresh"
            ],
            "title": "Remediation",
            "type": "string"
          },
          "ssh_host": {
            "anyOf": [
              {
                "maxLength": 253,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Host"
          },
          "ssh_port": {
            "anyOf": [
              {
                "const": 22,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Port"
          },
          "ssh_user": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh User"
          },
          "status": {
            "enum": [
              "idle",
              "testing",
              "available",
              "unavailable",
              "active",
              "disconnected"
            ],
            "title": "Status",
            "type": "string"
          },
          "transport": {
            "enum": [
              "local",
              "direct",
              "ssh"
            ],
            "title": "Transport",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "transport",
          "priority",
          "enabled",
          "model",
          "model_digest",
          "authorization",
          "status",
          "remediation",
          "content_disclosure_approved",
          "config_revision",
          "config_digest",
          "eligible"
        ],
        "title": "AdvisorProviderOut",
        "type": "object"
      },
      "AdvisorProviderReceiptOut": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": [
              "local",
              "direct",
              "ssh"
            ],
            "title": "Kind",
            "type": "string"
          },
          "model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Model Digest",
            "type": "string"
          },
          "provider_id": {
            "pattern": "^[a-z][a-z0-9-]{0,39}$",
            "title": "Provider Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "route": {
            "enum": [
              "local",
              "direct",
              "ssh"
            ],
            "title": "Route",
            "type": "string"
          },
          "schema": {
            "const": "lomo-advisor-provider-receipt/v1",
            "title": "Schema",
            "type": "string"
          },
          "status": {
            "const": "ready",
            "title": "Status",
            "type": "string"
          },
          "tested_at": {
            "format": "date-time",
            "title": "Tested At",
            "type": "string"
          }
        },
        "required": [
          "schema",
          "provider_id",
          "kind",
          "route",
          "model",
          "model_digest",
          "status",
          "tested_at",
          "revision"
        ],
        "title": "AdvisorProviderReceiptOut",
        "type": "object"
      },
      "AdvisorProviderResolutionOut": {
        "additionalProperties": false,
        "properties": {
          "eligible_provider_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Eligible Provider Ids",
            "type": "array"
          },
          "provider_id": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Id"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 240,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "transport": {
            "enum": [
              "local",
              "direct",
              "ssh",
              "unavailable"
            ],
            "title": "Transport",
            "type": "string"
          }
        },
        "required": [
          "transport",
          "eligible_provider_ids"
        ],
        "title": "AdvisorProviderResolutionOut",
        "type": "object"
      },
      "AdvisorProviderWriteRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "provider": {
            "$ref": "#/components/schemas/AdvisorProviderInput"
          }
        },
        "required": [
          "expected_revision",
          "provider"
        ],
        "title": "AdvisorProviderWriteRequest",
        "type": "object"
      },
      "AdvisorTriageProviderPin": {
        "additionalProperties": false,
        "properties": {
          "model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Model Digest",
            "type": "string"
          },
          "provider_collection_revision": {
            "minimum": 1.0,
            "title": "Provider Collection Revision",
            "type": "integer"
          },
          "provider_config_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Provider Config Digest",
            "type": "string"
          },
          "provider_config_revision": {
            "minimum": 1.0,
            "title": "Provider Config Revision",
            "type": "integer"
          },
          "provider_id": {
            "pattern": "^[a-z][a-z0-9-]{0,39}$",
            "title": "Provider Id",
            "type": "string"
          },
          "transport": {
            "enum": [
              "local",
              "direct",
              "ssh"
            ],
            "title": "Transport",
            "type": "string"
          }
        },
        "required": [
          "provider_collection_revision",
          "provider_id",
          "transport",
          "provider_config_revision",
          "provider_config_digest",
          "model",
          "model_digest"
        ],
        "title": "AdvisorTriageProviderPin",
        "type": "object"
      },
      "BootstrapRequest": {
        "additionalProperties": false,
        "properties": {
          "bootstrap_token": {
            "maxLength": 256,
            "minLength": 1,
            "title": "Bootstrap Token",
            "type": "string"
          }
        },
        "required": [
          "bootstrap_token"
        ],
        "title": "BootstrapRequest",
        "type": "object"
      },
      "BrowserMemberResponse": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current": {
            "title": "Current",
            "type": "boolean"
          },
          "id": {
            "pattern": "^kbm1_[A-Za-z0-9_-]{32}$",
            "title": "Id",
            "type": "string"
          },
          "last_seen_at": {
            "format": "date-time",
            "title": "Last Seen At",
            "type": "string"
          },
          "member_kind": {
            "enum": [
              "owner",
              "browser",
              "ide_dashboard"
            ],
            "title": "Member Kind",
            "type": "string"
          },
          "member_name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Member Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "member_name",
          "member_kind",
          "created_at",
          "last_seen_at",
          "current"
        ],
        "title": "BrowserMemberResponse",
        "type": "object"
      },
      "BrowserMemberRevocationRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_created_at": {
            "format": "date-time",
            "title": "Expected Created At",
            "type": "string"
          }
        },
        "required": [
          "expected_created_at"
        ],
        "title": "BrowserMemberRevocationRequest",
        "type": "object"
      },
      "BrowserPairingTokenIssueResponse": {
        "properties": {
          "bootstrap_token": {
            "title": "Bootstrap Token",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "expires_in": {
            "title": "Expires In",
            "type": "integer"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          }
        },
        "required": [
          "bootstrap_token",
          "issued_at",
          "expires_at",
          "expires_in"
        ],
        "title": "BrowserPairingTokenIssueResponse",
        "type": "object"
      },
      "CapabilityActivationResponse": {
        "properties": {
          "client_slot": {
            "title": "Client Slot",
            "type": "string"
          },
          "generation": {
            "title": "Generation",
            "type": "integer"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          }
        },
        "required": [
          "client_slot",
          "generation",
          "scopes"
        ],
        "title": "CapabilityActivationResponse",
        "type": "object"
      },
      "CapabilityRevocationRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_active_generation": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Active Generation"
          },
          "expected_latest_generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Latest Generation",
            "type": "integer"
          },
          "expected_pending_generation": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Pending Generation"
          }
        },
        "required": [
          "expected_latest_generation",
          "expected_active_generation",
          "expected_pending_generation"
        ],
        "title": "CapabilityRevocationRequest",
        "type": "object"
      },
      "CommitTree": {
        "additionalProperties": false,
        "properties": {
          "commit_oid": {
            "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
            "title": "Commit Oid",
            "type": "string"
          },
          "tree_oid": {
            "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
            "title": "Tree Oid",
            "type": "string"
          }
        },
        "required": [
          "commit_oid",
          "tree_oid"
        ],
        "title": "CommitTree",
        "type": "object"
      },
      "FindingBulkAction": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "triage",
              "delete",
              "open",
              "needs_review",
              "gate_exempt",
              "accepted_risk",
              "ignore",
              "false_positive",
              "fixed"
            ],
            "title": "Action",
            "type": "string"
          },
          "advisor_provider_pin": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdvisorTriageProviderPin"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_revisions": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "maxProperties": 200,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revisions"
          },
          "finding_ids": {
            "items": {
              "type": "integer"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Finding Ids",
            "type": "array"
          },
          "model": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "required": [
          "finding_ids",
          "action"
        ],
        "title": "FindingBulkAction",
        "type": "object"
      },
      "FindingDetailOut": {
        "description": "Exact finding evidence bound to its authoritative collection revision.",
        "properties": {
          "ai_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Confidence"
          },
          "ai_fix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Fix"
          },
          "ai_reasoning": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Reasoning"
          },
          "ai_verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Verdict"
          },
          "code_snippet": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code Snippet"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "display_id": {
            "title": "Display Id",
            "type": "string"
          },
          "end_column": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Column"
          },
          "end_line": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Line"
          },
          "file_path": {
            "maxLength": 4096,
            "title": "File Path",
            "type": "string"
          },
          "findings_revision": {
            "minimum": 1.0,
            "title": "Findings Revision",
            "type": "integer"
          },
          "fingerprint": {
            "title": "Fingerprint",
            "type": "string"
          },
          "first_seen_display_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen Display Id"
          },
          "first_seen_scan_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen Scan Id"
          },
          "gate_effect": {
            "enum": [
              "blocking",
              "non_blocking",
              "excluded"
            ],
            "title": "Gate Effect",
            "type": "string"
          },
          "gate_exempt": {
            "default": false,
            "title": "Gate Exempt",
            "type": "boolean"
          },
          "gate_exempt_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Exempt Reason"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_repeat": {
            "default": false,
            "title": "Is Repeat",
            "type": "boolean"
          },
          "lifecycle_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle Reason"
          },
          "lifecycle_status": {
            "default": "open",
            "title": "Lifecycle Status",
            "type": "string"
          },
          "lifecycle_updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle Updated At"
          },
          "message": {
            "maxLength": 4000,
            "title": "Message",
            "type": "string"
          },
          "metadata_json": {
            "additionalProperties": true,
            "title": "Metadata Json",
            "type": "object"
          },
          "occurrence_count": {
            "default": 1,
            "title": "Occurrence Count",
            "type": "integer"
          },
          "revision": {
            "default": 1,
            "title": "Revision",
            "type": "integer"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "scan_finding_number": {
            "title": "Scan Finding Number",
            "type": "integer"
          },
          "scan_id": {
            "title": "Scan Id",
            "type": "integer"
          },
          "scanner": {
            "title": "Scanner",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "start_column": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Column"
          },
          "start_line": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Line"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "suppression_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suppression Reason"
          }
        },
        "required": [
          "id",
          "scan_id",
          "scan_finding_number",
          "display_id",
          "scanner",
          "rule_id",
          "severity",
          "file_path",
          "start_line",
          "start_column",
          "end_line",
          "end_column",
          "message",
          "code_snippet",
          "fingerprint",
          "metadata_json",
          "ai_verdict",
          "ai_confidence",
          "ai_reasoning",
          "ai_fix",
          "suppressed",
          "suppression_reason",
          "gate_effect",
          "created_at",
          "findings_revision"
        ],
        "title": "FindingDetailOut",
        "type": "object"
      },
      "FindingDiagnosticOut": {
        "additionalProperties": false,
        "properties": {
          "display_id": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Display Id",
            "type": "string"
          },
          "end_column": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Column"
          },
          "end_line": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Line"
          },
          "file_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "File Path",
            "type": "string"
          },
          "id": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Id",
            "type": "integer"
          },
          "message": {
            "maxLength": 4000,
            "title": "Message",
            "type": "string"
          },
          "revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "scan_finding_number": {
            "maximum": 50000.0,
            "minimum": 1.0,
            "title": "Scan Finding Number",
            "type": "integer"
          },
          "scanner": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Scanner",
            "type": "string"
          },
          "severity": {
            "enum": [
              "critical",
              "high",
              "medium",
              "low",
              "info"
            ],
            "title": "Severity",
            "type": "string"
          },
          "start_column": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Column"
          },
          "start_line": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Line"
          }
        },
        "required": [
          "id",
          "scan_finding_number",
          "display_id",
          "scanner",
          "severity",
          "file_path",
          "start_line",
          "start_column",
          "end_line",
          "end_column",
          "message",
          "revision"
        ],
        "title": "FindingDiagnosticOut",
        "type": "object"
      },
      "FindingDiagnosticPageOut": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/FindingDiagnosticOut"
            },
            "maxItems": 200,
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "scan_id": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Scan Id",
            "type": "integer"
          },
          "total": {
            "maximum": 50000.0,
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "truncated": {
            "title": "Truncated",
            "type": "boolean"
          }
        },
        "required": [
          "scan_id",
          "items",
          "total",
          "truncated",
          "next_cursor",
          "revision"
        ],
        "title": "FindingDiagnosticPageOut",
        "type": "object"
      },
      "FindingFileAggregateOut": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "minimum": 0.0,
            "title": "Active",
            "type": "integer"
          },
          "blocking": {
            "minimum": 0.0,
            "title": "Blocking",
            "type": "integer"
          },
          "file_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "File Path",
            "type": "string"
          },
          "first_scan_finding_number": {
            "maximum": 50000.0,
            "minimum": 1.0,
            "title": "First Scan Finding Number",
            "type": "integer"
          },
          "gate_exempt": {
            "minimum": 0.0,
            "title": "Gate Exempt",
            "type": "integer"
          },
          "lifecycle_counts": {
            "$ref": "#/components/schemas/FindingLifecycleCountsOut"
          },
          "severity_counts": {
            "$ref": "#/components/schemas/FindingSeverityCountsOut"
          },
          "suppressed": {
            "minimum": 0.0,
            "title": "Suppressed",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "file_path",
          "first_scan_finding_number",
          "total",
          "active",
          "suppressed",
          "gate_exempt",
          "blocking",
          "severity_counts",
          "lifecycle_counts"
        ],
        "title": "FindingFileAggregateOut",
        "type": "object"
      },
      "FindingFileManifestPageOut": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/FindingFileAggregateOut"
            },
            "maxItems": 200,
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "scan": {
            "$ref": "#/components/schemas/FindingFileManifestScanOut"
          },
          "total_files": {
            "minimum": 0.0,
            "title": "Total Files",
            "type": "integer"
          },
          "total_findings": {
            "minimum": 0.0,
            "title": "Total Findings",
            "type": "integer"
          },
          "truncated": {
            "title": "Truncated",
            "type": "boolean"
          }
        },
        "required": [
          "scan",
          "total_findings",
          "total_files",
          "items",
          "truncated",
          "next_cursor"
        ],
        "title": "FindingFileManifestPageOut",
        "type": "object"
      },
      "FindingFileManifestScanOut": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "findings_revision": {
            "minimum": 1.0,
            "title": "Findings Revision",
            "type": "integer"
          },
          "gate_decision": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Decision"
          },
          "gate_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Gate Reasons",
            "type": "array"
          },
          "id": {
            "minimum": 1.0,
            "title": "Id",
            "type": "integer"
          },
          "project_id": {
            "minimum": 1.0,
            "title": "Project Id",
            "type": "integer"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "status": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "project_id",
          "status",
          "gate_reasons",
          "error",
          "revision",
          "findings_revision"
        ],
        "title": "FindingFileManifestScanOut",
        "type": "object"
      },
      "FindingLifecycleCountsOut": {
        "additionalProperties": false,
        "properties": {
          "accepted_risk": {
            "minimum": 0.0,
            "title": "Accepted Risk",
            "type": "integer"
          },
          "false_positive": {
            "minimum": 0.0,
            "title": "False Positive",
            "type": "integer"
          },
          "fixed": {
            "minimum": 0.0,
            "title": "Fixed",
            "type": "integer"
          },
          "gate_exempt": {
            "minimum": 0.0,
            "title": "Gate Exempt",
            "type": "integer"
          },
          "ignore": {
            "minimum": 0.0,
            "title": "Ignore",
            "type": "integer"
          },
          "needs_review": {
            "minimum": 0.0,
            "title": "Needs Review",
            "type": "integer"
          },
          "open": {
            "minimum": 0.0,
            "title": "Open",
            "type": "integer"
          }
        },
        "required": [
          "open",
          "needs_review",
          "gate_exempt",
          "accepted_risk",
          "ignore",
          "false_positive",
          "fixed"
        ],
        "title": "FindingLifecycleCountsOut",
        "type": "object"
      },
      "FindingLifecycleUpdate": {
        "properties": {
          "action": {
            "enum": [
              "open",
              "needs_review",
              "gate_exempt",
              "accepted_risk",
              "ignore",
              "false_positive",
              "fixed"
            ],
            "title": "Action",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "required": [
          "action",
          "expected_revision"
        ],
        "title": "FindingLifecycleUpdate",
        "type": "object"
      },
      "FindingListItemOut": {
        "properties": {
          "advisor_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Advisor Confidence"
          },
          "advisor_verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Advisor Verdict"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "display_id": {
            "title": "Display Id",
            "type": "string"
          },
          "end_column": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Column"
          },
          "end_line": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Line"
          },
          "file_path": {
            "maxLength": 4096,
            "title": "File Path",
            "type": "string"
          },
          "fingerprint": {
            "title": "Fingerprint",
            "type": "string"
          },
          "first_seen_display_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen Display Id"
          },
          "first_seen_scan_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen Scan Id"
          },
          "gate_effect": {
            "enum": [
              "blocking",
              "non_blocking",
              "excluded"
            ],
            "title": "Gate Effect",
            "type": "string"
          },
          "gate_exempt": {
            "title": "Gate Exempt",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_repeat": {
            "title": "Is Repeat",
            "type": "boolean"
          },
          "lifecycle_status": {
            "title": "Lifecycle Status",
            "type": "string"
          },
          "message": {
            "maxLength": 4000,
            "title": "Message",
            "type": "string"
          },
          "occurrence_count": {
            "title": "Occurrence Count",
            "type": "integer"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "scan_finding_number": {
            "title": "Scan Finding Number",
            "type": "integer"
          },
          "scan_id": {
            "title": "Scan Id",
            "type": "integer"
          },
          "scanner": {
            "title": "Scanner",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "start_column": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Column"
          },
          "start_line": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Line"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "scan_id",
          "scan_finding_number",
          "display_id",
          "scanner",
          "rule_id",
          "severity",
          "file_path",
          "start_line",
          "start_column",
          "end_line",
          "end_column",
          "message",
          "fingerprint",
          "suppressed",
          "lifecycle_status",
          "gate_exempt",
          "occurrence_count",
          "is_repeat",
          "gate_effect",
          "revision",
          "created_at"
        ],
        "title": "FindingListItemOut",
        "type": "object"
      },
      "FindingOut": {
        "properties": {
          "ai_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Confidence"
          },
          "ai_fix": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Fix"
          },
          "ai_reasoning": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Reasoning"
          },
          "ai_verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Verdict"
          },
          "code_snippet": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code Snippet"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "display_id": {
            "title": "Display Id",
            "type": "string"
          },
          "end_column": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Column"
          },
          "end_line": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Line"
          },
          "file_path": {
            "maxLength": 4096,
            "title": "File Path",
            "type": "string"
          },
          "fingerprint": {
            "title": "Fingerprint",
            "type": "string"
          },
          "first_seen_display_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen Display Id"
          },
          "first_seen_scan_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen Scan Id"
          },
          "gate_effect": {
            "enum": [
              "blocking",
              "non_blocking",
              "excluded"
            ],
            "title": "Gate Effect",
            "type": "string"
          },
          "gate_exempt": {
            "default": false,
            "title": "Gate Exempt",
            "type": "boolean"
          },
          "gate_exempt_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Exempt Reason"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_repeat": {
            "default": false,
            "title": "Is Repeat",
            "type": "boolean"
          },
          "lifecycle_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle Reason"
          },
          "lifecycle_status": {
            "default": "open",
            "title": "Lifecycle Status",
            "type": "string"
          },
          "lifecycle_updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle Updated At"
          },
          "message": {
            "maxLength": 4000,
            "title": "Message",
            "type": "string"
          },
          "metadata_json": {
            "additionalProperties": true,
            "title": "Metadata Json",
            "type": "object"
          },
          "occurrence_count": {
            "default": 1,
            "title": "Occurrence Count",
            "type": "integer"
          },
          "revision": {
            "default": 1,
            "title": "Revision",
            "type": "integer"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "scan_finding_number": {
            "title": "Scan Finding Number",
            "type": "integer"
          },
          "scan_id": {
            "title": "Scan Id",
            "type": "integer"
          },
          "scanner": {
            "title": "Scanner",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "start_column": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Column"
          },
          "start_line": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Line"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "suppression_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suppression Reason"
          }
        },
        "required": [
          "id",
          "scan_id",
          "scan_finding_number",
          "display_id",
          "scanner",
          "rule_id",
          "severity",
          "file_path",
          "start_line",
          "start_column",
          "end_line",
          "end_column",
          "message",
          "code_snippet",
          "fingerprint",
          "metadata_json",
          "ai_verdict",
          "ai_confidence",
          "ai_reasoning",
          "ai_fix",
          "suppressed",
          "suppression_reason",
          "gate_effect",
          "created_at"
        ],
        "title": "FindingOut",
        "type": "object"
      },
      "FindingPageOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/FindingListItemOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "truncated": {
            "title": "Truncated",
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "total",
          "truncated",
          "next_cursor",
          "revision"
        ],
        "title": "FindingPageOut",
        "type": "object"
      },
      "FindingSeverityCountsOut": {
        "additionalProperties": false,
        "properties": {
          "critical": {
            "minimum": 0.0,
            "title": "Critical",
            "type": "integer"
          },
          "high": {
            "minimum": 0.0,
            "title": "High",
            "type": "integer"
          },
          "info": {
            "minimum": 0.0,
            "title": "Info",
            "type": "integer"
          },
          "low": {
            "minimum": 0.0,
            "title": "Low",
            "type": "integer"
          },
          "medium": {
            "minimum": 0.0,
            "title": "Medium",
            "type": "integer"
          }
        },
        "required": [
          "critical",
          "high",
          "medium",
          "low",
          "info"
        ],
        "title": "FindingSeverityCountsOut",
        "type": "object"
      },
      "GatePolicyUpdate": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "default": true,
            "title": "Active",
            "type": "boolean"
          },
          "block_secrets": {
            "default": true,
            "title": "Block Secrets",
            "type": "boolean"
          },
          "expected_policy": {
            "$ref": "#/components/schemas/GatePolicyValues"
          },
          "max_critical": {
            "default": 0,
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Max Critical",
            "type": "integer"
          },
          "max_high": {
            "default": -1,
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Max High",
            "type": "integer"
          }
        },
        "required": [
          "expected_policy"
        ],
        "title": "GatePolicyUpdate",
        "type": "object"
      },
      "GatePolicyValues": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "default": true,
            "title": "Active",
            "type": "boolean"
          },
          "block_secrets": {
            "default": true,
            "title": "Block Secrets",
            "type": "boolean"
          },
          "max_critical": {
            "default": 0,
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Max Critical",
            "type": "integer"
          },
          "max_high": {
            "default": -1,
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Max High",
            "type": "integer"
          }
        },
        "title": "GatePolicyValues",
        "type": "object"
      },
      "GitTreeFile": {
        "additionalProperties": false,
        "properties": {
          "content_base64": {
            "maxLength": 11184812,
            "minLength": 0,
            "title": "Content Base64",
            "type": "string"
          },
          "mode": {
            "enum": [
              "100644",
              "100755"
            ],
            "title": "Mode",
            "type": "string"
          },
          "oid": {
            "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
            "title": "Oid",
            "type": "string"
          },
          "path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Sha256",
            "type": "string"
          },
          "size_bytes": {
            "maximum": 8388608.0,
            "minimum": 0.0,
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": [
          "path",
          "content_base64",
          "sha256",
          "size_bytes",
          "mode",
          "oid"
        ],
        "title": "GitTreeFile",
        "type": "object"
      },
      "GitTreeUpload": {
        "additionalProperties": false,
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/GitTreeFile"
            },
            "maxItems": 5000,
            "title": "Files",
            "type": "array"
          },
          "object_format": {
            "enum": [
              "sha1",
              "sha256"
            ],
            "title": "Object Format",
            "type": "string"
          },
          "tree_oid": {
            "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
            "title": "Tree Oid",
            "type": "string"
          }
        },
        "required": [
          "object_format",
          "tree_oid",
          "files"
        ],
        "title": "GitTreeUpload",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "IdeBrowserInvitationActiveResponse": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "invitation_id": {
            "pattern": "^[A-Za-z0-9_-]{24}$",
            "title": "Invitation Id",
            "type": "string"
          },
          "member_id": {
            "pattern": "^kbm1_[A-Za-z0-9_-]{32}$",
            "title": "Member Id",
            "type": "string"
          },
          "purpose": {
            "enum": [
              "integrated_dashboard",
              "extra_browser"
            ],
            "title": "Purpose",
            "type": "string"
          },
          "status": {
            "const": "active",
            "default": "active",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "invitation_id",
          "purpose",
          "member_id",
          "created_at"
        ],
        "title": "IdeBrowserInvitationActiveResponse",
        "type": "object"
      },
      "IdeBrowserInvitationMissingResponse": {
        "additionalProperties": false,
        "properties": {
          "invitation_id": {
            "pattern": "^[A-Za-z0-9_-]{24}$",
            "title": "Invitation Id",
            "type": "string"
          },
          "status": {
            "const": "missing_or_revoked",
            "default": "missing_or_revoked",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "invitation_id"
        ],
        "title": "IdeBrowserInvitationMissingResponse",
        "type": "object"
      },
      "IdeBrowserInvitationPendingResponse": {
        "additionalProperties": false,
        "properties": {
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "invitation_id": {
            "pattern": "^[A-Za-z0-9_-]{24}$",
            "title": "Invitation Id",
            "type": "string"
          },
          "purpose": {
            "enum": [
              "integrated_dashboard",
              "extra_browser"
            ],
            "title": "Purpose",
            "type": "string"
          },
          "status": {
            "const": "pending",
            "default": "pending",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "invitation_id",
          "purpose",
          "expires_at"
        ],
        "title": "IdeBrowserInvitationPendingResponse",
        "type": "object"
      },
      "IdeBrowserInvitationRequest": {
        "additionalProperties": false,
        "properties": {
          "purpose": {
            "enum": [
              "integrated_dashboard",
              "extra_browser"
            ],
            "title": "Purpose",
            "type": "string"
          }
        },
        "required": [
          "purpose"
        ],
        "title": "IdeBrowserInvitationRequest",
        "type": "object"
      },
      "IdeBrowserInvitationResponse": {
        "additionalProperties": false,
        "properties": {
          "bootstrap_token": {
            "pattern": "^kbi1\\.[A-Za-z0-9_-]{24}\\.[A-Za-z0-9_-]{43}$",
            "title": "Bootstrap Token",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "expires_in": {
            "const": 600,
            "default": 600,
            "title": "Expires In",
            "type": "integer"
          },
          "invitation_id": {
            "pattern": "^[A-Za-z0-9_-]{24}$",
            "title": "Invitation Id",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "purpose": {
            "enum": [
              "integrated_dashboard",
              "extra_browser"
            ],
            "title": "Purpose",
            "type": "string"
          }
        },
        "required": [
          "bootstrap_token",
          "invitation_id",
          "purpose",
          "issued_at",
          "expires_at"
        ],
        "title": "IdeBrowserInvitationResponse",
        "type": "object"
      },
      "IdeCapabilityResponse": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "active_generation": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active Generation"
          },
          "client_name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Client Name",
            "type": "string"
          },
          "connected": {
            "title": "Connected",
            "type": "boolean"
          },
          "created_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "id": {
            "pattern": "^ks1_[A-Za-z0-9_-]{43}$",
            "title": "Id",
            "type": "string"
          },
          "invalid_recovery_token": {
            "title": "Invalid Recovery Token",
            "type": "null"
          },
          "latest_generation": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Latest Generation",
            "type": "integer"
          },
          "pending_activation": {
            "title": "Pending Activation",
            "type": "boolean"
          },
          "pending_activation_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pending Activation Expires At"
          },
          "pending_client_name": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pending Client Name"
          },
          "pending_generation": {
            "anyOf": [
              {
                "maximum": 2147483647.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pending Generation"
          },
          "revoked": {
            "title": "Revoked",
            "type": "boolean"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          },
          "source_open_available": {
            "title": "Source Open Available",
            "type": "boolean"
          },
          "source_open_disabled_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Open Disabled Reason"
          },
          "state": {
            "const": "valid",
            "default": "valid",
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "id",
          "client_name",
          "scopes",
          "created_at",
          "revoked",
          "active",
          "connected",
          "active_generation",
          "latest_generation",
          "pending_activation",
          "pending_generation",
          "pending_activation_expires_at",
          "source_open_available",
          "source_open_disabled_reason"
        ],
        "title": "IdeCapabilityResponse",
        "type": "object"
      },
      "IdeEnrollmentBrowserResponse": {
        "additionalProperties": false,
        "properties": {
          "activation_expires_at": {
            "format": "date-time",
            "title": "Activation Expires At",
            "type": "string"
          },
          "client_name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Client Name",
            "type": "string"
          },
          "client_slot": {
            "pattern": "^ks1_[A-Za-z0-9_-]{43}$",
            "title": "Client Slot",
            "type": "string"
          },
          "generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Generation",
            "type": "integer"
          },
          "request_id": {
            "pattern": "^ker1_[A-Za-z0-9_-]{24}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          },
          "state": {
            "const": "awaiting_approval",
            "default": "awaiting_approval",
            "title": "State",
            "type": "string"
          },
          "verification_code": {
            "pattern": "^[A-HJ-NP-Z2-9]{4}-[A-HJ-NP-Z2-9]{4}$",
            "title": "Verification Code",
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "revision",
          "verification_code",
          "scopes",
          "client_slot",
          "client_name",
          "generation",
          "requested_at",
          "activation_expires_at"
        ],
        "title": "IdeEnrollmentBrowserResponse",
        "type": "object"
      },
      "IdeEnrollmentDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": [
              "approved",
              "rejected"
            ],
            "title": "Decision",
            "type": "string"
          },
          "expected_generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Generation",
            "type": "integer"
          },
          "expected_revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "decision",
          "expected_revision",
          "expected_generation"
        ],
        "title": "IdeEnrollmentDecisionRequest",
        "type": "object"
      },
      "IdeEnrollmentRequest": {
        "additionalProperties": false,
        "properties": {
          "client_name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Client Name",
            "type": "string"
          },
          "client_slot": {
            "pattern": "^ks1_[A-Za-z0-9_-]{43}$",
            "title": "Client Slot",
            "type": "string"
          },
          "expected_active_generation": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Expected Active Generation",
            "type": "integer"
          }
        },
        "required": [
          "client_name",
          "client_slot",
          "expected_active_generation"
        ],
        "title": "IdeEnrollmentRequest",
        "type": "object"
      },
      "IdeEnrollmentResponse": {
        "additionalProperties": false,
        "properties": {
          "activation_expires_at": {
            "format": "date-time",
            "title": "Activation Expires At",
            "type": "string"
          },
          "capability": {
            "title": "Capability",
            "type": "string"
          },
          "client_slot": {
            "title": "Client Slot",
            "type": "string"
          },
          "generation": {
            "title": "Generation",
            "type": "integer"
          },
          "request_id": {
            "pattern": "^ker1_[A-Za-z0-9_-]{24}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "revision": {
            "const": 1,
            "default": 1,
            "title": "Revision",
            "type": "integer"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          },
          "state": {
            "const": "awaiting_approval",
            "default": "awaiting_approval",
            "title": "State",
            "type": "string"
          },
          "verification_code": {
            "pattern": "^[A-HJ-NP-Z2-9]{4}-[A-HJ-NP-Z2-9]{4}$",
            "title": "Verification Code",
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "verification_code",
          "capability",
          "scopes",
          "client_slot",
          "generation",
          "requested_at",
          "activation_expires_at"
        ],
        "title": "IdeEnrollmentResponse",
        "type": "object"
      },
      "IdeEnrollmentStatusResponse": {
        "additionalProperties": false,
        "properties": {
          "activation_expires_at": {
            "format": "date-time",
            "title": "Activation Expires At",
            "type": "string"
          },
          "decision_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision At"
          },
          "request_id": {
            "pattern": "^ker1_[A-Za-z0-9_-]{24}$",
            "title": "Request Id",
            "type": "string"
          },
          "revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "state": {
            "enum": [
              "awaiting_approval",
              "approved",
              "rejected",
              "expired"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "state",
          "revision",
          "decision_at",
          "activation_expires_at"
        ],
        "title": "IdeEnrollmentStatusResponse",
        "type": "object"
      },
      "IdeFirstOwnerClaimRequest": {
        "additionalProperties": false,
        "properties": {
          "bootstrap_token": {
            "maxLength": 256,
            "minLength": 1,
            "title": "Bootstrap Token",
            "type": "string"
          },
          "expected_generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Generation",
            "type": "integer"
          },
          "expected_request_id": {
            "pattern": "^ker1_[A-Za-z0-9_-]{24}$",
            "title": "Expected Request Id",
            "type": "string"
          },
          "expected_revision": {
            "const": 1,
            "default": 1,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "bootstrap_token",
          "expected_request_id",
          "expected_generation"
        ],
        "title": "IdeFirstOwnerClaimRequest",
        "type": "object"
      },
      "InvalidCapabilityRecoveryRequest": {
        "additionalProperties": false,
        "properties": {
          "recovery_token": {
            "pattern": "^kir1_[0-9a-f]{64}$",
            "title": "Recovery Token",
            "type": "string"
          }
        },
        "required": [
          "recovery_token"
        ],
        "title": "InvalidCapabilityRecoveryRequest",
        "type": "object"
      },
      "InvalidCapabilityRecoveryResponse": {
        "properties": {
          "recovered": {
            "const": true,
            "default": true,
            "title": "Recovered",
            "type": "boolean"
          }
        },
        "title": "InvalidCapabilityRecoveryResponse",
        "type": "object"
      },
      "InvalidIdeCapabilityResponse": {
        "additionalProperties": false,
        "description": "Redacted invalid slot state with only its stable ID and exact CAS token.",
        "properties": {
          "active": {
            "const": false,
            "default": false,
            "title": "Active",
            "type": "boolean"
          },
          "active_generation": {
            "title": "Active Generation",
            "type": "null"
          },
          "client_name": {
            "const": "Invalid IDE client record",
            "default": "Invalid IDE client record",
            "title": "Client Name",
            "type": "string"
          },
          "connected": {
            "const": false,
            "default": false,
            "title": "Connected",
            "type": "boolean"
          },
          "created_at": {
            "title": "Created At",
            "type": "null"
          },
          "id": {
            "pattern": "^ks1_[A-Za-z0-9_-]{43}$",
            "title": "Id",
            "type": "string"
          },
          "invalid_recovery_token": {
            "pattern": "^kir1_[0-9a-f]{64}$",
            "title": "Invalid Recovery Token",
            "type": "string"
          },
          "latest_generation": {
            "title": "Latest Generation",
            "type": "null"
          },
          "pending_activation": {
            "const": false,
            "default": false,
            "title": "Pending Activation",
            "type": "boolean"
          },
          "pending_activation_expires_at": {
            "title": "Pending Activation Expires At",
            "type": "null"
          },
          "pending_client_name": {
            "title": "Pending Client Name",
            "type": "null"
          },
          "pending_generation": {
            "title": "Pending Generation",
            "type": "null"
          },
          "revoked": {
            "const": false,
            "default": false,
            "title": "Revoked",
            "type": "boolean"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "maxItems": 0,
            "title": "Scopes",
            "type": "array"
          },
          "source_open_available": {
            "const": false,
            "default": false,
            "title": "Source Open Available",
            "type": "boolean"
          },
          "source_open_disabled_reason": {
            "const": "This IDE client record is invalid or not active.",
            "default": "This IDE client record is invalid or not active.",
            "title": "Source Open Disabled Reason",
            "type": "string"
          },
          "state": {
            "const": "invalid",
            "default": "invalid",
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "id",
          "invalid_recovery_token"
        ],
        "title": "InvalidIdeCapabilityResponse",
        "type": "object"
      },
      "JobActivityOut": {
        "properties": {
          "bytes_completed": {
            "anyOf": [
              {
                "maximum": 4294967296.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Completed"
          },
          "bytes_total": {
            "anyOf": [
              {
                "maximum": 4294967296.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Total"
          },
          "component_id": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Id"
          },
          "component_index": {
            "anyOf": [
              {
                "maximum": 32.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Index"
          },
          "component_total": {
            "anyOf": [
              {
                "maximum": 32.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Total"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "updated_at"
        ],
        "title": "JobActivityOut",
        "type": "object"
      },
      "JobOut": {
        "properties": {
          "activity": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JobActivityOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "attempt": {
            "default": 0,
            "title": "Attempt",
            "type": "integer"
          },
          "can_cancel": {
            "default": false,
            "title": "Can Cancel",
            "type": "boolean"
          },
          "can_reconcile_cache": {
            "default": false,
            "title": "Can Reconcile Cache",
            "type": "boolean"
          },
          "can_retry": {
            "default": false,
            "title": "Can Retry",
            "type": "boolean"
          },
          "cancel_requested_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancel Requested At"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Detail"
          },
          "finding_display_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finding Display Id"
          },
          "finding_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finding Id"
          },
          "finding_rule_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finding Rule Id"
          },
          "finding_scan_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finding Scan Number"
          },
          "heartbeat_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Heartbeat At"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "max_attempts": {
            "default": 1,
            "title": "Max Attempts",
            "type": "integer"
          },
          "original_job_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Original Job Id"
          },
          "progress": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress"
          },
          "retry_blocked_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retry Blocked Reason"
          },
          "revision": {
            "default": 1,
            "title": "Revision",
            "type": "integer"
          },
          "scan_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scan Id"
          },
          "stage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stage"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind",
          "title",
          "status",
          "stage",
          "detail",
          "progress",
          "scan_id",
          "finding_id",
          "error",
          "created_at",
          "started_at",
          "completed_at",
          "updated_at"
        ],
        "title": "JobOut",
        "type": "object"
      },
      "JobReconcileRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_revision"
        ],
        "title": "JobReconcileRequest",
        "type": "object"
      },
      "JobRetryRequest": {
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_revision"
        ],
        "title": "JobRetryRequest",
        "type": "object"
      },
      "PendingCancellationRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_pending_generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Pending Generation",
            "type": "integer"
          }
        },
        "required": [
          "expected_pending_generation"
        ],
        "title": "PendingCancellationRequest",
        "type": "object"
      },
      "ProjectCreate": {
        "properties": {
          "default_branch": {
            "default": "main",
            "title": "Default Branch",
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "remote_url": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Url"
          },
          "repo_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Repo Path",
            "type": "string"
          }
        },
        "required": [
          "name",
          "repo_path"
        ],
        "title": "ProjectCreate",
        "type": "object"
      },
      "ProjectOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "default_branch": {
            "title": "Default Branch",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "remote_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Url"
          },
          "repo_path": {
            "title": "Repo Path",
            "type": "string"
          },
          "revision": {
            "default": 1,
            "title": "Revision",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "repo_path",
          "remote_url",
          "default_branch",
          "created_at"
        ],
        "title": "ProjectOut",
        "type": "object"
      },
      "ProjectResolve": {
        "properties": {
          "repo_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Repo Path",
            "type": "string"
          }
        },
        "required": [
          "repo_path"
        ],
        "title": "ProjectResolve",
        "type": "object"
      },
      "PushHookObservation": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "hook_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hook Digest"
          },
          "state": {
            "enum": [
              "installed",
              "needs_repair"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "expected_revision",
          "state"
        ],
        "title": "PushHookObservation",
        "type": "object"
      },
      "PushMember": {
        "additionalProperties": false,
        "properties": {
          "approved_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approved At"
          },
          "client_slot": {
            "pattern": "^ks1_[A-Za-z0-9_-]{43}$",
            "title": "Client Slot",
            "type": "string"
          },
          "generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Generation",
            "type": "integer"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "requested_at": {
            "title": "Requested At",
            "type": "string"
          },
          "state": {
            "enum": [
              "requested",
              "approved",
              "revoked"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "client_slot",
          "generation",
          "name",
          "state",
          "requested_at"
        ],
        "title": "PushMember",
        "type": "object"
      },
      "PushMemberApproval": {
        "additionalProperties": false,
        "properties": {
          "approve": {
            "title": "Approve",
            "type": "boolean"
          },
          "expected_revision": {
            "maximum": 2147483646.0,
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_revision",
          "approve"
        ],
        "title": "PushMemberApproval",
        "type": "object"
      },
      "PushPlan": {
        "additionalProperties": false,
        "properties": {
          "advertised_bases": {
            "items": {
              "type": "string"
            },
            "maxItems": 1024,
            "title": "Advertised Bases",
            "type": "array"
          },
          "commits": {
            "items": {
              "$ref": "#/components/schemas/CommitTree"
            },
            "maxItems": 256,
            "title": "Commits",
            "type": "array"
          },
          "destination_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Destination Digest"
          },
          "digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "object_format": {
            "enum": [
              "sha1",
              "sha256"
            ],
            "title": "Object Format",
            "type": "string"
          },
          "refs": {
            "items": {
              "$ref": "#/components/schemas/PushRef"
            },
            "maxItems": 64,
            "title": "Refs",
            "type": "array"
          },
          "repository_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Repository Id",
            "type": "string"
          },
          "schema": {
            "const": "lomo-git-push-plan/v1",
            "title": "Schema",
            "type": "string"
          },
          "trees": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Trees",
            "type": "array"
          }
        },
        "required": [
          "schema",
          "repository_id",
          "object_format",
          "destination_digest",
          "advertised_bases",
          "refs",
          "commits",
          "trees",
          "digest"
        ],
        "title": "PushPlan",
        "type": "object"
      },
      "PushPolicy": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "default": false,
            "title": "Enabled",
            "type": "boolean"
          },
          "git_directory": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Git Directory",
            "type": "string"
          },
          "hook_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hook Digest"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/PushMember"
            },
            "maxItems": 32,
            "title": "Members",
            "type": "array"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "observed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed At"
          },
          "observed_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Revision"
          },
          "observed_state": {
            "default": "not_installed",
            "enum": [
              "not_installed",
              "installed",
              "needs_repair"
            ],
            "title": "Observed State",
            "type": "string"
          },
          "project_id": {
            "minimum": 1.0,
            "title": "Project Id",
            "type": "integer"
          },
          "reason_code": {
            "anyOf": [
              {
                "enum": [
                  "host_setup_required",
                  "hook_missing_or_changed",
                  "policy_changed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "host_setup_required",
            "title": "Reason Code"
          },
          "repository_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Repository Id",
            "type": "string"
          },
          "revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "root_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Root Path",
            "type": "string"
          }
        },
        "required": [
          "repository_id",
          "name",
          "project_id",
          "root_path",
          "git_directory",
          "revision"
        ],
        "title": "PushPolicy",
        "type": "object"
      },
      "PushPolicyCreate": {
        "additionalProperties": false,
        "properties": {
          "git_directory": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Git Directory",
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "repository_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Repository Id",
            "type": "string"
          },
          "root_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Root Path",
            "type": "string"
          }
        },
        "required": [
          "repository_id",
          "name",
          "root_path",
          "git_directory"
        ],
        "title": "PushPolicyCreate",
        "type": "object"
      },
      "PushPolicyRemoval": {
        "additionalProperties": false,
        "properties": {
          "confirm_removal": {
            "title": "Confirm Removal",
            "type": "boolean"
          },
          "expected_revision": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "hook_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hook Digest"
          }
        },
        "required": [
          "expected_revision",
          "confirm_removal",
          "hook_digest"
        ],
        "title": "PushPolicyRemoval",
        "type": "object"
      },
      "PushPolicyUpdate": {
        "additionalProperties": false,
        "properties": {
          "confirm_bypass": {
            "default": false,
            "title": "Confirm Bypass",
            "type": "boolean"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "expected_revision": {
            "maximum": 2147483646.0,
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_revision",
          "enabled"
        ],
        "title": "PushPolicyUpdate",
        "type": "object"
      },
      "PushRef": {
        "additionalProperties": false,
        "properties": {
          "local_oid": {
            "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
            "title": "Local Oid",
            "type": "string"
          },
          "local_ref": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "Local Ref",
            "type": "string"
          },
          "remote_oid": {
            "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
            "title": "Remote Oid",
            "type": "string"
          },
          "remote_ref": {
            "maxLength": 1024,
            "minLength": 6,
            "title": "Remote Ref",
            "type": "string"
          }
        },
        "required": [
          "local_ref",
          "local_oid",
          "remote_ref",
          "remote_oid"
        ],
        "title": "PushRef",
        "type": "object"
      },
      "RuntimeAdvisorConfigUpdate": {
        "additionalProperties": false,
        "properties": {
          "ai_mode": {
            "enum": [
              "auto",
              "on",
              "off"
            ],
            "title": "Ai Mode",
            "type": "string"
          },
          "auto_triage_limit": {
            "maximum": 50.0,
            "minimum": 0.0,
            "title": "Auto Triage Limit",
            "type": "integer"
          },
          "ollama_base_url": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Ollama Base Url",
            "type": "string"
          },
          "ollama_model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Ollama Model",
            "type": "string"
          },
          "ollama_thinking": {
            "title": "Ollama Thinking",
            "type": "boolean"
          }
        },
        "required": [
          "ai_mode",
          "ollama_base_url",
          "ollama_model",
          "ollama_thinking",
          "auto_triage_limit"
        ],
        "title": "RuntimeAdvisorConfigUpdate",
        "type": "object"
      },
      "RuntimeComponentOut": {
        "properties": {
          "apply_command": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Apply Command",
            "type": "string"
          },
          "desired_enabled": {
            "title": "Desired Enabled",
            "type": "boolean"
          },
          "desired_state": {
            "enum": [
              "enabled",
              "disabled"
            ],
            "title": "Desired State",
            "type": "string"
          },
          "healthy": {
            "title": "Healthy",
            "type": "boolean"
          },
          "id": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "message": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "observed_state": {
            "enum": [
              "running",
              "running_undesired",
              "not_running",
              "not_observed",
              "disabled",
              "unhealthy",
              "unknown"
            ],
            "title": "Observed State",
            "type": "string"
          },
          "profile": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Profile",
            "type": "string"
          },
          "reachable": {
            "title": "Reachable",
            "type": "boolean"
          },
          "reason_code": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Reason Code",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "url": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "id",
          "required",
          "desired_enabled",
          "desired_state",
          "observed_state",
          "reachable",
          "healthy",
          "url",
          "profile",
          "apply_command",
          "reason_code",
          "message"
        ],
        "title": "RuntimeComponentOut",
        "type": "object"
      },
      "RuntimeComponentsConfigUpdate": {
        "additionalProperties": false,
        "properties": {
          "component_db_admin_enabled": {
            "title": "Component Db Admin Enabled",
            "type": "boolean"
          },
          "component_git_proxy_enabled": {
            "title": "Component Git Proxy Enabled",
            "type": "boolean"
          },
          "component_monitoring_enabled": {
            "title": "Component Monitoring Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "component_monitoring_enabled",
          "component_git_proxy_enabled",
          "component_db_admin_enabled"
        ],
        "title": "RuntimeComponentsConfigUpdate",
        "type": "object"
      },
      "RuntimeConfigOut": {
        "properties": {
          "ai_mode": {
            "enum": [
              "auto",
              "on",
              "off"
            ],
            "title": "Ai Mode",
            "type": "string"
          },
          "allowed_roots": {
            "items": {
              "type": "string"
            },
            "title": "Allowed Roots",
            "type": "array"
          },
          "auto_triage_limit": {
            "title": "Auto Triage Limit",
            "type": "integer"
          },
          "component_apply_command": {
            "title": "Component Apply Command",
            "type": "string"
          },
          "component_db_admin_enabled": {
            "title": "Component Db Admin Enabled",
            "type": "boolean"
          },
          "component_git_proxy_enabled": {
            "title": "Component Git Proxy Enabled",
            "type": "boolean"
          },
          "component_monitoring_enabled": {
            "title": "Component Monitoring Enabled",
            "type": "boolean"
          },
          "components": {
            "items": {
              "$ref": "#/components/schemas/RuntimeComponentOut"
            },
            "title": "Components",
            "type": "array"
          },
          "gate_active": {
            "title": "Gate Active",
            "type": "boolean"
          },
          "gate_block_secrets": {
            "title": "Gate Block Secrets",
            "type": "boolean"
          },
          "gate_max_critical": {
            "title": "Gate Max Critical",
            "type": "integer"
          },
          "gate_max_high": {
            "title": "Gate Max High",
            "type": "integer"
          },
          "gate_preset": {
            "enum": [
              "observe",
              "baseline",
              "strict",
              "custom"
            ],
            "title": "Gate Preset",
            "type": "string"
          },
          "installation_id": {
            "pattern": "^[a-f0-9]{12}$",
            "title": "Installation Id",
            "type": "string"
          },
          "ollama_available": {
            "title": "Ollama Available",
            "type": "boolean"
          },
          "ollama_base_url": {
            "title": "Ollama Base Url",
            "type": "string"
          },
          "ollama_model": {
            "title": "Ollama Model",
            "type": "string"
          },
          "ollama_models": {
            "items": {
              "type": "string"
            },
            "title": "Ollama Models",
            "type": "array"
          },
          "ollama_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ollama Reason"
          },
          "ollama_thinking": {
            "title": "Ollama Thinking",
            "type": "boolean"
          },
          "scanner_url": {
            "title": "Scanner Url",
            "type": "string"
          },
          "schema_init": {
            "$ref": "#/components/schemas/SchemaInitStatusOut"
          }
        },
        "required": [
          "installation_id",
          "allowed_roots",
          "scanner_url",
          "ai_mode",
          "ollama_base_url",
          "ollama_available",
          "ollama_model",
          "ollama_thinking",
          "ollama_models",
          "ollama_reason",
          "auto_triage_limit",
          "component_monitoring_enabled",
          "component_git_proxy_enabled",
          "component_db_admin_enabled",
          "gate_preset",
          "gate_active",
          "gate_max_critical",
          "gate_max_high",
          "gate_block_secrets",
          "component_apply_command",
          "components",
          "schema_init"
        ],
        "title": "RuntimeConfigOut",
        "type": "object"
      },
      "RuntimeConfigUpdate": {
        "properties": {
          "ai_mode": {
            "default": "auto",
            "enum": [
              "auto",
              "on",
              "off"
            ],
            "title": "Ai Mode",
            "type": "string"
          },
          "auto_triage_limit": {
            "default": 5,
            "maximum": 50.0,
            "minimum": 0.0,
            "title": "Auto Triage Limit",
            "type": "integer"
          },
          "component_db_admin_enabled": {
            "default": false,
            "title": "Component Db Admin Enabled",
            "type": "boolean"
          },
          "component_git_proxy_enabled": {
            "default": false,
            "title": "Component Git Proxy Enabled",
            "type": "boolean"
          },
          "component_monitoring_enabled": {
            "default": false,
            "title": "Component Monitoring Enabled",
            "type": "boolean"
          },
          "gate_active": {
            "default": true,
            "title": "Gate Active",
            "type": "boolean"
          },
          "gate_apply_to_existing": {
            "default": false,
            "title": "Gate Apply To Existing",
            "type": "boolean"
          },
          "gate_block_secrets": {
            "default": true,
            "title": "Gate Block Secrets",
            "type": "boolean"
          },
          "gate_max_critical": {
            "default": 0,
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Gate Max Critical",
            "type": "integer"
          },
          "gate_max_high": {
            "default": -1,
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Gate Max High",
            "type": "integer"
          },
          "gate_preset": {
            "default": "baseline",
            "enum": [
              "observe",
              "baseline",
              "strict",
              "custom"
            ],
            "title": "Gate Preset",
            "type": "string"
          },
          "ollama_base_url": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Ollama Base Url",
            "type": "string"
          },
          "ollama_model": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Ollama Model",
            "type": "string"
          },
          "ollama_thinking": {
            "default": false,
            "title": "Ollama Thinking",
            "type": "boolean"
          }
        },
        "required": [
          "ollama_base_url",
          "ollama_model"
        ],
        "title": "RuntimeConfigUpdate",
        "type": "object"
      },
      "RuntimeGateConfigUpdate": {
        "additionalProperties": false,
        "properties": {
          "gate_active": {
            "title": "Gate Active",
            "type": "boolean"
          },
          "gate_apply_to_existing": {
            "title": "Gate Apply To Existing",
            "type": "boolean"
          },
          "gate_block_secrets": {
            "title": "Gate Block Secrets",
            "type": "boolean"
          },
          "gate_max_critical": {
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Gate Max Critical",
            "type": "integer"
          },
          "gate_max_high": {
            "maximum": 999.0,
            "minimum": -1.0,
            "title": "Gate Max High",
            "type": "integer"
          },
          "gate_preset": {
            "enum": [
              "observe",
              "baseline",
              "strict",
              "custom"
            ],
            "title": "Gate Preset",
            "type": "string"
          }
        },
        "required": [
          "gate_preset",
          "gate_active",
          "gate_max_critical",
          "gate_max_high",
          "gate_block_secrets",
          "gate_apply_to_existing"
        ],
        "title": "RuntimeGateConfigUpdate",
        "type": "object"
      },
      "ScanArtifactOut": {
        "properties": {
          "artifact_type": {
            "title": "Artifact Type",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "scan_id": {
            "title": "Scan Id",
            "type": "integer"
          },
          "scanner": {
            "title": "Scanner",
            "type": "string"
          },
          "sha256": {
            "title": "Sha256",
            "type": "string"
          },
          "size_bytes": {
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "scan_id",
          "scanner",
          "artifact_type",
          "format",
          "path",
          "size_bytes",
          "sha256",
          "created_at"
        ],
        "title": "ScanArtifactOut",
        "type": "object"
      },
      "ScanCreate": {
        "properties": {
          "acknowledge_limited_coverage": {
            "default": false,
            "title": "Acknowledge Limited Coverage",
            "type": "boolean"
          },
          "base_ref": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Ref"
          },
          "coverage": {
            "default": "complete",
            "enum": [
              "complete",
              "limited"
            ],
            "title": "Coverage",
            "type": "string"
          },
          "head_ref": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Head Ref"
          },
          "mode": {
            "default": "full",
            "enum": [
              "full",
              "incremental_diff"
            ],
            "title": "Mode",
            "type": "string"
          },
          "preflight_revision": {
            "anyOf": [
              {
                "maxLength": 64,
                "minLength": 64,
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preflight Revision"
          },
          "project_id": {
            "title": "Project Id",
            "type": "integer"
          },
          "source_snapshot_digest": {
            "anyOf": [
              {
                "maxLength": 64,
                "minLength": 64,
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Snapshot Digest"
          },
          "target_kind": {
            "anyOf": [
              {
                "enum": [
                  "file",
                  "directory"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Kind"
          },
          "target_path": {
            "anyOf": [
              {
                "maxLength": 4096,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Path"
          },
          "use_ai": {
            "default": false,
            "title": "Use Ai",
            "type": "boolean"
          }
        },
        "required": [
          "project_id"
        ],
        "title": "ScanCreate",
        "type": "object"
      },
      "ScanFindingCountsOut": {
        "properties": {
          "active": {
            "minimum": 0.0,
            "title": "Active",
            "type": "integer"
          },
          "gate_exempt": {
            "minimum": 0.0,
            "title": "Gate Exempt",
            "type": "integer"
          },
          "scanner_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Scanner Counts",
            "type": "object"
          },
          "severity_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Severity Counts",
            "type": "object"
          },
          "suppressed": {
            "minimum": 0.0,
            "title": "Suppressed",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "active",
          "suppressed",
          "gate_exempt",
          "severity_counts",
          "scanner_counts"
        ],
        "title": "ScanFindingCountsOut",
        "type": "object"
      },
      "ScanOut": {
        "properties": {
          "base_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Ref"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "findings_revision": {
            "default": 1,
            "title": "Findings Revision",
            "type": "integer"
          },
          "gate_decision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Decision"
          },
          "gate_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Gate Reasons",
            "type": "array"
          },
          "head_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Head Ref"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "job_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Id"
          },
          "job_revision": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Revision"
          },
          "mode": {
            "title": "Mode",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "integer"
          },
          "revision": {
            "default": 1,
            "title": "Revision",
            "type": "integer"
          },
          "scanner_summary": {
            "additionalProperties": true,
            "title": "Scanner Summary",
            "type": "object"
          },
          "source_snapshot": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScanSourceSnapshotOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "project_id",
          "mode",
          "base_ref",
          "head_ref",
          "status",
          "gate_decision",
          "gate_reasons",
          "scanner_summary",
          "error",
          "created_at",
          "started_at",
          "completed_at",
          "duration_ms"
        ],
        "title": "ScanOut",
        "type": "object"
      },
      "ScanSourceSnapshotOut": {
        "additionalProperties": false,
        "description": "Body-free original admission, not a claim about current disk contents.",
        "properties": {
          "directory_scope": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Directory Scope"
          },
          "file_count": {
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "File Count",
            "type": "integer"
          },
          "kind": {
            "default": "native-windows",
            "enum": [
              "native-windows",
              "git-commit"
            ],
            "title": "Kind",
            "type": "string"
          },
          "snapshot_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Snapshot Digest",
            "type": "string"
          },
          "source_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Source Id",
            "type": "string"
          },
          "target_kind": {
            "anyOf": [
              {
                "enum": [
                  "file",
                  "directory"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Kind"
          },
          "target_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Path"
          },
          "total_bytes": {
            "maximum": 67108864.0,
            "minimum": 0.0,
            "title": "Total Bytes",
            "type": "integer"
          }
        },
        "required": [
          "source_id",
          "snapshot_digest",
          "directory_scope",
          "target_path",
          "target_kind",
          "file_count",
          "total_bytes"
        ],
        "title": "ScanSourceSnapshotOut",
        "type": "object"
      },
      "ScanSummaryOut": {
        "properties": {
          "findings": {
            "$ref": "#/components/schemas/ScanFindingCountsOut"
          },
          "findings_revision": {
            "minimum": 1.0,
            "title": "Findings Revision",
            "type": "integer"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "scan": {
            "$ref": "#/components/schemas/ScanSummaryResourceOut"
          }
        },
        "required": [
          "scan",
          "findings",
          "revision",
          "findings_revision"
        ],
        "title": "ScanSummaryOut",
        "type": "object"
      },
      "ScanSummaryResourceOut": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "gate_decision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Decision"
          },
          "gate_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Gate Reasons",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "mode": {
            "title": "Mode",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "integer"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "project_id",
          "mode",
          "status",
          "gate_decision",
          "gate_reasons",
          "error",
          "created_at",
          "started_at",
          "completed_at",
          "duration_ms"
        ],
        "title": "ScanSummaryResourceOut",
        "type": "object"
      },
      "ScanTriageRequest": {
        "additionalProperties": false,
        "properties": {
          "advisor_provider_pin": {
            "$ref": "#/components/schemas/AdvisorTriageProviderPin"
          },
          "include_existing": {
            "default": false,
            "title": "Include Existing",
            "type": "boolean"
          },
          "limit": {
            "default": 100,
            "maximum": 200.0,
            "minimum": 1.0,
            "title": "Limit",
            "type": "integer"
          },
          "model": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          }
        },
        "required": [
          "advisor_provider_pin"
        ],
        "title": "ScanTriageRequest",
        "type": "object"
      },
      "ScannerCacheRollbackEligibilityOut": {
        "additionalProperties": false,
        "properties": {
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 256,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "reason_code": {
            "enum": [
              "eligible",
              "no_previous_generation",
              "cache_pointer_invalid",
              "previous_generation_invalid",
              "previous_generation_verifying",
              "previous_generation_verification_timeout",
              "previous_generation_verification_failed",
              "different_reviewed_locks",
              "previous_generation_incompatible",
              "scanner_unavailable",
              "scanner_eligibility_invalid",
              "state_mismatch"
            ],
            "title": "Reason Code",
            "type": "string"
          },
          "target_generation": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Generation"
          },
          "verification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScannerCacheVerificationOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "eligible",
          "reason_code",
          "reason"
        ],
        "title": "ScannerCacheRollbackEligibilityOut",
        "type": "object"
      },
      "ScannerCacheUpdateRequest": {
        "additionalProperties": false,
        "properties": {
          "catalog_digest": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Digest"
          },
          "component_ids": {
            "items": {
              "enum": [
                "trivy-db",
                "trivy-java-db",
                "trivy-checks",
                "opengrep-reviewed-rules",
                "bearer-rules",
                "grype-db"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Component Ids",
            "type": "array"
          }
        },
        "required": [
          "component_ids"
        ],
        "title": "ScannerCacheUpdateRequest",
        "type": "object"
      },
      "ScannerCacheVerificationOut": {
        "additionalProperties": false,
        "properties": {
          "bytes_total": {
            "anyOf": [
              {
                "maximum": 8589934592.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Total"
          },
          "bytes_verified": {
            "anyOf": [
              {
                "maximum": 8589934592.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bytes Verified"
          },
          "component_id": {
            "anyOf": [
              {
                "enum": [
                  "trivy-db",
                  "trivy-java-db",
                  "trivy-checks",
                  "opengrep-reviewed-rules",
                  "bearer-rules",
                  "grype-db"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Component Id"
          },
          "generation_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Generation Id",
            "type": "string"
          },
          "last_activity_at": {
            "maxLength": 32,
            "title": "Last Activity At",
            "type": "string"
          },
          "phase": {
            "enum": [
              "queued",
              "validating",
              "hashing"
            ],
            "title": "Phase",
            "type": "string"
          },
          "started_at": {
            "maxLength": 32,
            "title": "Started At",
            "type": "string"
          },
          "state": {
            "enum": [
              "verifying",
              "timed_out",
              "failed"
            ],
            "title": "State",
            "type": "string"
          },
          "target": {
            "enum": [
              "active",
              "previous_good"
            ],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "state",
          "target",
          "generation_id",
          "phase",
          "component_id",
          "started_at",
          "last_activity_at",
          "bytes_verified",
          "bytes_total"
        ],
        "title": "ScannerCacheVerificationOut",
        "type": "object"
      },
      "ScannerCacheVerificationRetryRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_generation": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Expected Generation",
            "type": "string"
          },
          "target": {
            "enum": [
              "active",
              "previous_good"
            ],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "target",
          "expected_generation"
        ],
        "title": "ScannerCacheVerificationRetryRequest",
        "type": "object"
      },
      "ScannerLifecycleCommandOut": {
        "properties": {
          "job": {
            "$ref": "#/components/schemas/JobOut"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/ScannerLifecycleScopeOut"
          }
        },
        "required": [
          "job",
          "lifecycle"
        ],
        "title": "ScannerLifecycleCommandOut",
        "type": "object"
      },
      "ScannerLifecycleOut": {
        "properties": {
          "cache": {
            "$ref": "#/components/schemas/ScannerLifecycleScopeOut"
          },
          "catalog": {
            "$ref": "#/components/schemas/ScannerLifecycleScopeOut"
          }
        },
        "required": [
          "catalog",
          "cache"
        ],
        "title": "ScannerLifecycleOut",
        "type": "object"
      },
      "ScannerLifecycleScopeOut": {
        "properties": {
          "active_generation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active Generation"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Detail"
          },
          "job_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Id"
          },
          "job_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Url"
          },
          "previous_generation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Generation"
          },
          "receipt": {
            "additionalProperties": true,
            "title": "Receipt",
            "type": "object"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "scope": {
            "enum": [
              "catalog",
              "cache"
            ],
            "title": "Scope",
            "type": "string"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "enum": [
              "idle",
              "queued",
              "leased",
              "running",
              "cancelling",
              "completed",
              "failed",
              "cancelled"
            ],
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "scope",
          "status",
          "revision",
          "job_id",
          "job_url",
          "active_generation",
          "previous_generation",
          "receipt",
          "error_code",
          "error_detail",
          "started_at",
          "completed_at",
          "updated_at"
        ],
        "title": "ScannerLifecycleScopeOut",
        "type": "object"
      },
      "ScannerPreflightBlockedToolOut": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Blocking Reasons",
            "type": "array"
          },
          "id": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "preparation_blocking_reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "title": "Preparation Blocking Reasons",
            "type": "array"
          },
          "required_component_ids": {
            "items": {
              "enum": [
                "trivy-db",
                "trivy-java-db",
                "trivy-checks",
                "opengrep-reviewed-rules",
                "bearer-rules",
                "grype-db"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Required Component Ids",
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "blocking_reasons",
          "required_component_ids",
          "preparation_blocking_reasons"
        ],
        "title": "ScannerPreflightBlockedToolOut",
        "type": "object"
      },
      "ScannerPreflightOut": {
        "additionalProperties": false,
        "description": "One safe readiness snapshot shared by UI, IDE, CLI, and future CI.",
        "properties": {
          "active_generation": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active Generation"
          },
          "blocked_tools": {
            "items": {
              "$ref": "#/components/schemas/ScannerPreflightBlockedToolOut"
            },
            "maxItems": 32,
            "title": "Blocked Tools",
            "type": "array"
          },
          "cache_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cache Revision"
          },
          "cache_rollback": {
            "$ref": "#/components/schemas/ScannerCacheRollbackEligibilityOut"
          },
          "cache_verification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScannerCacheVerificationOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "catalog_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Revision"
          },
          "enabled_tool_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Enabled Tool Ids",
            "type": "array"
          },
          "preparation_available": {
            "title": "Preparation Available",
            "type": "boolean"
          },
          "ready": {
            "title": "Ready",
            "type": "boolean"
          },
          "ready_tool_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Ready Tool Ids",
            "type": "array"
          },
          "recommended_action": {
            "enum": [
              "scan",
              "prepare_scanners",
              "enable_scanner",
              "repair_scanner_runtime",
              "wait_for_scanner_verification",
              "retry_scanner_verification"
            ],
            "title": "Recommended Action",
            "type": "string"
          },
          "required_component_ids": {
            "items": {
              "enum": [
                "trivy-db",
                "trivy-java-db",
                "trivy-checks",
                "opengrep-reviewed-rules",
                "bearer-rules",
                "grype-db"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Required Component Ids",
            "type": "array"
          },
          "revision": {
            "maxLength": 64,
            "minLength": 64,
            "pattern": "^[0-9a-f]{64}$",
            "title": "Revision",
            "type": "string"
          },
          "schema_version": {
            "const": 1,
            "default": 1,
            "title": "Schema Version",
            "type": "integer"
          }
        },
        "required": [
          "revision",
          "ready",
          "enabled_tool_ids",
          "ready_tool_ids",
          "blocked_tools",
          "required_component_ids",
          "preparation_available",
          "cache_rollback",
          "recommended_action"
        ],
        "title": "ScannerPreflightOut",
        "type": "object"
      },
      "ScannerPreparationCommandOut": {
        "properties": {
          "cache": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScannerLifecycleCommandOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "catalog": {
            "$ref": "#/components/schemas/ScannerLifecycleCommandOut"
          },
          "required_component_ids": {
            "items": {
              "enum": [
                "trivy-db",
                "trivy-java-db",
                "trivy-checks",
                "opengrep-reviewed-rules",
                "bearer-rules",
                "grype-db"
              ],
              "type": "string"
            },
            "title": "Required Component Ids",
            "type": "array"
          }
        },
        "required": [
          "catalog",
          "cache",
          "required_component_ids"
        ],
        "title": "ScannerPreparationCommandOut",
        "type": "object"
      },
      "ScannerReadinessFacetOut": {
        "additionalProperties": false,
        "properties": {
          "component_ids": {
            "items": {
              "enum": [
                "trivy-db",
                "trivy-java-db",
                "trivy-checks",
                "opengrep-reviewed-rules",
                "bearer-rules",
                "grype-db"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Component Ids",
            "type": "array"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "state": {
            "enum": [
              "ready",
              "not_required",
              "unattested",
              "unavailable",
              "stale",
              "invalid",
              "verifying",
              "verification_timeout",
              "verification_failed"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "component_ids"
        ],
        "title": "ScannerReadinessFacetOut",
        "type": "object"
      },
      "ScannerReconciliationCommandOut": {
        "properties": {
          "job": {
            "$ref": "#/components/schemas/JobOut"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/ScannerLifecycleScopeOut"
          },
          "original_job_id": {
            "title": "Original Job Id",
            "type": "integer"
          }
        },
        "required": [
          "job",
          "lifecycle",
          "original_job_id"
        ],
        "title": "ScannerReconciliationCommandOut",
        "type": "object"
      },
      "ScannerToolOut": {
        "properties": {
          "artifacts_count": {
            "default": 0,
            "title": "Artifacts Count",
            "type": "integer"
          },
          "available": {
            "default": false,
            "title": "Available",
            "type": "boolean"
          },
          "candidate_manifest_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Manifest Sha256"
          },
          "candidate_release_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Release Id"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "current_version": {
            "title": "Current Version",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "findings_count": {
            "title": "Findings Count",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "installed_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Installed Version"
          },
          "last_checked_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Checked At"
          },
          "last_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Error"
          },
          "latest_version": {
            "title": "Latest Version",
            "type": "string"
          },
          "lifecycle": {
            "title": "Lifecycle",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "output_format": {
            "title": "Output Format",
            "type": "string"
          },
          "pinned_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pinned Version"
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "readiness": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScannerToolReadinessOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "runtime_ready": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Runtime Ready"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "update_available": {
            "title": "Update Available",
            "type": "boolean"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": [
          "id",
          "name",
          "category",
          "lifecycle",
          "source",
          "output_format",
          "description",
          "enabled",
          "current_version",
          "latest_version",
          "pinned_version",
          "status",
          "update_available",
          "findings_count",
          "last_checked_at",
          "updated_at"
        ],
        "title": "ScannerToolOut",
        "type": "object"
      },
      "ScannerToolPatch": {
        "properties": {
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enabled"
          },
          "pinned_version": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pinned Version"
          }
        },
        "title": "ScannerToolPatch",
        "type": "object"
      },
      "ScannerToolReadinessOut": {
        "additionalProperties": false,
        "properties": {
          "binary": {
            "$ref": "#/components/schemas/ScannerReadinessFacetOut"
          },
          "data": {
            "$ref": "#/components/schemas/ScannerReadinessFacetOut"
          },
          "execution": {
            "$ref": "#/components/schemas/ScannerReadinessFacetOut"
          },
          "rules": {
            "$ref": "#/components/schemas/ScannerReadinessFacetOut"
          }
        },
        "required": [
          "binary",
          "data",
          "rules",
          "execution"
        ],
        "title": "ScannerToolReadinessOut",
        "type": "object"
      },
      "SchemaInitStatusOut": {
        "properties": {
          "evidence": {
            "anyOf": [
              {
                "const": "schema-identity-and-api-startup-verification",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence"
          },
          "id": {
            "const": "schema-init",
            "title": "Id",
            "type": "string"
          },
          "initialized_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Initialized At"
          },
          "lifecycle": {
            "const": "one-shot",
            "title": "Lifecycle",
            "type": "string"
          },
          "message": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "schema_fingerprint": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schema Fingerprint"
          },
          "schema_id": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schema Id"
          },
          "startable": {
            "const": false,
            "title": "Startable",
            "type": "boolean"
          },
          "state": {
            "enum": [
              "completed",
              "unverified"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "id",
          "lifecycle",
          "startable",
          "state",
          "message",
          "initialized_at",
          "evidence"
        ],
        "title": "SchemaInitStatusOut",
        "type": "object"
      },
      "SourceOpenAck": {
        "additionalProperties": false,
        "properties": {
          "error_code": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "status": {
            "enum": [
              "opened",
              "failed"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "SourceOpenAck",
        "type": "object"
      },
      "SourceOpenCreate": {
        "additionalProperties": false,
        "properties": {
          "expected_finding_revision": {
            "minimum": 1.0,
            "title": "Expected Finding Revision",
            "type": "integer"
          },
          "expected_findings_revision": {
            "minimum": 1.0,
            "title": "Expected Findings Revision",
            "type": "integer"
          },
          "expected_target_generation": {
            "maximum": 2147483647.0,
            "minimum": 1.0,
            "title": "Expected Target Generation",
            "type": "integer"
          },
          "finding_id": {
            "minimum": 1.0,
            "title": "Finding Id",
            "type": "integer"
          },
          "target_capability_id": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Target Capability Id",
            "type": "string"
          }
        },
        "required": [
          "finding_id",
          "expected_finding_revision",
          "expected_findings_revision",
          "target_capability_id",
          "expected_target_generation"
        ],
        "title": "SourceOpenCreate",
        "type": "object"
      },
      "SourcePreviewOut": {
        "additionalProperties": false,
        "description": "Configured mount authorization only; scan admission rechecks source safety.",
        "properties": {
          "authorization_mode": {
            "const": "mounted",
            "default": "mounted",
            "title": "Authorization Mode",
            "type": "string"
          },
          "authorized": {
            "title": "Authorized",
            "type": "boolean"
          },
          "configured_roots": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Configured Roots",
            "type": "array"
          },
          "installation_id": {
            "pattern": "^[0-9a-f]{12}$",
            "title": "Installation Id",
            "type": "string"
          },
          "reason_code": {
            "anyOf": [
              {
                "const": "source_outside_allowed_root",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason Code"
          },
          "repo_path": {
            "title": "Repo Path",
            "type": "string"
          }
        },
        "required": [
          "installation_id",
          "repo_path",
          "authorized",
          "configured_roots",
          "reason_code"
        ],
        "title": "SourcePreviewOut",
        "type": "object"
      },
      "SourcePreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "repo_path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Repo Path",
            "type": "string"
          }
        },
        "required": [
          "repo_path"
        ],
        "title": "SourcePreviewRequest",
        "type": "object"
      },
      "SourceSnapshotCreate": {
        "additionalProperties": false,
        "description": "Explicit bounded source material admitted only by the snapshot route.",
        "properties": {
          "directory_scope": {
            "anyOf": [
              {
                "maxLength": 4096,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Directory Scope"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/SourceSnapshotFile"
            },
            "maxItems": 5000,
            "title": "Files",
            "type": "array"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "source_id": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Source Id",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "name",
          "files"
        ],
        "title": "SourceSnapshotCreate",
        "type": "object"
      },
      "SourceSnapshotFile": {
        "additionalProperties": false,
        "description": "One bounded regular file in a native-Windows local source snapshot.",
        "properties": {
          "content_base64": {
            "maxLength": 11184812,
            "minLength": 0,
            "title": "Content Base64",
            "type": "string"
          },
          "path": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Sha256",
            "type": "string"
          },
          "size_bytes": {
            "maximum": 8388608.0,
            "minimum": 0.0,
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": [
          "path",
          "content_base64",
          "sha256",
          "size_bytes"
        ],
        "title": "SourceSnapshotFile",
        "type": "object"
      },
      "SourceSnapshotOut": {
        "properties": {
          "directory_scope": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Directory Scope"
          },
          "file_count": {
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "File Count",
            "type": "integer"
          },
          "project": {
            "$ref": "#/components/schemas/ProjectOut"
          },
          "snapshot_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Snapshot Digest",
            "type": "string"
          },
          "total_bytes": {
            "maximum": 67108864.0,
            "minimum": 0.0,
            "title": "Total Bytes",
            "type": "integer"
          }
        },
        "required": [
          "project",
          "snapshot_digest",
          "directory_scope",
          "file_count",
          "total_bytes"
        ],
        "title": "SourceSnapshotOut",
        "type": "object"
      },
      "TriageRequest": {
        "additionalProperties": false,
        "properties": {
          "acknowledge_remote_source_disclosure": {
            "default": false,
            "title": "Acknowledge Remote Source Disclosure",
            "type": "boolean"
          },
          "advisor_provider_pin": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdvisorTriageProviderPin"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "model": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "remote_advisor_confirmation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdvisorDisclosureConfirmationOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "expected_revision"
        ],
        "title": "TriageRequest",
        "type": "object"
      },
      "ValidationError": {
        "additionalProperties": false,
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array"
          },
          "msg": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "loc",
          "msg"
        ],
        "title": "SanitizedValidationError",
        "type": "object"
      }
    },
    "securitySchemes": {
      "BrowserSession": {
        "description": "HttpOnly browser session established by the supported local pairing flow; not a generic API key.",
        "in": "cookie",
        "name": "kodesec_session",
        "type": "apiKey"
      },
      "IdeCapability": {
        "description": "Exact profile, origin and generation bound IDE protocol authority. Never extract it for general-purpose scripts.",
        "scheme": "bearer",
        "type": "http"
      },
      "PendingIdeCapability": {
        "description": "Pending IDE enrollment protocol only.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Static source preview reference. No server or executable console is provided. Broad source contracts remain broad; runtime checks and middleware are described separately.",
    "title": "Lomo CodeSecurity control API",
    "version": "0.1.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/healthz": {
      "get": {
        "operationId": "control-get-healthz",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Healthz Healthz Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [],
        "summary": "Healthz",
        "tags": [
          "Diagnostics"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "diagnostic",
          "label": "No browser session required by middleware. Exact Host and Origin boundary still applies.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2780"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/metrics": {
      "get": {
        "operationId": "control-get-metrics",
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Prometheus text exposition."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          }
        },
        "security": [],
        "summary": "Metrics",
        "tags": [
          "Diagnostics"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "diagnostic",
          "label": "No browser session required by middleware. Exact Host and Origin boundary still applies.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2838"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/advisor/local-models": {
      "get": {
        "operationId": "control-get-v1-advisor-local-models",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorLocalCatalogOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List local advisor models",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2998"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3024",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/advisor/providers": {
      "get": {
        "operationId": "control-get-v1-advisor-providers",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorProviderCollectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "List advisor providers",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "finding:advisor",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:advisor. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2989"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "post": {
        "operationId": "control-post-v1-advisor-providers",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvisorProviderWriteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorProviderCollectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Create advisor provider",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3083"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3104",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2962",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/advisor/providers/{provider_id}": {
      "delete": {
        "operationId": "control-delete-v1-advisor-providers-provider-id",
        "parameters": [
          {
            "in": "path",
            "name": "provider_id",
            "required": true,
            "schema": {
              "title": "Provider Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvisorProviderDeleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorProviderCollectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Delete advisor provider",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3160"
        },
        "x-source-errors": [
          {
            "detail": "advisor provider not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3181",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2962",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "put": {
        "operationId": "control-put-v1-advisor-providers-provider-id",
        "parameters": [
          {
            "in": "path",
            "name": "provider_id",
            "required": true,
            "schema": {
              "title": "Provider Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvisorProviderWriteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorProviderCollectionOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Replace advisor provider",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3112"
        },
        "x-source-errors": [
          {
            "detail": "route and provider ids must match",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3119",
            "status": 422
          },
          {
            "detail": "advisor provider not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3149",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3152",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2962",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/advisor/providers/{provider_id}/commands": {
      "post": {
        "operationId": "control-post-v1-advisor-providers-provider-id-commands",
        "parameters": [
          {
            "in": "path",
            "name": "provider_id",
            "required": true,
            "schema": {
              "title": "Provider Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvisorProviderCommandRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Command advisor provider",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3190"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3268",
            "status": 409
          },
          {
            "detail": "advisor provider not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3218",
            "status": 404
          },
          {
            "detail": "disabled advisor provider cannot be tested or activated",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3221",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3224",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3245",
            "status": 422
          },
          {
            "detail": "source disclosure approval is accepted only for remote activation",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3260",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2962",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": "command payload must be an object",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4260",
            "status": 422
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/advisor/providers/{provider_id}/receipt": {
      "get": {
        "operationId": "control-get-v1-advisor-providers-provider-id-receipt",
        "parameters": [
          {
            "in": "path",
            "name": "provider_id",
            "required": true,
            "schema": {
              "title": "Provider Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorProviderReceiptOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Get advisor provider receipt",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3054"
        },
        "x-source-errors": [
          {
            "detail": "no current verified receipt exists for this provider",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3074",
            "status": 404
          },
          {
            "detail": "advisor provider not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3063",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/advisor/triage-request-audit": {
      "get": {
        "description": "Return a body-free bounded audit window for one finding-triage route.",
        "operationId": "control-get-v1-advisor-triage-request-audit",
        "parameters": [
          {
            "in": "query",
            "name": "finding_id",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Finding Id",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "after_sequence",
            "required": true,
            "schema": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "title": "After Sequence",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  },
                  "title": "Response Advisor Triage Request Audit V1 Advisor Triage Request Audit Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Advisor triage request audit",
        "tags": [
          "Advisor"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "finding:advisor",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:advisor. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3037"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/artifacts/{artifact_id}/download": {
      "get": {
        "operationId": "control-get-v1-artifacts-artifact-id-download",
        "parameters": [
          {
            "in": "path",
            "name": "artifact_id",
            "required": true,
            "schema": {
              "title": "Artifact Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/vnd.cyclonedx+json": {
                "schema": {
                  "description": "Supported redacted CycloneDX document; no narrower response model declared.",
                  "type": "object"
                }
              }
            },
            "description": "Verified bounded CycloneDX SBOM; inline or attachment disposition.",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                }
              },
              "Content-Length": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Download artifact",
        "tags": [
          "Artifacts"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5769"
        },
        "x-source-errors": [
          {
            "detail": "artifact not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5735",
            "status": 404
          },
          {
            "detail": "artifact file is unavailable or no longer verified",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5739",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/artifacts/{artifact_id}/open": {
      "get": {
        "operationId": "control-get-v1-artifacts-artifact-id-open",
        "parameters": [
          {
            "in": "path",
            "name": "artifact_id",
            "required": true,
            "schema": {
              "title": "Artifact Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/vnd.cyclonedx+json": {
                "schema": {
                  "description": "Supported redacted CycloneDX document; no narrower response model declared.",
                  "type": "object"
                }
              }
            },
            "description": "Verified bounded CycloneDX SBOM; inline or attachment disposition.",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                }
              },
              "Content-Length": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Open artifact",
        "tags": [
          "Artifacts"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5759"
        },
        "x-source-errors": [
          {
            "detail": "artifact not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5735",
            "status": 404
          },
          {
            "detail": "artifact file is unavailable or no longer verified",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5739",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/bootstrap": {
      "post": {
        "operationId": "control-post-v1-auth-bootstrap",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BootstrapRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Bootstrap V1 Auth Bootstrap Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [],
        "summary": "Bootstrap",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "bootstrap",
          "label": "One-time browser bootstrap or invitation protocol. Exact control origin required; existing-session handling is source-defined.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1737"
        },
        "x-source-errors": [
          {
            "detail": "browser membership identity is unavailable",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1774",
            "status": 409
          },
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1234",
            "status": 401
          },
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1244",
            "status": 401
          },
          {
            "detail": "one-time credential already consumed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L539",
            "status": 409
          },
          {
            "detail": "invalid one-time credential",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L511",
            "status": 401
          },
          {
            "detail": "one-time credential already consumed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L519",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/browser/pairing-token": {
      "post": {
        "operationId": "control-post-v1-auth-browser-pairing-token",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowserPairingTokenIssueResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Rotate browser pairing token",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2834"
        },
        "x-source-errors": [
          {
            "detail": "one-time credential already consumed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L539",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/browser/sessions": {
      "get": {
        "operationId": "control-get-v1-auth-browser-sessions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BrowserMemberResponse"
                  },
                  "title": "Response List Browser Members V1 Auth Browser Sessions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List browser members",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2853"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/browser/sessions/{member_id}": {
      "delete": {
        "operationId": "control-delete-v1-auth-browser-sessions-member-id",
        "parameters": [
          {
            "in": "path",
            "name": "member_id",
            "required": true,
            "schema": {
              "title": "Member Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BrowserMemberRevocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Revoke Browser Member V1 Auth Browser Sessions  Member Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Revoke browser member",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2884"
        },
        "x-source-errors": [
          {
            "detail": "browser member not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2894",
            "status": 404
          },
          {
            "detail": "browser member not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2902",
            "status": 404
          },
          {
            "detail": {
              "action": "refresh_browser_members",
              "code": "browser_member_revision_conflict",
              "message": "The browser member changed before this revocation was applied."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2917",
            "status": 409
          },
          {
            "detail": {
              "action": "review_browser_members",
              "code": "browser_member_state_invalid",
              "message": "The stored browser member is invalid and cannot be revoked safely."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2910",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/activate": {
      "post": {
        "operationId": "control-post-v1-auth-ide-activate",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapabilityActivationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "PendingIdeCapability": []
          }
        ],
        "summary": "Activate ide capability",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "pending",
          "label": "Exact pending IDE capability protocol. Activation and owner-claim/wait have source-defined active-generation reconciliation.",
          "pending": true,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2531"
        },
        "x-source-errors": [
          {
            "detail": "invalid IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2541",
            "status": 401
          },
          {
            "detail": "invalid IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2546",
            "status": 401
          },
          {
            "detail": "invalid or superseded pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2584",
            "status": 401
          },
          {
            "detail": "IDE capability required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1715",
            "status": 401
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/browser-invitations": {
      "post": {
        "operationId": "control-post-v1-auth-ide-browser-invitations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdeBrowserInvitationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdeBrowserInvitationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "IdeCapability": []
          }
        ],
        "summary": "Create ide browser invitation",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": "browser:invite",
          "kind": "ide",
          "label": "Exact active IDE capability with browser:invite. Handler requires IDE authority; a browser session alone is insufficient.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2736"
        },
        "x-source-errors": [
          {
            "detail": "active IDE capability required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L779",
            "status": 403
          },
          {
            "detail": "active IDE capability required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L785",
            "status": 401
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/browser-invitations/{invitation_id}/membership": {
      "get": {
        "description": "Wait once for one IDE-issued browser invitation to become durable.",
        "operationId": "control-get-v1-auth-ide-browser-invitations-invitation-id-membership",
        "parameters": [
          {
            "in": "path",
            "name": "invitation_id",
            "required": true,
            "schema": {
              "title": "Invitation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/IdeBrowserInvitationPendingResponse"
                    },
                    {
                      "$ref": "#/components/schemas/IdeBrowserInvitationActiveResponse"
                    },
                    {
                      "$ref": "#/components/schemas/IdeBrowserInvitationMissingResponse"
                    }
                  ],
                  "title": "Response Wait For Ide Browser Membership V1 Auth Ide Browser Invitations  Invitation Id  Membership Get"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "IdeCapability": []
          }
        ],
        "summary": "Wait for ide browser membership",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": "browser:invite",
          "kind": "ide",
          "label": "Exact active IDE capability with browser:invite. Handler requires IDE authority; a browser session alone is insufficient.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2765"
        },
        "x-source-errors": [
          {
            "detail": "browser invitation not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1133",
            "status": 404
          },
          {
            "detail": "browser invitation not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1190",
            "status": 404
          },
          {
            "detail": "browser invitation not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1158",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/capabilities": {
      "get": {
        "operationId": "control-get-v1-auth-ide-capabilities",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/IdeCapabilityResponse"
                      },
                      {
                        "$ref": "#/components/schemas/InvalidIdeCapabilityResponse"
                      }
                    ]
                  },
                  "title": "Response List Ide Capabilities V1 Auth Ide Capabilities Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List ide capabilities",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2936"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/capabilities/{capability_id}": {
      "delete": {
        "operationId": "control-delete-v1-auth-ide-capabilities-capability-id",
        "parameters": [
          {
            "in": "path",
            "name": "capability_id",
            "required": true,
            "schema": {
              "title": "Capability Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CapabilityRevocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Revoke Ide Capability V1 Auth Ide Capabilities  Capability Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Revoke ide capability",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3036"
        },
        "x-source-errors": [
          {
            "detail": "IDE client slot not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3044",
            "status": 404
          },
          {
            "detail": "IDE client slot not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3048",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/capabilities/{capability_id}/invalid": {
      "delete": {
        "description": "Delete only the exact redacted invalid slot state the browser reviewed.",
        "operationId": "control-delete-v1-auth-ide-capabilities-capability-id-invalid",
        "parameters": [
          {
            "in": "path",
            "name": "capability_id",
            "required": true,
            "schema": {
              "title": "Capability Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvalidCapabilityRecoveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidCapabilityRecoveryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Recover invalid ide capability",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3115"
        },
        "x-source-errors": [
          {
            "detail": "IDE client slot not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3126",
            "status": 404
          },
          {
            "detail": "IDE client slot not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3130",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/capabilities/{capability_id}/pending": {
      "delete": {
        "operationId": "control-delete-v1-auth-ide-capabilities-capability-id-pending",
        "parameters": [
          {
            "in": "path",
            "name": "capability_id",
            "required": true,
            "schema": {
              "title": "Capability Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PendingCancellationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Cancel Pending Ide Capability From Browser V1 Auth Ide Capabilities  Capability Id  Pending Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Cancel pending ide capability from browser",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3174"
        },
        "x-source-errors": [
          {
            "detail": "IDE client slot not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3182",
            "status": 404
          },
          {
            "detail": "IDE client slot not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L3186",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/enrollments": {
      "get": {
        "operationId": "control-get-v1-auth-ide-enrollments",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IdeEnrollmentBrowserResponse"
                  },
                  "title": "Response List Pending Ide Enrollments V1 Auth Ide Enrollments Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List pending ide enrollments",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2174"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "post": {
        "description": "Create one browser-reviewed pending authority without a pasted secret.",
        "operationId": "control-post-v1-auth-ide-enrollments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdeEnrollmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdeEnrollmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [],
        "summary": "Create ide enrollment",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "enrollment",
          "label": "Pending IDE enrollment entry. Exact loopback control Host and authentication rate limits apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1846"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/enrollments/current/claim-first-owner": {
      "post": {
        "description": "Consume the installer bootstrap to approve only a pristine first IDE.",
        "operationId": "control-post-v1-auth-ide-enrollments-current-claim-first-owner",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdeFirstOwnerClaimRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdeEnrollmentStatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "PendingIdeCapability": []
          }
        ],
        "summary": "Claim first ide owner",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "pending",
          "label": "Exact pending IDE capability protocol. Activation and owner-claim/wait have source-defined active-generation reconciliation.",
          "pending": true,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2217"
        },
        "x-source-errors": [
          {
            "detail": "invalid pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2230",
            "status": 401
          },
          {
            "detail": "invalid pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2259",
            "status": 401
          },
          {
            "detail": "invalid one-time credential",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L511",
            "status": 401
          },
          {
            "detail": "one-time credential already consumed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L519",
            "status": 409
          },
          {
            "detail": "IDE capability required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1715",
            "status": 401
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/enrollments/current/wait": {
      "get": {
        "description": "Long-wait on a durable enrollment revision, then re-read its DB state.",
        "operationId": "control-get-v1-auth-ide-enrollments-current-wait",
        "parameters": [
          {
            "in": "query",
            "name": "after_revision",
            "required": true,
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "title": "After Revision",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdeEnrollmentStatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "PendingIdeCapability": []
          }
        ],
        "summary": "Wait for ide enrollment decision",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "pending",
          "label": "Exact pending IDE capability protocol. Activation and owner-claim/wait have source-defined active-generation reconciliation.",
          "pending": true,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2106"
        },
        "x-source-errors": [
          {
            "detail": "browser invitation not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1133",
            "status": 404
          },
          {
            "detail": "browser invitation not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1190",
            "status": 404
          },
          {
            "detail": "browser invitation not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1158",
            "status": 404
          },
          {
            "detail": "IDE enrollment authority required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2076",
            "status": 403
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/enrollments/{request_id}/decision": {
      "post": {
        "operationId": "control-post-v1-auth-ide-enrollments-request-id-decision",
        "parameters": [
          {
            "in": "path",
            "name": "request_id",
            "required": true,
            "schema": {
              "title": "Request Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdeEnrollmentDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdeEnrollmentStatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Decide ide enrollment",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2430"
        },
        "x-source-errors": [
          {
            "detail": "IDE enrollment request not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2438",
            "status": 404
          },
          {
            "detail": "IDE enrollment request not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2442",
            "status": 404
          },
          {
            "detail": "IDE enrollment request not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2459",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/ide/pending": {
      "delete": {
        "operationId": "control-delete-v1-auth-ide-pending",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Cancel Pending Ide Capability V1 Auth Ide Pending Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "PendingIdeCapability": []
          }
        ],
        "summary": "Cancel pending ide capability",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": false,
          "csrf": false,
          "ideScope": null,
          "kind": "pending",
          "label": "Exact pending IDE capability protocol. Activation and owner-claim/wait have source-defined active-generation reconciliation.",
          "pending": true,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2681"
        },
        "x-source-errors": [
          {
            "detail": "invalid pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2690",
            "status": 401
          },
          {
            "detail": "invalid pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2695",
            "status": 401
          },
          {
            "detail": "invalid or superseded pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2711",
            "status": 401
          },
          {
            "detail": "invalid pending IDE capability",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L2700",
            "status": 401
          },
          {
            "detail": "IDE capability required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1715",
            "status": 401
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/logout": {
      "post": {
        "operationId": "control-post-v1-auth-logout",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "boolean"
                  },
                  "title": "Response Logout V1 Auth Logout Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Logout",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1825"
        },
        "x-source-errors": [
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1261",
            "status": 401
          },
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1269",
            "status": 401
          },
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1277",
            "status": 401
          },
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1274",
            "status": 401
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/auth/session": {
      "get": {
        "operationId": "control-get-v1-auth-session",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Session V1 Auth Session Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Session",
        "tags": [
          "Authentication"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "419beba8bd664a5b2d3895a820d3e27ab3bbfa60bc792d52b88488466bec66bc",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1798"
        },
        "x-source-errors": [
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1234",
            "status": 401
          },
          {
            "detail": "browser member is missing or revoked, or its local cookie was removed",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1244",
            "status": 401
          },
          {
            "detail": "browser session required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/auth.py#L1687",
            "status": 403
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/config": {
      "get": {
        "operationId": "control-get-v1-config",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeConfigOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Config",
        "tags": [
          "Configuration"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2918"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "put": {
        "operationId": "control-put-v1-config",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RuntimeConfigUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeConfigOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update config",
        "tags": [
          "Configuration"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2923"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2930",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/config/advisor": {
      "patch": {
        "operationId": "control-patch-v1-config-advisor",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RuntimeAdvisorConfigUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeConfigOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update advisor config",
        "tags": [
          "Configuration"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2937"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L2948",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/config/components": {
      "patch": {
        "operationId": "control-patch-v1-config-components",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RuntimeComponentsConfigUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeConfigOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update components config",
        "tags": [
          "Configuration"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3318"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/config/gate": {
      "patch": {
        "operationId": "control-patch-v1-config-gate",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RuntimeGateConfigUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuntimeConfigOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update gate config",
        "tags": [
          "Configuration"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3298"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/dashboard/summary": {
      "get": {
        "operationId": "control-get-v1-dashboard-summary",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Dashboard Summary V1 Dashboard Summary Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Dashboard summary",
        "tags": [
          "Diagnostics"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6764"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/events": {
      "get": {
        "operationId": "control-get-v1-events",
        "parameters": [
          {
            "description": "Last observed event sequence; no query parameters permitted.",
            "in": "header",
            "name": "Last-Event-ID",
            "required": false,
            "schema": {
              "pattern": "^[0-9]+$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/event-stream": {
                "example": ": keepalive\n\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Bounded SSE replay and live hints; reconcile REST after reset/disconnect."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Stream events",
        "tags": [
          "Events"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "event:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with event:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "deabd874686930403dd3c4749972327f2a91ab9bd9360bd7dc9f6733c8d53fd1",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1260"
        },
        "x-source-errors": [
          {
            "detail": "event stream parameters are forbidden in the URL",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1265",
            "status": 400
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1268",
            "status": 401
          },
          {
            "detail": "event stream is unavailable",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1272",
            "status": 503
          },
          {
            "detail": "event stream connection limit reached",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1287",
            "status": 429
          },
          {
            "detail": "event stream listener is unavailable",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1291",
            "status": 503
          },
          {
            "detail": "invalid IDE event-stream authorization",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1277",
            "status": 401
          },
          {
            "detail": "Last-Event-ID must be a non-negative decimal integer",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1252",
            "status": 400
          },
          {
            "detail": "Last-Event-ID is outside the supported range",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/events.py#L1255",
            "status": 400
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/findings/bulk": {
      "post": {
        "operationId": "control-post-v1-findings-bulk",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FindingBulkAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Bulk Findings V1 Findings Bulk Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Bulk Findings V1 Findings Bulk Post",
                  "type": "object"
                }
              }
            },
            "description": "Triage action accepted; other bulk actions retain 200."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Bulk findings",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5779"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5834",
            "status": 404
          },
          {
            "detail": "one or more finding scans no longer exist",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5848",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5860",
            "status": 404
          },
          {
            "detail": "expected_revisions must contain exactly one revision for every selected finding",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5863",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5873",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5815",
            "status": 409
          },
          {
            "detail": "bulk advisor triage requires findings from one scan",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5883",
            "status": 422
          },
          {
            "detail": "bulk advisor triage accepts active findings only",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5886",
            "status": 409
          },
          {
            "detail": "advisor triage requires a terminal scan with persisted findings",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5890",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L588",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L627",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L372",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4439",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4451",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4482",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4495",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4520",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4468",
            "status": 409
          },
          {
            "detail": "the selected Advisor provider no longer exists",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4327",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4351",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4333",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4401",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": "command payload must be an object",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4260",
            "status": 422
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/findings/{finding_id}": {
      "delete": {
        "operationId": "control-delete-v1-findings-finding-id",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "expected_revision",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Expected Revision",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Delete Finding V1 Findings  Finding Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Delete finding",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "finding:delete",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:delete. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6381"
        },
        "x-source-errors": [
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6390",
            "status": 404
          },
          {
            "detail": "finding context not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6395",
            "status": 404
          },
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6402",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6404",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L372",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "get": {
        "operationId": "control-get-v1-findings-finding-id",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Get finding",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5951"
        },
        "x-source-errors": [
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5954",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/findings/{finding_id}/advisor-disclosure-preview": {
      "post": {
        "description": "Describe and hash the exact remote payload without transmitting it.",
        "operationId": "control-post-v1-findings-finding-id-advisor-disclosure-preview",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvisorDisclosurePreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvisorDisclosurePreviewOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Preview finding advisor disclosure",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5978"
        },
        "x-source-errors": [
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5988",
            "status": 404
          },
          {
            "detail": "finding context not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5992",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5994",
            "status": 409
          },
          {
            "detail": "Advisor disclosure preview requires one active terminal finding",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6012",
            "status": 409
          },
          {
            "detail": "no remote Advisor provider is active",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6016",
            "status": 409
          },
          {
            "detail": "the active Advisor route is local and needs no remote disclosure",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6022",
            "status": 409
          },
          {
            "detail": "the remote Advisor provider is not currently active",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6024",
            "status": 409
          },
          {
            "detail": "the remote Advisor provider is not authorized",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6028",
            "status": 409
          },
          {
            "detail": "the remote Advisor provider has no current exact test receipt",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6032",
            "status": 409
          },
          {
            "detail": "advisor provider not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6020",
            "status": 404
          },
          {
            "detail": "remote Advisor consent is missing or stale",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6052",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/findings/{finding_id}/lifecycle": {
      "patch": {
        "operationId": "control-patch-v1-findings-finding-id-lifecycle",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FindingLifecycleUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindingOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Update finding lifecycle",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "finding:lifecycle",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:lifecycle. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6340"
        },
        "x-source-errors": [
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6345",
            "status": 404
          },
          {
            "detail": "finding context not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6350",
            "status": 404
          },
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6357",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6359",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L588",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L627",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/findings/{finding_id}/packet": {
      "get": {
        "operationId": "control-get-v1-findings-finding-id-packet",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Packet V1 Findings  Finding Id  Packet Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Get packet",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5963"
        },
        "x-source-errors": [
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5966",
            "status": 404
          },
          {
            "detail": "finding context not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5970",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/findings/{finding_id}/triage": {
      "post": {
        "operationId": "control-post-v1-findings-finding-id-triage",
        "parameters": [
          {
            "in": "path",
            "name": "finding_id",
            "required": true,
            "schema": {
              "title": "Finding Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Triage finding",
        "tags": [
          "Findings"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "finding:advisor",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:advisor. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6056"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6129",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6149",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6159",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6173",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6183",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6196",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6116",
            "status": 409
          },
          {
            "detail": "finding context not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6230",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6258",
            "status": 409
          },
          {
            "detail": "Advisor command model does not match the confirmed provider pin",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6269",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6079",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6218",
            "status": 409
          },
          {
            "detail": "the selected Advisor provider no longer exists",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4327",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4351",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4333",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4439",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4451",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4482",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4495",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4520",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4468",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4401",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": "command payload must be an object",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4260",
            "status": 422
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/gate-policies/{project_id}": {
      "get": {
        "operationId": "control-get-v1-gate-policies-project-id",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Gate Policy V1 Gate Policies  Project Id  Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Get gate policy",
        "tags": [
          "Gates"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6727"
        },
        "x-source-errors": [
          {
            "detail": "gate policy not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6730",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "put": {
        "operationId": "control-put-v1-gate-policies-project-id",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GatePolicyUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Update Gate Policy V1 Gate Policies  Project Id  Put",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update gate policy",
        "tags": [
          "Gates"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6741"
        },
        "x-source-errors": [
          {
            "detail": "project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6744",
            "status": 404
          },
          {
            "detail": "gate policy not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6747",
            "status": 404
          },
          {
            "detail": "This project's gate policy changed. Reload the policy and review your draft before saving.",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6750",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection": {
      "get": {
        "operationId": "control-get-v1-git-push-protection",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "items": {
                      "additionalProperties": true,
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "title": "Response List Push Policies V1 Git Push Protection Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "description": "Correct the field or semantic validation error. Input values are omitted from control validation errors. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "List push policies",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L241"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection exceeds its registered repository bound."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L244",
            "status": 503
          },
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "post": {
        "operationId": "control-post-v1-git-push-protection",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushPolicyCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushPolicy"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Register push repository",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:create",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:create. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L254"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_member_revoked",
              "message": "Only a currently approved editor can request repository push protection."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L259",
            "status": 403
          },
          {
            "detail": {
              "code": "push_repository_limit",
              "message": "The installation already has the maximum registered push-protection repositories."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L295",
            "status": 409
          },
          {
            "detail": {
              "code": "push_revision_exhausted",
              "message": "This repository exhausted its safe policy revision range. Owner review is required."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L298",
            "status": 409
          },
          {
            "detail": {
              "code": "push_project_conflict",
              "message": "This repository is bound to a different source project. Review its existing policy."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L268",
            "status": 409
          },
          {
            "detail": {
              "code": "push_member_limit",
              "message": "Review existing repository members before requesting another editor."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L272",
            "status": 409
          },
          {
            "detail": {
              "code": "push_project_conflict",
              "message": "The selected project does not identify this exact repository source."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L283",
            "status": 409
          },
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Another profile registered this repository. Refresh its existing policy."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L307",
            "status": 409
          },
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          },
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Push protection changed in another window. Refresh before changing it."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L234",
            "status": 409
          },
          {
            "detail": {
              "code": "push_removal_corrupt",
              "message": "The removal receipt names another repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L196",
            "status": 503
          },
          {
            "detail": {
              "code": "push_removal_corrupt",
              "message": "This repository's removal receipt needs owner review."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L194",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection/{repository_id}": {
      "get": {
        "operationId": "control-get-v1-git-push-protection-repository-id",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushPolicy"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get push policy",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L249"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "patch": {
        "operationId": "control-patch-v1-git-push-protection-repository-id",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushPolicyUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushPolicy"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Update push policy",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L355"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Push protection changed in another window. Refresh before changing it."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L361",
            "status": 409
          },
          {
            "detail": {
              "code": "push_bypass_confirmation_required",
              "message": "Turning protection off allows failed or unscanned commits to be pushed. Confirm that choice explicitly."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L363",
            "status": 409
          },
          {
            "detail": {
              "code": "push_approval_required",
              "message": "Approve this editor’s repository push-protection request once in the paired browser’s Settings."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L217",
            "status": 403
          },
          {
            "detail": {
              "code": "push_member_revoked",
              "message": "This editor’s repository authority is no longer active."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L219",
            "status": 403
          },
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Push protection changed in another window. Refresh before changing it."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L234",
            "status": 409
          },
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection/{repository_id}/check": {
      "post": {
        "operationId": "control-post-v1-git-push-protection-repository-id-check",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushPlan"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Check Git Push V1 Git Push Protection  Repository Id  Check Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Check git push",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "7ef263a99a06512cb5381af43abe268fe4872be97f753edcd198e7a95c895bf9",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L218"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_repository_changed",
              "message": "The outgoing plan belongs to a different repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L226",
            "status": 422
          },
          {
            "detail": {
              "code": "push_evidence_corrupt",
              "message": "Immutable Git evidence names another source."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L269",
            "status": 503
          },
          {
            "detail": {
              "code": "push_evidence_corrupt",
              "message": "Immutable Git evidence lost its exact source project."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L272",
            "status": 503
          },
          {
            "detail": {
              "code": "push_evidence_corrupt",
              "message": "Immutable Git evidence needs owner review."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L267",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection/{repository_id}/members/{client_slot}/{generation}": {
      "post": {
        "operationId": "control-post-v1-git-push-protection-repository-id-members-client-slot-generation",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "client_slot",
            "required": true,
            "schema": {
              "title": "Client Slot",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "generation",
            "required": true,
            "schema": {
              "title": "Generation",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushMemberApproval"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushPolicy"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Approve push member",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L391"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Repository permissions changed. Refresh before approving this exact member."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L395",
            "status": 409
          },
          {
            "detail": {
              "code": "push_member_missing",
              "message": "This exact repository access request is no longer present."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L398",
            "status": 404
          },
          {
            "detail": {
              "code": "push_member_revoked",
              "message": "The requested editor generation is no longer active. Do not approve a replacement implicitly."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L400",
            "status": 409
          },
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Push protection changed in another window. Refresh before changing it."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L234",
            "status": 409
          },
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection/{repository_id}/observation": {
      "post": {
        "operationId": "control-post-v1-git-push-protection-repository-id-observation",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushHookObservation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushPolicy"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Observe push hook",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L375"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "The protection setting changed before hook verification. Inspect it again."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L379",
            "status": 409
          },
          {
            "detail": {
              "code": "push_hook_observation_invalid",
              "message": "An installed hook needs its exact observed digest."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L381",
            "status": 422
          },
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Push protection changed in another window. Refresh before changing it."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L234",
            "status": 409
          },
          {
            "detail": {
              "code": "push_approval_required",
              "message": "Approve this editor’s repository push-protection request once in the paired browser’s Settings."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L217",
            "status": 403
          },
          {
            "detail": {
              "code": "push_member_revoked",
              "message": "This editor’s repository authority is no longer active."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L219",
            "status": 403
          },
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection/{repository_id}/remove": {
      "post": {
        "description": "Forget only an explicitly removed host hook's registration, never its scan data.",
        "operationId": "control-post-v1-git-push-protection-repository-id-remove",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushPolicyRemoval"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Remove Push Repository V1 Git Push Protection  Repository Id  Remove Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Remove push repository",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "f9234d730f67ea73bc08314d81ed32d18b3ff14b8cf2575e3d660f4ff3468d43",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L312"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_removal_confirmation_required",
              "message": "Confirm removal of this clone's protection. Normal pushes will no longer be checked by Lomo."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L319",
            "status": 409
          },
          {
            "detail": {
              "code": "push_policy_changed",
              "message": "Protection changed before registration cleanup. The removed hook is not automatically restored; review the current setting."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L337",
            "status": 409
          },
          {
            "detail": {
              "code": "push_hook_changed",
              "message": "The removed hook does not match the last observed installation. No registration was deleted."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L339",
            "status": 409
          },
          {
            "detail": {
              "code": "push_member_revoked",
              "message": "This editor is no longer active. No registration cleanup was authorized."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L327",
            "status": 403
          },
          {
            "detail": {
              "code": "push_removal_changed",
              "message": "This removal does not match the retained cleanup receipt. Review this exact repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L331",
            "status": 409
          },
          {
            "detail": {
              "code": "push_repository_invalid",
              "message": "Select one registered Git repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L162",
            "status": 422
          },
          {
            "detail": {
              "code": "push_approval_required",
              "message": "Approve this editor’s repository push-protection request once in the paired browser’s Settings."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L217",
            "status": 403
          },
          {
            "detail": {
              "code": "push_member_revoked",
              "message": "This editor’s repository authority is no longer active."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L219",
            "status": 403
          },
          {
            "detail": {
              "code": "push_setup_required",
              "message": "Set up push protection for this exact repository in VS Code."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L177",
            "status": 404
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration has a different repository identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L183",
            "status": 503
          },
          {
            "detail": {
              "code": "push_policy_corrupt",
              "message": "Push protection configuration needs owner review; no push is approved."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L181",
            "status": 503
          },
          {
            "detail": {
              "code": "push_removal_corrupt",
              "message": "The removal receipt names another repository."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L196",
            "status": 503
          },
          {
            "detail": {
              "code": "push_removal_corrupt",
              "message": "This repository's removal receipt needs owner review."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_policy.py#L194",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/git/push-protection/{repository_id}/trees": {
      "post": {
        "operationId": "control-post-v1-git-push-protection-repository-id-trees",
        "parameters": [
          {
            "in": "path",
            "name": "repository_id",
            "required": true,
            "schema": {
              "title": "Repository Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "One exact encoded-body byte count, maximum 112 MiB.",
            "in": "header",
            "name": "Content-Length",
            "required": true,
            "schema": {
              "maximum": 117440512,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GitTreeUpload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Upload Git Tree V1 Git Push Protection  Repository Id  Trees Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Upload git tree",
        "tags": [
          "Git protection"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "7ef263a99a06512cb5381af43abe268fe4872be97f753edcd198e7a95c895bf9",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L179"
        },
        "x-source-errors": [
          {
            "detail": {
              "code": "push_project_unavailable",
              "message": "The registered source project was removed. Review this repository's protection before creating more scan data."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L184",
            "status": 409
          },
          {
            "detail": {
              "code": "push_tree_binding_changed",
              "message": "The immutable Git tree's stored source binding changed. Review it before scanning."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L210",
            "status": 409
          },
          {
            "detail": {
              "code": "push_tree_invalid",
              "message": "Uploaded files do not cover the complete immutable Git tree."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L142",
            "status": 422
          },
          {
            "detail": {
              "code": "push_tree_invalid",
              "message": "Immutable Git file bytes do not match their declared identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L114",
            "status": 422
          },
          {
            "detail": {
              "code": "push_tree_unsupported",
              "message": "The immutable tree exceeds the supported path depth or metadata bound."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L119",
            "status": 422
          },
          {
            "detail": {
              "code": "push_tree_unsupported",
              "message": "Git administration paths cannot be included in an immutable scan."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L121",
            "status": 422
          },
          {
            "detail": {
              "code": "push_tree_invalid",
              "message": "Immutable Git paths must be unique."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L128",
            "status": 422
          },
          {
            "detail": {
              "code": "push_tree_invalid",
              "message": "An immutable Git file is not valid bounded content."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L111",
            "status": 422
          },
          {
            "detail": {
              "code": "push_tree_invalid",
              "message": "Immutable Git paths overlap a regular file."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/git_push_evidence.py#L125",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/ide/source-open-commands": {
      "post": {
        "operationId": "control-post-v1-ide-source-open-commands",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceOpenCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Create Source Open Command V1 Ide Source Open Commands Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Create source open command",
        "tags": [
          "IDE source navigation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "4bc6778a7382297abea907582e118515caab525f05d5780efef3988ef947f683",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L192"
        },
        "x-source-errors": [
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L200",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L226",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L239",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L262",
            "status": 409
          },
          {
            "detail": "finding not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L278",
            "status": 404
          },
          {
            "detail": "finding scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L281",
            "status": 404
          },
          {
            "detail": "finding project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L284",
            "status": 404
          },
          {
            "detail": {
              "action": "open_finding_details",
              "code": "ide_source_immutable_git",
              "message": "This finding belongs to a committed Git snapshot, not the current workspace file. Read its captured details; historical editor navigation is not available."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L286",
            "status": 409
          },
          {
            "detail": {
              "action": "re_register_source",
              "code": "ide_source_project_noncanonical",
              "message": "The registered project for this source-open command has a non-canonical source identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L306",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L318",
            "status": 409
          },
          {
            "detail": "Idempotency-Key is already bound to a different source-open command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L215",
            "status": 409
          },
          {
            "detail": {
              "action": "re_register_source",
              "code": "ide_source_project_noncanonical",
              "message": "The registered project for this source-open command has an unsafe source identity."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L294",
            "status": 409
          },
          {
            "detail": "source-open command identity already exists",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L362",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/ide/source-open-commands/{command_id}": {
      "get": {
        "operationId": "control-get-v1-ide-source-open-commands-command-id",
        "parameters": [
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "title": "Command Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Source Open Command V1 Ide Source Open Commands  Command Id  Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Get source open command",
        "tags": [
          "IDE source navigation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "4bc6778a7382297abea907582e118515caab525f05d5780efef3988ef947f683",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L369"
        },
        "x-source-errors": [
          {
            "detail": "source-open command not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L146",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/ide/source-open-commands/{command_id}/ack": {
      "post": {
        "operationId": "control-post-v1-ide-source-open-commands-command-id-ack",
        "parameters": [
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "title": "Command Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceOpenAck"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Acknowledge Source Open Command V1 Ide Source Open Commands  Command Id  Ack Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Acknowledge source open command",
        "tags": [
          "IDE source navigation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "source:open-ack",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with source:open-ack. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "4bc6778a7382297abea907582e118515caab525f05d5780efef3988ef947f683",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L432"
        },
        "x-source-errors": [
          {
            "detail": {
              "action": "request_source_open_again",
              "code": "ide_source_command_expired",
              "message": "The source-open command expired before the IDE acknowledged it."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L441",
            "status": 409
          },
          {
            "detail": "A failed source-open acknowledgement requires a safe error_code",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L452",
            "status": 422
          },
          {
            "detail": "An opened source-open acknowledgement cannot include error_code",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L454",
            "status": 422
          },
          {
            "detail": "source-open command already has a different terminal acknowledgement",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L457",
            "status": 409
          },
          {
            "detail": "source-open command not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L165",
            "status": 404
          },
          {
            "detail": "source-open command not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L176",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/ide/source-open-commands/{command_id}/context": {
      "get": {
        "description": "Return only the registered source identity for one recipient-bound command.",
        "operationId": "control-get-v1-ide-source-open-commands-command-id-context",
        "parameters": [
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "title": "Command Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Source Open Project Context V1 Ide Source Open Commands  Command Id  Context Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get source open project context",
        "tags": [
          "IDE source navigation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "source:open-context",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with source:open-context. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "4bc6778a7382297abea907582e118515caab525f05d5780efef3988ef947f683",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L378"
        },
        "x-source-errors": [
          {
            "detail": {
              "action": "request_source_open_again",
              "code": "ide_source_command_not_pending",
              "message": "The source-open command is no longer pending for this IDE."
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L387",
            "status": 409
          },
          {
            "detail": "source-open command not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L165",
            "status": 404
          },
          {
            "detail": "source-open command not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L176",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/ide/source-open-commands/{command_id}/wait": {
      "get": {
        "operationId": "control-get-v1-ide-source-open-commands-command-id-wait",
        "parameters": [
          {
            "in": "path",
            "name": "command_id",
            "required": true,
            "schema": {
              "title": "Command Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Wait For Source Open Command V1 Ide Source Open Commands  Command Id  Wait Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Wait for source open command",
        "tags": [
          "IDE source navigation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "4bc6778a7382297abea907582e118515caab525f05d5780efef3988ef947f683",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L404"
        },
        "x-source-errors": [
          {
            "detail": "source-open command not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/ide_source.py#L146",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/jobs": {
      "get": {
        "operationId": "control-get-v1-jobs",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/JobOut"
                  },
                  "title": "Response List Jobs V1 Jobs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List jobs",
        "tags": [
          "Jobs"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6422"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/jobs/{job_id}": {
      "get": {
        "operationId": "control-get-v1-jobs-job-id",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get job",
        "tags": [
          "Jobs"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "job:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with job:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6432"
        },
        "x-source-errors": [
          {
            "detail": "job not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6439",
            "status": 404
          },
          {
            "detail": "IDE capability cannot access this job",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6491",
            "status": 403
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/jobs/{job_id}/cancel": {
      "post": {
        "operationId": "control-post-v1-jobs-job-id-cancel",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Cancel job",
        "tags": [
          "Jobs"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "job:cancel",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with job:cancel. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6445"
        },
        "x-source-errors": [
          {
            "detail": "job not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6452",
            "status": 404
          },
          {
            "detail": "job not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6461",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6463",
            "status": 409
          },
          {
            "detail": "IDE capability cannot access this job",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6491",
            "status": 403
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/jobs/{job_id}/reconcile": {
      "post": {
        "operationId": "control-post-v1-jobs-job-id-reconcile",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobReconcileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerReconciliationCommandOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Reconcile scanner cache job",
        "tags": [
          "Jobs"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6541"
        },
        "x-source-errors": [
          {
            "detail": "cache outcome reconciliation requires browser authorization",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6550",
            "status": 403
          },
          {
            "detail": "job not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6576",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6578",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6582",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6600",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6571",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6596",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6618",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6568",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6536",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6508",
            "status": 409
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/jobs/{job_id}/retry": {
      "post": {
        "operationId": "control-post-v1-jobs-job-id-retry",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobRetryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Retry job",
        "tags": [
          "Jobs"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6641"
        },
        "x-source-errors": [
          {
            "detail": "job not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6700",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6702",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6667",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L6683",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4401",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1866",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/projects": {
      "get": {
        "operationId": "control-get-v1-projects",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProjectOut"
                  },
                  "title": "Response List Projects V1 Projects Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List projects",
        "tags": [
          "Projects"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4553"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "post": {
        "operationId": "control-post-v1-projects",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Create project",
        "tags": [
          "Projects"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:create",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:create. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4088"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4106",
            "status": 422
          },
          {
            "detail": "this canonical source path is already bound to a project",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4132",
            "status": 409
          },
          {
            "detail": "this canonical source path is already bound to a project",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4147",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/projects/resolve": {
      "post": {
        "operationId": "control-post-v1-projects-resolve",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectResolve"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Resolve project",
        "tags": [
          "Projects"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4561"
        },
        "x-source-errors": [
          {
            "detail": "project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4564",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/projects/{project_id}": {
      "delete": {
        "operationId": "control-delete-v1-projects-project-id",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Delete Project V1 Projects  Project Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "500": {
            "description": "Keep the operation identity and collect bounded, reviewed diagnostics. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Delete project",
        "tags": [
          "Projects"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4589"
        },
        "x-source-errors": [
          {
            "detail": "project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4592",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4614",
            "status": 500
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L372",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "get": {
        "operationId": "control-get-v1-projects-project-id",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Get project",
        "tags": [
          "Projects"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4569"
        },
        "x-source-errors": [
          {
            "detail": "project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4572",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/projects/{project_id}/scans/latest": {
      "get": {
        "operationId": "control-get-v1-projects-project-id-scans-latest",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get latest project scan",
        "tags": [
          "Projects"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "scan:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with scan:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4577"
        },
        "x-source-errors": [
          {
            "detail": "project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4579",
            "status": 404
          },
          {
            "detail": "project has no scans",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4584",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/cache/rollback": {
      "post": {
        "operationId": "control-post-v1-scanner-cache-rollback",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerLifecycleCommandOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "description": "Correct the field or semantic validation error. Input values are omitted from control validation errors. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Rollback scanner cache",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3986"
        },
        "x-source-errors": [
          {
            "detail": "no previous-good scanner cache generation is available",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3508",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3536",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3479",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3497",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3518",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3487",
            "status": 409
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1866",
            "status": 409
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/cache/update": {
      "post": {
        "operationId": "control-post-v1-scanner-cache-update",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScannerCacheUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerLifecycleCommandOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update scanner cache",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3906"
        },
        "x-source-errors": [
          {
            "detail": "no previous-good scanner cache generation is available",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3508",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3536",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3479",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3497",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3518",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3487",
            "status": 409
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1866",
            "status": 409
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3692",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3659",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3638",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/cache/verification/retry": {
      "post": {
        "description": "Retry one exact failed runtime observation, never a cache update job.",
        "operationId": "control-post-v1-scanner-cache-verification-retry",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScannerCacheVerificationRetryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerCacheVerificationOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "502": {
            "description": "Reconcile the downstream service result before deciding whether to retry. See source-linked error catalog."
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Retry scanner cache verification",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3932"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3947",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3973",
            "status": 502
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3964",
            "status": 409
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/lifecycle": {
      "get": {
        "operationId": "control-get-v1-scanner-lifecycle",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerLifecycleOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Scanner lifecycle",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3618"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/preflight": {
      "get": {
        "operationId": "control-get-v1-scanner-preflight",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerPreflightOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Scanner preflight",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3338"
        },
        "x-source-errors": [
          {
            "detail": "scanner tool not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1693",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/prepare": {
      "post": {
        "description": "Queue catalog validation with one durable conditional cache continuation.",
        "operationId": "control-post-v1-scanner-prepare",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerPreparationCommandOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "description": "Correct the field or semantic validation error. Input values are omitted from control validation errors. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Prepare scanners",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3708"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3807",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3825",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3843",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3728",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3775",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3753",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3659",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3638",
            "status": 409
          },
          {
            "detail": "no previous-good scanner cache generation is available",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3508",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3536",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3479",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3497",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3518",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3487",
            "status": 409
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1866",
            "status": 409
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          },
          {
            "detail": "scanner tool not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1693",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/tools": {
      "get": {
        "operationId": "control-get-v1-scanner-tools",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ScannerToolOut"
                  },
                  "title": "Response Scanner Tools V1 Scanner Tools Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Scanner tools",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3333"
        },
        "x-source-errors": [
          {
            "detail": "scanner tool not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1693",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/tools/check-latest": {
      "post": {
        "description": "Queue an explicit source-blind catalog check; never contact upstream here.",
        "operationId": "control-post-v1-scanner-tools-check-latest",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerLifecycleCommandOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "description": "Correct the field or semantic validation error. Input values are omitted from control validation errors. See source-linked error catalog."
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Check scanner tools",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3882"
        },
        "x-source-errors": [
          {
            "detail": "no previous-good scanner cache generation is available",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3508",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3536",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3479",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3497",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3518",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L3487",
            "status": 409
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1866",
            "status": 409
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/tools/{tool_id}": {
      "patch": {
        "operationId": "control-patch-v1-scanner-tools-tool-id",
        "parameters": [
          {
            "in": "path",
            "name": "tool_id",
            "required": true,
            "schema": {
              "title": "Tool Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScannerToolPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerToolOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Patch scanner tool",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4006"
        },
        "x-source-errors": [
          {
            "detail": "internal fallback scanners do not select image releases",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4014",
            "status": 409
          },
          {
            "detail": "pinned_version must be the attested curated candidate",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4016",
            "status": 422
          },
          {
            "detail": "scanner candidate has no admitted manifest attestation",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4018",
            "status": 409
          },
          {
            "detail": "scanner tool not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1693",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scanner/tools/{tool_id}/update": {
      "post": {
        "operationId": "control-post-v1-scanner-tools-tool-id-update",
        "parameters": [
          {
            "in": "path",
            "name": "tool_id",
            "required": true,
            "schema": {
              "title": "Tool Id",
              "type": "string"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScannerToolOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Update scanner tool",
        "tags": [
          "Scanner preparation"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4036"
        },
        "x-source-errors": [
          {
            "detail": "scanner candidate has no admitted manifest attestation",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4046",
            "status": 409
          },
          {
            "detail": "scanner tool not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1693",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans": {
      "get": {
        "operationId": "control-get-v1-scans",
        "parameters": [
          {
            "in": "query",
            "name": "project_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Project Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "view",
            "required": false,
            "schema": {
              "default": "full",
              "enum": [
                "full",
                "history"
              ],
              "title": "View",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ScanOut"
                  },
                  "title": "Response List Scans V1 Scans Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List scans",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4877"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "post": {
        "operationId": "control-post-v1-scans",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Create scan",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "scan:create",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with scan:create. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4632"
        },
        "x-source-errors": [
          {
            "detail": "project not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4655",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4727",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4756",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4766",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4784",
            "status": 409
          },
          {
            "detail": "idempotent scan command no longer has its scan resource",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4650",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4659",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4706",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4696",
            "status": 422
          },
          {
            "detail": "idempotent scan command no longer has its scan resource",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4870",
            "status": 409
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": "the selected Advisor provider no longer exists",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4327",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4351",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4333",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1866",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4401",
            "status": 409
          },
          {
            "detail": "scanner tool not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1693",
            "status": 404
          },
          {
            "detail": "command payload must be an object",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4260",
            "status": 422
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}": {
      "delete": {
        "operationId": "control-delete-v1-scans-scan-id",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Delete Scan V1 Scans  Scan Id  Delete",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Delete scan",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4888"
        },
        "x-source-errors": [
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4891",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L372",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      },
      "get": {
        "operationId": "control-get-v1-scans-scan-id",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get scan",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "scan:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with scan:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4901"
        },
        "x-source-errors": [
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4904",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/artifacts": {
      "get": {
        "operationId": "control-get-v1-scans-scan-id-artifacts",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ScanArtifactOut"
                  },
                  "title": "Response List Scan Artifacts V1 Scans  Scan Id  Artifacts Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "List scan artifacts",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5626"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/finding-diagnostics": {
      "get": {
        "operationId": "control-get-v1-scans-scan-id-finding-diagnostics",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 512,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "in": "query",
            "name": "file_path",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 4096,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "File Path"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 30,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "scanner",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 80,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Scanner"
            }
          },
          {
            "in": "query",
            "name": "lifecycle_status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 40,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lifecycle Status"
            }
          },
          {
            "in": "query",
            "name": "expected_revision",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maximum": 2147483647,
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expected Revision"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindingDiagnosticPageOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "500": {
            "description": "Keep the operation identity and collect bounded, reviewed diagnostics. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "List finding diagnostics",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "finding:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5268"
        },
        "x-source-errors": [
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5286",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5314",
            "status": 409
          },
          {
            "detail": {
              "code": "finding_diagnostics_invalid",
              "message": "persisted finding diagnostics are inconsistent"
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5043",
            "status": 500
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L911",
            "status": 400
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5022",
            "status": 409
          },
          {
            "detail": "file_path must be an exact canonical project-relative POSIX path",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4995",
            "status": 422
          },
          {
            "detail": "severity filter is invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5000",
            "status": 422
          },
          {
            "detail": "scanner filter is invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5004",
            "status": 422
          },
          {
            "detail": "lifecycle_status filter is invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5016",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/finding-files": {
      "get": {
        "operationId": "control-get-v1-scans-scan-id-finding-files",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 512,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindingFileManifestPageOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "500": {
            "description": "Keep the operation identity and collect bounded, reviewed diagnostics. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "List finding files",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "finding:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5056"
        },
        "x-source-errors": [
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5068",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5078",
            "status": 409
          },
          {
            "detail": {
              "code": "finding_file_manifest_invalid",
              "message": "persisted finding file aggregates are inconsistent"
            },
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5033",
            "status": 500
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L861",
            "status": 400
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/findings": {
      "get": {
        "operationId": "control-get-v1-scans-scan-id-findings",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 512,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "in": "query",
            "name": "anchor_scan_finding_number",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maximum": 50000,
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Anchor Scan Finding Number"
            }
          },
          {
            "in": "query",
            "name": "file_path",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 4096,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "File Path"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 30,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "scanner",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 80,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Scanner"
            }
          },
          {
            "in": "query",
            "name": "lifecycle_status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 40,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Lifecycle Status"
            }
          },
          {
            "in": "query",
            "name": "expected_revision",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maximum": 2147483647,
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expected Revision"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindingPageOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "List findings",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "finding:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5418"
        },
        "x-source-errors": [
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5438",
            "status": 404
          },
          {
            "detail": "cursor and anchor_scan_finding_number are mutually exclusive",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5442",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5463",
            "status": 409
          },
          {
            "detail": "anchor finding is not present under the active filters",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5480",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L811",
            "status": 400
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5022",
            "status": 409
          },
          {
            "detail": "file_path must be an exact canonical project-relative POSIX path",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4995",
            "status": 422
          },
          {
            "detail": "severity filter is invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5000",
            "status": 422
          },
          {
            "detail": "scanner filter is invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5004",
            "status": 422
          },
          {
            "detail": "lifecycle_status filter is invalid",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5016",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/findings/{scan_finding_number}": {
      "get": {
        "operationId": "control-get-v1-scans-scan-id-findings-scan-finding-number",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "scan_finding_number",
            "required": true,
            "schema": {
              "title": "Scan Finding Number",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "expected_revision",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Expected Revision",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "expected_findings_revision",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Expected Findings Revision",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindingDetailOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get scan local finding",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "finding:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with finding:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5540"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5556",
            "status": 404
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5566",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5587",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5601",
            "status": 409
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/summary": {
      "get": {
        "operationId": "control-get-v1-scans-scan-id-summary",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanSummaryOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Get scan summary",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": false,
          "ideScope": "scan:read",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with scan:read. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4914"
        },
        "x-source-errors": [
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4921",
            "status": 404
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/scans/{scan_id}/triage": {
      "post": {
        "operationId": "control-post-v1-scans-scan-id-triage",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "integer"
            }
          },
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 160,
              "minLength": 8,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanTriageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "404": {
            "description": "Refresh the collection and verify the resource identity before retrying. See source-linked error catalog."
          },
          "409": {
            "description": "Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          }
        ],
        "summary": "Triage scan",
        "tags": [
          "Scans"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": null,
          "kind": "browser",
          "label": "Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5631"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5658",
            "status": 409
          },
          {
            "detail": "scan not found",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5669",
            "status": 404
          },
          {
            "detail": "advisor triage requires a terminal scan with persisted findings",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5671",
            "status": 409
          },
          {
            "detail": "advisor triage requires at least one eligible active finding",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L5680",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4547",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4549",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4439",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4451",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4482",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4495",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4520",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4468",
            "status": 409
          },
          {
            "detail": "the selected Advisor provider no longer exists",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4327",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4351",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4333",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4401",
            "status": 409
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          },
          {
            "detail": "Idempotency-Key is already bound to a different command",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4288",
            "status": 409
          },
          {
            "detail": "command payload must be an object",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4260",
            "status": 422
          },
          {
            "detail": "authentication required",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4228",
            "status": 401
          },
          {
            "detail": "Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-'",
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4231",
            "status": 422
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/source-snapshots": {
      "post": {
        "description": "Admit one explicit native-Windows source snapshot without widening mounts.",
        "operationId": "control-post-v1-source-snapshots",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "One exact encoded-body byte count, maximum 112 MiB.",
            "in": "header",
            "name": "Content-Length",
            "required": true,
            "schema": {
              "maximum": 117440512,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceSnapshotCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceSnapshotOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          },
          "503": {
            "description": "Check readiness and the recorded job state. A healthy control plane does not prove scanner readiness. See source-linked error catalog."
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Create source snapshot",
        "tags": [
          "Source authorization"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "source:snapshot",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with source:snapshot. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4157"
        },
        "x-source-errors": [
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4176",
            "status": 422
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1548",
            "status": 503
          },
          {
            "detail": null,
            "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L1575",
            "status": 503
          }
        ],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    },
    "/v1/sources/preview": {
      "post": {
        "operationId": "control-post-v1-sources-preview",
        "parameters": [
          {
            "description": "Required for browser mutations with the exact control Origin. Not an IDE capability.",
            "in": "header",
            "name": "X-CSRF-Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcePreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePreviewOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact host, malformed request or URL credential refusal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Missing or invalid membership"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Exact origin, CSRF or route authority refusal"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "detail": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "detail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Authentication rate or connection limit"
          }
        },
        "security": [
          {
            "BrowserSession": []
          },
          {
            "IdeCapability": []
          }
        ],
        "summary": "Preview source",
        "tags": [
          "Source authorization"
        ],
        "x-audience": {
          "browser": true,
          "csrf": true,
          "ideScope": "project:resolve",
          "kind": "browser-and-ide",
          "label": "Browser operator session or exact IDE capability with project:resolve. Route-specific ownership and generation checks also apply.",
          "pending": false,
          "source": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/security.py#L119"
        },
        "x-error-coverage": "Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.",
        "x-source": {
          "sha256": "cbbcabe823ec78fc617482e47dc63b7dbea15839395b7b1b7b08e90d8cf0ceca",
          "url": "https://github.com/lomolabs/lomo-codesecurity/blob/bccff297ea36ba46f1af1f3849fa233b66c72ad3/apps/api/kodesec_api/main.py#L4082"
        },
        "x-source-errors": [],
        "x-stability": "Source preview; no stable third-party integration promise"
      }
    }
  },
  "x-source": {
    "commit": "bccff297ea36ba46f1af1f3849fa233b66c72ad3",
    "repository": "https://github.com/lomolabs/lomo-codesecurity",
    "version": "0.1.0"
  }
}
