feat(governance): 新增 runtime write gate review
This commit is contained in:
@@ -302,6 +302,11 @@ export const apiClient = {
|
||||
return handleResponse<AiAgentOwnerApprovedLearningDryRunSnapshot>(res)
|
||||
},
|
||||
|
||||
async getAiAgentRuntimeWriteGateReview() {
|
||||
const res = await fetch(`${API_BASE_URL}/agents/agent-runtime-write-gate-review`)
|
||||
return handleResponse<AiAgentRuntimeWriteGateReviewSnapshot>(res)
|
||||
},
|
||||
|
||||
async getAiAgentOwnerApprovedFixtureDryRun() {
|
||||
const res = await fetch(`${API_BASE_URL}/agents/agent-owner-approved-fixture-dry-run`)
|
||||
return handleResponse<AiAgentOwnerApprovedFixtureDryRunSnapshot>(res)
|
||||
@@ -1596,6 +1601,88 @@ export interface AiAgentOwnerApprovedLearningDryRunSnapshot {
|
||||
}
|
||||
}
|
||||
|
||||
export interface AiAgentRuntimeWriteGateReviewSnapshot {
|
||||
schema_version: 'ai_agent_runtime_write_gate_review_v1'
|
||||
generated_at: string
|
||||
program_status: {
|
||||
overall_completion_percent: number
|
||||
current_priority: 'P0' | 'P1' | 'P2' | 'P3'
|
||||
current_task_id: string
|
||||
next_task_id: string
|
||||
read_only_mode: true
|
||||
runtime_authority: 'write_gate_review_only_no_runtime_write'
|
||||
status_note: string
|
||||
}
|
||||
source_refs: string[]
|
||||
runtime_write_truth: {
|
||||
runtime_write_allowed: false
|
||||
dual_approval_required: true
|
||||
dual_approval_received_count: number
|
||||
dry_run_hash_required: true
|
||||
dry_run_hash_verified_count: number
|
||||
post_write_verifier_required: true
|
||||
post_write_verifier_pass_count: number
|
||||
km_write_allowed: false
|
||||
playbook_trust_write_allowed: false
|
||||
timeline_learning_write_allowed: false
|
||||
agent_replay_score_write_allowed: false
|
||||
telegram_send_allowed: false
|
||||
truth_note: string
|
||||
}
|
||||
write_gate_review: {
|
||||
review_id: string
|
||||
display_name: string
|
||||
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
|
||||
status: string
|
||||
operator_meaning: string
|
||||
required_fields: string[]
|
||||
forbidden_fields: string[]
|
||||
}
|
||||
write_targets: Array<{
|
||||
target_id: string
|
||||
display_name: string
|
||||
target_surface: string
|
||||
status: string
|
||||
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
|
||||
required_approval: string
|
||||
blocked_runtime_action: string
|
||||
operator_instruction: string
|
||||
}>
|
||||
approval_gates: Array<{
|
||||
gate_id: string
|
||||
display_name: string
|
||||
status: string
|
||||
required_evidence: string
|
||||
blocked_runtime_action: string
|
||||
operator_instruction: string
|
||||
}>
|
||||
post_write_verification: {
|
||||
verification_required: true
|
||||
rollback_required: true
|
||||
verification_steps: string[]
|
||||
failure_escalation: string
|
||||
}
|
||||
approval_boundaries: Record<string, false>
|
||||
display_redaction_contract: {
|
||||
redaction_required: true
|
||||
raw_payload_display_allowed: false
|
||||
private_reasoning_display_allowed: false
|
||||
secret_value_display_allowed: false
|
||||
allowed_frontend_content: string[]
|
||||
forbidden_frontend_content: string[]
|
||||
frontend_display_policy: string
|
||||
}
|
||||
rollups: {
|
||||
write_target_count: number
|
||||
approval_gate_count: number
|
||||
approval_required_gate_ids: string[]
|
||||
blocked_runtime_action_count: number
|
||||
required_field_count: number
|
||||
forbidden_field_count: number
|
||||
live_write_count_total: number
|
||||
}
|
||||
}
|
||||
|
||||
export interface AiAgentOwnerApprovedFixtureDryRunSnapshot {
|
||||
schema_version: 'ai_agent_owner_approved_fixture_dry_run_v1'
|
||||
generated_at: string
|
||||
|
||||
Reference in New Issue
Block a user