{ "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "activation_approval_merge_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "activation_approval_pr_number": {"minimum": 1, "type": "integer"}, "activation_manifest_blob_oid": {"pattern": "^[0-9a-f]{40,64}$", "type": "string"}, "activation_manifest_path": {"pattern": "^approvals/.+\\.json$", "type": "string"}, "activation_manifest_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "approval_db_path": {"minLength": 1, "type": "string"}, "approval_request_head_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "backend": {"enum": ["file", "sqlite"]}, "backend_path": {"minLength": 1, "type": "string"}, "branch": {"const": "governance/approvals"}, "evidence_closure_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "evidence_git_dir": {"minLength": 1, "type": "string"}, "executor": {"not": {"const": "owner"}, "type": "string"}, "expected_branch_protection_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "expected_gitea_schema_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "expected_governance_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "expected_state_machine_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "expected_validator_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "expires_at": {"format": "date-time", "type": "string"}, "forbidden_operations": {"additionalProperties": {"const": false}, "type": "object"}, "governance_git_dir": {"minLength": 1, "type": "string"}, "governance_ref": {"const": "refs/heads/governance/approvals"}, "machine_checks": { "additionalProperties": false, "properties": { "aios/branch-protection": {"$ref": "#/$defs/machineCheck"}, "aios/evidence-closure": {"$ref": "#/$defs/machineCheck"}, "aios/secret-scan": {"$ref": "#/$defs/machineCheck"}, "aios/state-machine": {"$ref": "#/$defs/machineCheck"}, "aios/validator": {"$ref": "#/$defs/machineCheck"} }, "required": ["aios/branch-protection", "aios/evidence-closure", "aios/secret-scan", "aios/state-machine", "aios/validator"], "type": "object" }, "observed_evidence_closure_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "observed_governance_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "observed_owner_review_oid": {"type": ["integer", "string"]}, "observed_state_machine_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "observed_validator_sha256": {"pattern": "^[0-9a-f]{64}$", "type": "string"}, "operation_id": {"minLength": 1, "type": "string"}, "owner_review_oid": {"type": ["integer", "string"]}, "repo_id": {"minimum": 1, "type": "integer"}, "requester": {"not": {"const": "owner"}, "type": "string"}, "state_machine_path": {"minLength": 1, "type": "string"}, "target_branch_protection": {"type": "object"}, "task_id": {"minLength": 1, "type": "string"}, "validator_path": {"minLength": 1, "type": "string"}, "wip": {"const": false} }, "$defs": { "machineCheck": { "additionalProperties": false, "properties": { "head_oid": {"pattern": "^[0-9a-f]{40}$", "type": "string"}, "state": {"const": "success"} }, "required": ["state", "head_oid"], "type": "object" } }, "required": [ "task_id", "operation_id", "expected_governance_oid", "observed_governance_oid", "expected_validator_sha256", "observed_validator_sha256", "validator_path", "expected_state_machine_sha256", "observed_state_machine_sha256", "state_machine_path", "expected_branch_protection_sha256", "expected_gitea_schema_sha256", "activation_approval_merge_oid", "activation_approval_pr_number", "approval_request_head_oid", "activation_manifest_path", "activation_manifest_blob_oid", "activation_manifest_sha256", "evidence_closure_oid", "observed_evidence_closure_oid", "evidence_git_dir", "owner_review_oid", "observed_owner_review_oid", "approval_db_path", "expires_at", "governance_git_dir", "governance_ref", "machine_checks", "forbidden_operations", "target_branch_protection", "backend", "backend_path", "repo_id", "branch", "requester", "executor", "wip" ], "title": "AIOS Single Owner Live Activation Bindings", "type": "object" }