Files
awoooi/docs/schemas/ai_agent_redis_dry_run_gate_v1.schema.json
Your Name 9ffcca737d
Some checks failed
CD Pipeline / tests (push) Successful in 1m26s
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
feat(governance): 新增 Redis dry-run gate
2026-06-11 21:05:03 +08:00

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
}