feat(governance): 新增 owner-approved fixture promotion gate
All checks were successful
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m23s
CD Pipeline / build-and-deploy (push) Successful in 4m48s
CD Pipeline / post-deploy-checks (push) Successful in 1m29s

This commit is contained in:
Your Name
2026-06-13 18:36:21 +08:00
parent 79a3e1bd18
commit 8fcf767aad
10 changed files with 2060 additions and 1 deletions

View File

@@ -465,6 +465,11 @@ export const apiClient = {
return handleResponse<AiAgentRuntimeReadbackPromotionGateSnapshot>(res)
},
async getAiAgentOwnerApprovedFixturePromotionGate() {
const res = await fetch(`${API_BASE_URL}/agents/agent-owner-approved-fixture-promotion-gate`)
return handleResponse<AiAgentOwnerApprovedFixturePromotionGateSnapshot>(res)
},
async getAiAgentOwnerApprovedFixtureDryRun() {
const res = await fetch(`${API_BASE_URL}/agents/agent-owner-approved-fixture-dry-run`)
return handleResponse<AiAgentOwnerApprovedFixtureDryRunSnapshot>(res)
@@ -4638,6 +4643,177 @@ export interface AiAgentRuntimeReadbackPromotionGateSnapshot {
}
}
export interface AiAgentOwnerApprovedFixturePromotionGateSnapshot {
schema_version: 'ai_agent_owner_approved_fixture_promotion_gate_v1'
generated_at: string
program_status: {
overall_completion_percent: number
current_priority: 'P0' | 'P1' | 'P2' | 'P3'
current_task_id: 'P2-114'
next_task_id: 'P2-115'
read_only_mode: true
runtime_authority: 'owner_approved_fixture_promotion_gate_only_no_live_read_or_write'
status_note: string
}
source_refs: string[]
prior_promotion_gate: {
schema_version: 'ai_agent_runtime_readback_promotion_gate_v1'
promotion_lane_count: number
receipt_contract_count: number
reviewer_queue_preview_count: number
result_capture_preview_count: number
no_write_verifier_check_count: number
blocker_mapping_count: number
operator_action_count: number
owner_approval_received_count: number
promotion_execution_count: number
canonical_runtime_target_read_count: number
live_query_count: number
production_write_count: number
readiness_note: string
}
owner_gate_truth: {
p2_113_promotion_gate_loaded: true
owner_promotion_package_ready: true
acceptance_record_template_ready: true
reviewer_queue_fixture_ready: true
result_capture_fixture_ready: true
rollback_owner_required: true
verifier_plan_required: true
owner_approval_received: false
canonical_runtime_target_read_enabled: false
live_query_enabled: false
failure_receipt_send_enabled: false
reviewer_queue_write_enabled: false
gateway_queue_write_enabled: false
telegram_send_enabled: false
bot_api_call_enabled: false
report_receipt_write_enabled: false
result_capture_write_enabled: false
learning_write_enabled: false
playbook_trust_write_enabled: false
production_write_enabled: false
secret_read_enabled: false
destructive_operation_enabled: false
owner_approval_received_count: number
owner_acceptance_record_write_count: number
promotion_execution_count: number
canonical_runtime_target_read_count: number
live_query_count: number
failure_receipt_send_count: number
reviewer_queue_write_count: number
gateway_queue_write_count: number
telegram_send_count: number
bot_api_call_count: number
report_receipt_write_count: number
result_capture_write_count: number
learning_write_count: number
playbook_trust_write_count: number
production_write_count: number
truth_note: string
}
owner_approval_packets: Array<{
packet_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
source_lane_id: string
status: 'ready_for_owner_review' | 'approval_required' | 'blocked_by_policy'
risk_tier: 'high' | 'critical'
required_owner_fields: string[]
allowed_fixture: string
blocked_runtime_actions: string[]
owner_acceptance_required: true
evidence_hash: string
}>
acceptance_record_templates: Array<{
template_id: string
display_name: string
status: 'ready' | 'approval_required' | 'blocked_by_policy'
required_fields: string[]
accepted: false
record_write_enabled: false
evidence_hash: string
}>
fixture_promotion_reviews: Array<{
review_id: string
display_name: string
status: 'ready' | 'approval_required' | 'blocked_by_policy'
source_packet_id: string
review_outcome: string
runtime_write_enabled: false
evidence_hash: string
}>
no_write_verifier_plans: Array<{
plan_id: string
display_name: string
status: 'ready' | 'approval_required' | 'blocked_by_policy'
required_fixture: string
failure_if_missing: string
live_verifier_enabled: false
evidence_hash: string
}>
blocked_promotions: Array<{
blocker_id: string
display_name: string
severity: 'high' | 'critical'
status: 'approval_required' | 'blocked_by_policy'
blocked_action: string
blocked_until: string
evidence_hash: string
}>
operator_actions: Array<{
action_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
action_type: 'review_owner_packet' | 'verify_acceptance_template' | 'confirm_verifier_plan' | 'lock_blocked_promotion' | 'promote_to_p2_115'
operator_instruction: string
runtime_promotion_allowed: false
}>
display_redaction_contract: {
redaction_required: true
raw_prompt_display_allowed: false
private_reasoning_display_allowed: false
secret_value_display_allowed: false
raw_runtime_payload_display_allowed: false
internal_collaboration_content_display_allowed: false
frontend_display_policy: string
}
rollups: {
owner_approval_packet_count: number
acceptance_record_template_count: number
fixture_promotion_review_count: number
no_write_verifier_plan_count: number
blocked_promotion_count: number
operator_action_count: number
approval_required_packet_count: number
blocked_packet_count: number
approval_required_template_count: number
blocked_template_count: number
approval_required_review_count: number
blocked_review_count: number
approval_required_verifier_count: number
blocked_verifier_count: number
critical_blocker_count: number
owner_approval_received_count: number
owner_acceptance_record_write_count: number
promotion_execution_count: number
canonical_runtime_target_read_count: number
live_query_count: number
failure_receipt_send_count: number
reviewer_queue_write_count: number
gateway_queue_write_count: number
telegram_send_count: number
bot_api_call_count: number
report_receipt_write_count: number
result_capture_write_count: number
learning_write_count: number
playbook_trust_write_count: number
production_write_count: number
secret_read_count: number
destructive_operation_count: number
}
}
export interface AiAgentOwnerApprovedFixtureDryRunSnapshot {
schema_version: 'ai_agent_owner_approved_fixture_dry_run_v1'
generated_at: string