{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.caracal.run/schemas/caracal-agent-connector-manifest-2026-05-21.schema.json",
  "title": "Caracal Agent Framework Connector Manifest",
  "description": "Offline compatibility metadata for agent framework connectors.",
  "type": "object",
  "required": ["schema_version", "name", "version", "framework", "languages", "enforcement_modes", "context_propagation", "audit", "conformance"],
  "properties": {
    "schema_version": {
      "const": "2026-05-21"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "minLength": 1
    },
    "framework": {
      "type": "string",
      "minLength": 1
    },
    "languages": {
      "type": "array",
      "items": {
        "enum": ["typescript", "go", "python", "java", "rust", "other"]
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "enforcement_modes": {
      "type": "array",
      "items": {
        "enum": ["gateway_mediated", "connector_verified", "attribution_only"]
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "context_propagation": {
      "type": "object",
      "required": ["authorization", "traceparent", "tracestate", "baggage"],
      "properties": {
        "authorization": {
          "type": "boolean"
        },
        "traceparent": {
          "type": "boolean"
        },
        "tracestate": {
          "type": "boolean"
        },
        "baggage": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "audit": {
      "type": "object",
      "required": ["emits_action_result", "labels_enforcement_mode"],
      "properties": {
        "emits_action_result": {
          "type": "boolean"
        },
        "labels_enforcement_mode": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "conformance": {
      "type": "object",
      "required": ["fixtures", "tested_with_caracal"],
      "properties": {
        "fixtures": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "minItems": 1,
          "uniqueItems": true
        },
        "tested_with_caracal": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
