← Files Empire LLM for CodexARCHIVED FILE

skills/empire-review/assets/provider-registry.schema.json

2.43 KB · Oct 2, 2026 · 00:29 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://empire-llm.local/schemas/provider-registry.schema.json",
  "title": "Empire trusted provider registry",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema_version", "providers"],
  "properties": {
    "schema_version": { "const": "1.0.0" },
    "providers": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "provider_id",
          "family",
          "allowed_hosts",
          "base_url",
          "authentication",
          "discovery",
          "inference_endpoints"
        ],
        "properties": {
          "provider_id": { "type": "string", "pattern": "^[a-z0-9-]+$" },
          "family": { "type": "string", "pattern": "^[a-z0-9-]+$" },
          "allowed_hosts": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": { "type": "string", "pattern": "^[a-z0-9.-]+$" }
          },
          "base_url": { "type": "string", "pattern": "^https://" },
          "authentication": { "enum": ["bearer", "api_key_header"] },
          "credential_env": {
            "type": "array",
            "uniqueItems": true,
            "items": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]+$" }
          },
          "model_id_pattern": { "type": "string" },
          "discovery": {
            "type": "object",
            "additionalProperties": false,
            "required": ["mode", "ttl_minutes"],
            "properties": {
              "mode": { "enum": ["api", "curated", "manual"] },
              "path": { "type": "string", "pattern": "^/" },
              "ttl_minutes": { "type": "integer", "minimum": 1 }
            }
          },
          "inference_endpoints": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": ["id", "path", "protocol"],
              "properties": {
                "id": { "type": "string" },
                "path": { "type": "string", "pattern": "^/" },
                "protocol": { "type": "string" },
                "preferred": { "type": "boolean" },
                "legacy": { "type": "boolean" }
              }
            }
          },
          "documentation_url": { "type": "string", "pattern": "^https://" }
        }
      }
    }
  }
}

SHA-256: 9504533796e3dfb31ab23ca0c22e09d5c688b68c6104f19f82f6aafb6e7b8026