feat(governance): 新增 runtime readback 批准包
All checks were successful
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m29s
CD Pipeline / build-and-deploy (push) Successful in 4m36s
CD Pipeline / post-deploy-checks (push) Successful in 1m37s

This commit is contained in:
Your Name
2026-06-13 14:51:16 +08:00
parent e0cc7dde0f
commit 84fea85bf7
14 changed files with 2504 additions and 5 deletions

View File

@@ -440,6 +440,11 @@ export const apiClient = {
return handleResponse<AiAgentOwnerApprovedResultCaptureReadbackSnapshot>(res)
},
async getAiAgentRuntimeReadbackApprovalPackage() {
const res = await fetch(`${API_BASE_URL}/agents/agent-runtime-readback-approval-package`)
return handleResponse<AiAgentRuntimeReadbackApprovalPackageSnapshot>(res)
},
async getAiAgentOwnerApprovedFixtureDryRun() {
const res = await fetch(`${API_BASE_URL}/agents/agent-owner-approved-fixture-dry-run`)
return handleResponse<AiAgentOwnerApprovedFixtureDryRunSnapshot>(res)
@@ -3803,6 +3808,175 @@ export interface AiAgentOwnerApprovedResultCaptureReadbackSnapshot {
}
}
export interface AiAgentRuntimeReadbackApprovalPackageSnapshot {
schema_version: 'ai_agent_runtime_readback_approval_package_v1'
generated_at: string
program_status: {
overall_completion_percent: number
current_priority: 'P0' | 'P1' | 'P2' | 'P3'
current_task_id: 'P2-109'
next_task_id: 'P2-110'
read_only_mode: true
runtime_authority: 'runtime_readback_approval_package_only_no_live_write'
status_note: string
}
source_refs: string[]
prior_readback_readiness: {
source_schema_version: 'ai_agent_owner_approved_result_capture_readback_v1'
readback_at: string
readback_digest_count: number
promotion_review_count: number
failure_lane_count: number
reviewer_queue_preview_count: number
operator_action_count: number
approval_required_digest_count: number
blocked_total_count: number
approved_without_execution_meta_24h: number
execution_failed_with_matched_24h: number
owner_approval_received_count: number
readback_digest_generated_count: number
promotion_approved_count: number
reviewer_queue_write_count: number
result_capture_write_count: number
score_write_count: number
learning_write_count: number
playbook_trust_write_count: number
gateway_queue_write_count: number
telegram_send_count: number
production_write_count: number
readiness_note: string
}
approval_package_truth: {
p2_107_readback_loaded: true
approval_package_ready: true
canonical_readback_plan_ready: true
rollback_drill_ready: true
telegram_failure_receipt_gate_ready: true
owner_review_required_before_runtime: true
canonical_runtime_readback_enabled: false
runtime_result_capture_write_enabled: false
runtime_score_write_enabled: false
runtime_learning_write_enabled: false
playbook_trust_write_enabled: false
reviewer_queue_write_enabled: false
gateway_queue_write_enabled: false
telegram_failure_receipt_send_enabled: false
bot_api_call_enabled: false
rollback_work_item_write_enabled: false
production_write_enabled: false
secret_read_enabled: false
destructive_operation_enabled: false
owner_approval_received_count: number
runtime_readback_execution_count: number
result_capture_write_count_24h: number
score_write_count_24h: number
learning_write_count_24h: number
playbook_trust_write_count_24h: number
reviewer_queue_write_count_24h: number
gateway_queue_write_count_24h: number
telegram_failure_receipt_send_count_24h: number
bot_api_call_count_24h: number
rollback_work_item_write_count_24h: number
production_write_count_24h: number
secret_read_count_24h: number
destructive_operation_count_24h: number
truth_note: string
}
approval_packet_templates: Array<{
packet_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'ready_for_owner_review' | 'approval_required' | 'blocked_by_policy'
risk_tier: 'medium' | 'high' | 'critical'
required_approval_fields: string[]
blocked_runtime_actions: string[]
operator_guidance: string
approval_required: true
runtime_write_allowed: false
evidence_hash: string
}>
canonical_readback_plans: Array<{
plan_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'planned_no_runtime_read' | 'blocked_by_policy'
query_scope: string
required_fields: string[]
redaction_checks: string[]
live_query_enabled: false
runtime_write_allowed: false
evidence_hash: string
}>
rollback_drill_lanes: Array<{
lane_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'planned_no_write' | 'blocked_by_policy'
rollback_owner: string
required_steps: string[]
failure_if_missing: string
rollback_write_enabled: false
creates_runtime_write: false
}>
telegram_failure_receipt_gates: Array<{
gate_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
status: 'ready_for_owner_review' | 'blocked_by_policy'
required_evidence: string[]
failure_if_missing: string
queue_write_enabled: false
telegram_send_enabled: false
bot_api_call_enabled: false
evidence_hash: string
}>
operator_actions: Array<{
action_id: string
action_type: 'review_approval_package' | 'validate_canonical_plan' | 'review_rollback_drill' | 'review_failure_receipt_gate' | 'reject_or_promote'
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
operator_instruction: string
runtime_write_allowed: false
}>
display_redaction_contract: {
redaction_required: true
frontend_display_policy: string
raw_prompt_display_allowed: false
private_reasoning_display_allowed: false
secret_value_display_allowed: false
raw_telegram_payload_display_allowed: false
work_window_transcript_display_allowed: false
}
rollups: {
approval_packet_count: number
canonical_readback_plan_count: number
rollback_drill_lane_count: number
telegram_failure_receipt_gate_count: number
operator_action_count: number
approval_required_packet_count: number
blocked_packet_count: number
blocked_readback_plan_count: number
blocked_rollback_lane_count: number
blocked_telegram_gate_count: number
approved_without_execution_meta_24h: number
execution_failed_with_matched_24h: number
owner_approval_received_count: number
runtime_readback_execution_count: number
result_capture_write_count: number
score_write_count: number
learning_write_count: number
playbook_trust_write_count: number
reviewer_queue_write_count: number
gateway_queue_write_count: number
telegram_failure_receipt_send_count: number
bot_api_call_count: number
rollback_work_item_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