feat(governance): 新增報表 runtime 啟動前閘門
Some checks failed
CD Pipeline / tests (push) Successful in 1m35s
Code Review / ai-code-review (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Successful in 6m19s
CD Pipeline / post-deploy-checks (push) Successful in 1m30s

This commit is contained in:
Your Name
2026-06-12 11:34:15 +08:00
parent 1da56ac56c
commit b17a28c293
17 changed files with 1602 additions and 15 deletions

View File

@@ -327,6 +327,11 @@ export const apiClient = {
return handleResponse<AiAgentReportAutomationReviewSnapshot>(res)
},
async getAiAgentReportRuntimeReadiness() {
const res = await fetch(`${API_BASE_URL}/agents/agent-report-runtime-readiness`)
return handleResponse<AiAgentReportRuntimeReadinessSnapshot>(res)
},
async getAiAgentOwnerApprovedFixtureDryRun() {
const res = await fetch(`${API_BASE_URL}/agents/agent-owner-approved-fixture-dry-run`)
return handleResponse<AiAgentOwnerApprovedFixtureDryRunSnapshot>(res)
@@ -2074,6 +2079,128 @@ export interface AiAgentReportAutomationReviewSnapshot {
}
}
export interface AiAgentReportRuntimeReadinessSnapshot {
schema_version: 'ai_agent_report_runtime_readiness_v1'
generated_at: string
program_status: {
overall_completion_percent: number
current_priority: 'P0' | 'P1' | 'P2' | 'P3'
current_task_id: 'P2-403L'
next_task_id: string
read_only_mode: true
runtime_authority: 'report_runtime_readiness_only_no_live_delivery_or_optimization'
status_note: string
}
source_refs: string[]
activation_truth: {
report_scheduler_contract_ready: true
telegram_gateway_queue_contract_ready: true
telegram_delivery_receipt_contract_ready: true
ai_readback_analysis_contract_ready: true
medium_low_auto_guard_contract_ready: true
high_risk_approval_gate_contract_ready: true
live_report_delivery_enabled: false
live_report_delivery_count_24h: number
telegram_gateway_queue_write_enabled: false
telegram_gateway_queue_write_count_24h: number
report_read_receipt_write_enabled: false
report_read_receipt_count_24h: number
ai_analysis_runtime_enabled: false
ai_analysis_runtime_count_24h: number
medium_low_auto_worker_enabled: false
medium_low_auto_execution_count_24h: number
production_optimization_enabled: false
production_optimization_count_24h: number
high_risk_auto_execution_enabled: false
high_risk_auto_execution_count_24h: number
truth_note: string
}
runtime_lanes: Array<{
lane_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
risk_tier: 'low' | 'medium' | 'high' | 'critical'
target_runtime: string
contract_status: 'ready_for_owner_review' | 'blocked_by_runtime_gate'
current_live_count_24h: number
enablement_required: string[]
blocked_actions: string[]
}>
automation_policies: Array<{
risk_id: 'low' | 'medium' | 'high' | 'critical'
display_name: string
approval_required: boolean
auto_allowed_after_guard: boolean
current_execution_enabled: false
required_guards: string[]
reporting_rule: string
}>
report_delivery_cadence_gates: Array<{
cadence_id: 'daily' | 'weekly' | 'monthly'
display_name: string
scheduler_source: string
telegram_digest_policy: string
recipient_room: string
dry_run_required: true
current_delivery_enabled: false
live_delivery_count_24h: number
}>
telegram_route_readiness: {
canonical_room: 'AwoooI SRE 戰情室'
secret_ref: 'SRE_GROUP_CHAT_ID'
gateway_required: true
direct_bot_api_allowed: false
bot_log_out_allowed: false
legacy_routes_must_converge: true
telegram_gateway_queue_write_enabled: false
e2e_delivery_verified: false
delivery_receipt_write_enabled: false
blocked_route_count: number
}
agent_post_report_actions: Array<{
agent_id: 'openclaw' | 'hermes' | 'nemotron'
display_name: string
after_report_responsibility: string
allowed_without_approval: string[]
blocked_until_approval: string[]
live_action_count_24h: number
}>
operator_decisions: Array<{
decision_id: string
display_name: string
risk_tier: 'low' | 'medium' | 'high' | 'critical'
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
approval_required: boolean
status: 'ready_for_review' | 'blocked_by_runtime_gate' | 'approval_required'
why_it_matters: string
next_safe_step: string
}>
display_redaction_contract: {
redaction_required: true
raw_report_payload_display_allowed: false
private_reasoning_display_allowed: false
secret_value_display_allowed: false
work_window_transcript_display_allowed: false
allowed_display_fields: string[]
blocked_display_fields: string[]
}
rollups: {
runtime_lane_count: number
report_cadence_gate_count: number
operator_decision_count: number
automation_policy_count: number
ready_contract_count: number
blocked_contract_count: number
approval_required_decision_ids: string[]
current_enabled_count: number
live_report_delivery_count: number
live_ai_analysis_count: number
live_medium_low_auto_execution_count: number
telegram_gateway_queue_write_count: number
high_risk_auto_execution_count: number
}
}
export interface AiAgentOwnerApprovedFixtureDryRunSnapshot {
schema_version: 'ai_agent_owner_approved_fixture_dry_run_v1'
generated_at: string