feat(governance): 新增報表 runtime 啟動前閘門
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user