{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/.well-known/agent-passport.schema.json",
  "title": "Паспорт ИИ-агента, формат 0.1",
  "description": "Открытый формат описания ИИ-агента: кто он, кто за ним стоит и по каким правилам он действует. Не государственный документ. Публикуется оператором на своём домене: /.well-known/agent-passport.json.",
  "oneOf": [
    {
      "$ref": "#/$defs/passport"
    },
    {
      "type": "object",
      "required": [
        "passports"
      ],
      "properties": {
        "passports": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/passport"
          }
        }
      }
    }
  ],
  "$defs": {
    "passport": {
      "type": "object",
      "required": [
        "passport_version",
        "passport_id",
        "status",
        "issued_at",
        "agent",
        "operator",
        "ai",
        "policy"
      ],
      "properties": {
        "passport_version": {
          "const": "0.1"
        },
        "passport_id": {
          "type": "string",
          "format": "uri"
        },
        "status": {
          "enum": [
            "active",
            "suspended",
            "revoked"
          ]
        },
        "issued_at": {
          "type": "string",
          "format": "date"
        },
        "valid_until": {
          "type": "string",
          "format": "date"
        },
        "revoked_at": {
          "type": "string",
          "format": "date"
        },
        "agent": {
          "type": "object",
          "required": [
            "name",
            "version",
            "purpose",
            "acts_for",
            "actions"
          ],
          "properties": {
            "name": {
              "type": "string",
              "minLength": 2
            },
            "version": {
              "type": "string"
            },
            "purpose": {
              "type": "string",
              "minLength": 5
            },
            "acts_for": {
              "enum": [
                "individuals",
                "companies",
                "operator"
              ]
            },
            "actions": {
              "type": "array",
              "minItems": 1,
              "items": {
                "enum": [
                  "search",
                  "compare",
                  "quote",
                  "order",
                  "pay",
                  "sign",
                  "message",
                  "publish",
                  "other"
                ]
              }
            },
            "a2a_agent_card": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "operator": {
          "type": "object",
          "required": [
            "name",
            "site",
            "responsible_contact",
            "stop_endpoint"
          ],
          "properties": {
            "name": {
              "type": "string"
            },
            "inn": {
              "type": "string",
              "pattern": "^(\\d{10}|\\d{12})$"
            },
            "ogrn": {
              "type": "string",
              "pattern": "^(\\d{13}|\\d{15})$"
            },
            "site": {
              "type": "string",
              "format": "uri"
            },
            "responsible_contact": {
              "type": "string"
            },
            "stop_endpoint": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "developer": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "site": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "ai": {
          "type": "object",
          "required": [
            "model_provider",
            "data_processing_country",
            "cross_border_transfer"
          ],
          "properties": {
            "model_provider": {
              "type": "string"
            },
            "model": {
              "type": "string"
            },
            "data_processing_country": {
              "type": "string",
              "pattern": "^[A-Z]{2}$"
            },
            "cross_border_transfer": {
              "type": "boolean"
            }
          }
        },
        "policy": {
          "type": "object",
          "required": [
            "identifies_as_ai",
            "irreversible_actions_require_confirmation",
            "log_available_to_principal"
          ],
          "properties": {
            "identifies_as_ai": {
              "const": true
            },
            "irreversible_actions_require_confirmation": {
              "type": "boolean"
            },
            "preauthorized_limit": {
              "type": "object",
              "required": [
                "amount",
                "currency"
              ],
              "properties": {
                "amount": {
                  "type": "number",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                }
              }
            },
            "log_available_to_principal": {
              "type": "boolean"
            },
            "tamper_evident_log": {
              "type": "boolean"
            },
            "content_marking": {
              "type": "boolean"
            }
          }
        },
        "constitution": {
          "type": "object",
          "properties": {
            "version": {
              "type": "string"
            },
            "level": {
              "enum": [
                "K1",
                "K2",
                "K3",
                "K4"
              ]
            },
            "declaration": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "keys": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kid",
              "kty"
            ],
            "properties": {
              "kid": {
                "type": "string"
              },
              "kty": {
                "const": "OKP"
              },
              "crv": {
                "const": "Ed25519"
              },
              "x": {
                "type": "string"
              },
              "use": {
                "enum": [
                  "sig"
                ]
              }
            }
          }
        },
        "signatures": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "protected",
              "signature"
            ],
            "properties": {
              "protected": {
                "type": "string"
              },
              "signature": {
                "type": "string"
              },
              "header": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  }
}