192 lines
6.2 KiB
JSON
192 lines
6.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://awoooi.wooo.work/schemas/ai_agent_redis_dry_run_gate_v1.schema.json",
|
|
"title": "AI Agent Redis Dry Run Gate v1",
|
|
"type": "object",
|
|
"required": [
|
|
"schema_version",
|
|
"generated_at",
|
|
"program_status",
|
|
"source_refs",
|
|
"dry_run_truth",
|
|
"consumer_group_dry_run_contract",
|
|
"handoff_envelope_contract",
|
|
"ack_dead_letter_replay_contract",
|
|
"dry_run_steps",
|
|
"handoff_lanes",
|
|
"approval_boundaries",
|
|
"display_redaction_contract",
|
|
"rollups"
|
|
],
|
|
"properties": {
|
|
"schema_version": {"const": "ai_agent_redis_dry_run_gate_v1"},
|
|
"generated_at": {"type": "string"},
|
|
"program_status": {
|
|
"type": "object",
|
|
"required": [
|
|
"overall_completion_percent",
|
|
"current_task_id",
|
|
"next_task_id",
|
|
"read_only_mode",
|
|
"runtime_authority"
|
|
],
|
|
"properties": {
|
|
"overall_completion_percent": {"type": "integer", "minimum": 0, "maximum": 100},
|
|
"current_task_id": {"const": "P2-403C"},
|
|
"next_task_id": {"type": "string"},
|
|
"read_only_mode": {"const": true},
|
|
"runtime_authority": {"const": "dry_run_contract_only_no_redis_runtime"}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"source_refs": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"dry_run_truth": {
|
|
"type": "object",
|
|
"required": [
|
|
"redis_connection_allowed",
|
|
"consumer_group_created",
|
|
"xadd_allowed",
|
|
"xreadgroup_allowed",
|
|
"ack_allowed",
|
|
"dead_letter_write_allowed",
|
|
"replay_runtime_allowed",
|
|
"telegram_send_allowed",
|
|
"learning_writeback_allowed",
|
|
"live_dry_run_event_count",
|
|
"live_ack_count",
|
|
"live_dead_letter_count",
|
|
"live_replay_count"
|
|
],
|
|
"properties": {
|
|
"redis_connection_allowed": {"const": false},
|
|
"consumer_group_created": {"const": false},
|
|
"xadd_allowed": {"const": false},
|
|
"xreadgroup_allowed": {"const": false},
|
|
"ack_allowed": {"const": false},
|
|
"dead_letter_write_allowed": {"const": false},
|
|
"replay_runtime_allowed": {"const": false},
|
|
"telegram_send_allowed": {"const": false},
|
|
"learning_writeback_allowed": {"const": false},
|
|
"live_dry_run_event_count": {"const": 0},
|
|
"live_ack_count": {"const": 0},
|
|
"live_dead_letter_count": {"const": 0},
|
|
"live_replay_count": {"const": 0}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"consumer_group_dry_run_contract": {
|
|
"type": "object",
|
|
"required": [
|
|
"candidate_group_name",
|
|
"stream_namespace",
|
|
"fixture_only",
|
|
"redis_network_call_allowed",
|
|
"required_fixture_fields"
|
|
],
|
|
"properties": {
|
|
"fixture_only": {"const": true},
|
|
"redis_network_call_allowed": {"const": false},
|
|
"required_fixture_fields": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"handoff_envelope_contract": {
|
|
"type": "object",
|
|
"required": [
|
|
"required_fields",
|
|
"forbidden_fields",
|
|
"redacted_evidence_required",
|
|
"idempotency_key_required"
|
|
],
|
|
"properties": {
|
|
"required_fields": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"forbidden_fields": {"type": "array", "items": {"type": "string"}, "minItems": 1},
|
|
"redacted_evidence_required": {"const": true},
|
|
"idempotency_key_required": {"const": true}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"ack_dead_letter_replay_contract": {
|
|
"type": "object",
|
|
"required": [
|
|
"ack_requires_verifier",
|
|
"dead_letter_requires_reason",
|
|
"replay_requires_idempotency",
|
|
"runtime_replay_allowed"
|
|
],
|
|
"properties": {
|
|
"ack_requires_verifier": {"const": true},
|
|
"dead_letter_requires_reason": {"const": true},
|
|
"replay_requires_idempotency": {"const": true},
|
|
"runtime_replay_allowed": {"const": false}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"dry_run_steps": {"type": "array", "items": {"$ref": "#/$defs/dry_run_step"}, "minItems": 1},
|
|
"handoff_lanes": {"type": "array", "items": {"$ref": "#/$defs/handoff_lane"}, "minItems": 1},
|
|
"approval_boundaries": {"type": "object", "additionalProperties": {"const": false}},
|
|
"display_redaction_contract": {
|
|
"type": "object",
|
|
"required": [
|
|
"redaction_required",
|
|
"raw_payload_display_allowed",
|
|
"private_reasoning_display_allowed",
|
|
"secret_value_display_allowed",
|
|
"forbidden_frontend_content"
|
|
],
|
|
"properties": {
|
|
"redaction_required": {"const": true},
|
|
"raw_payload_display_allowed": {"const": false},
|
|
"private_reasoning_display_allowed": {"const": false},
|
|
"secret_value_display_allowed": {"const": false},
|
|
"forbidden_frontend_content": {"type": "array", "items": {"type": "string"}, "minItems": 1}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"rollups": {"type": "object", "additionalProperties": true}
|
|
},
|
|
"$defs": {
|
|
"dry_run_step": {
|
|
"type": "object",
|
|
"required": [
|
|
"step_id",
|
|
"display_name",
|
|
"owner_agent",
|
|
"status",
|
|
"operator_signal",
|
|
"blocked_runtime_action"
|
|
],
|
|
"properties": {
|
|
"step_id": {"type": "string"},
|
|
"display_name": {"type": "string"},
|
|
"owner_agent": {"type": "string"},
|
|
"status": {"type": "string"},
|
|
"operator_signal": {"type": "string"},
|
|
"blocked_runtime_action": {"type": "string"}
|
|
},
|
|
"additionalProperties": true
|
|
},
|
|
"handoff_lane": {
|
|
"type": "object",
|
|
"required": [
|
|
"lane_id",
|
|
"display_name",
|
|
"from_agent",
|
|
"to_agent",
|
|
"status",
|
|
"required_evidence"
|
|
],
|
|
"properties": {
|
|
"lane_id": {"type": "string"},
|
|
"display_name": {"type": "string"},
|
|
"from_agent": {"type": "string"},
|
|
"to_agent": {"type": "string"},
|
|
"status": {"type": "string"},
|
|
"required_evidence": {"type": "string"}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|