feat(ai): 新增 P2-406B receipt owner review
Some checks failed
Code Review / ai-code-review (push) Successful in 16s
CD Pipeline / tests (push) Successful in 1m52s
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled
Some checks failed
Code Review / ai-code-review (push) Successful in 16s
CD Pipeline / tests (push) Successful in 1m52s
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled
This commit is contained in:
@@ -339,6 +339,11 @@ export const apiClient = {
|
||||
return handleResponse<AiAgentProfessionalTaskExpansionSnapshot>(res)
|
||||
},
|
||||
|
||||
async getAiAgentReceiptReadbackOwnerReview() {
|
||||
const res = await fetch(`${API_BASE_URL}/agents/agent-receipt-readback-owner-review`)
|
||||
return handleResponse<AiAgentReceiptReadbackOwnerReviewSnapshot>(res)
|
||||
},
|
||||
|
||||
async getAiAgentProactiveOperationsContract() {
|
||||
const res = await fetch(`${API_BASE_URL}/agents/agent-proactive-operations-contract`)
|
||||
return handleResponse<AiAgentProactiveOperationsContractSnapshot>(res)
|
||||
@@ -1895,6 +1900,157 @@ export interface AiAgentProfessionalTaskExpansionSnapshot {
|
||||
}
|
||||
}
|
||||
|
||||
export interface AiAgentReceiptReadbackOwnerReviewSnapshot {
|
||||
schema_version: 'ai_agent_receipt_readback_owner_review_v1'
|
||||
generated_at: string
|
||||
program_status: {
|
||||
overall_completion_percent: number
|
||||
current_priority: 'P0' | 'P1' | 'P2' | 'P3'
|
||||
current_task_id: 'P2-406B'
|
||||
next_task_id: 'P2-407'
|
||||
read_only_mode: true
|
||||
runtime_authority: 'receipt_readback_owner_review_only_no_send_or_write'
|
||||
status_note: string
|
||||
}
|
||||
source_refs: string[]
|
||||
source_readbacks: Array<{
|
||||
readback_id: string
|
||||
source_schema_version: string
|
||||
source_ref: string
|
||||
endpoint: string
|
||||
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
|
||||
status: string
|
||||
evidence_status: string
|
||||
key_readback: string
|
||||
next_action: string
|
||||
}>
|
||||
rollups: {
|
||||
source_readback_count: number
|
||||
report_cadence_count: number
|
||||
owner_review_gate_count: number
|
||||
receipt_readback_check_count: number
|
||||
drift_candidate_count: number
|
||||
report_truth_blocker_count: number
|
||||
approval_required_count: number
|
||||
blocked_runtime_action_count: number
|
||||
live_write_count: number
|
||||
telegram_send_count: number
|
||||
gateway_queue_write_count: number
|
||||
bot_api_call_count: number
|
||||
production_write_count: number
|
||||
secret_read_count: number
|
||||
paid_api_call_count: number
|
||||
host_write_count: number
|
||||
kubectl_action_count: number
|
||||
}
|
||||
report_owner_review: {
|
||||
cadences: Array<{
|
||||
cadence_id: 'daily' | 'weekly' | 'monthly'
|
||||
display_name: string
|
||||
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
|
||||
completion_percent: number
|
||||
delivery_state: string
|
||||
source_confidence: string
|
||||
live_delivery_count: number
|
||||
review_status: string
|
||||
next_gate: string
|
||||
}>
|
||||
}
|
||||
receipt_readback_plan: {
|
||||
canonical_room: string
|
||||
canonical_room_env: string
|
||||
gateway_owner: string
|
||||
arbiter: 'openclaw'
|
||||
receipt_owner: 'hermes'
|
||||
replay_owner: 'nemotron'
|
||||
dry_run_receipt_only: boolean
|
||||
owner_review_required_before_canary: boolean
|
||||
canary_send_approved: boolean
|
||||
receipt_production_write_enabled: boolean
|
||||
readback_checks: Array<{
|
||||
check_id: string
|
||||
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
|
||||
status: string
|
||||
evidence_refs: string[]
|
||||
blocked_runtime_action: string
|
||||
}>
|
||||
}
|
||||
owner_review_gates: Array<{
|
||||
gate_id: string
|
||||
title: string
|
||||
owner_agent: 'openclaw' | 'hermes' | 'nemotron'
|
||||
risk_tier: 'low' | 'medium' | 'high' | 'critical'
|
||||
status: string
|
||||
approval_required: true
|
||||
required_owner_fields: string[]
|
||||
acceptance_checks: string[]
|
||||
rejection_reasons: string[]
|
||||
blocked_runtime_actions: string[]
|
||||
evidence_refs: string[]
|
||||
next_action: string
|
||||
}>
|
||||
drift_monitor_owner_review: {
|
||||
source_task_id: 'P2-004'
|
||||
drift_candidate_count: number
|
||||
action_required_candidate_count: number
|
||||
stale_source_snapshot_count: number
|
||||
external_lookup_allowed: false
|
||||
package_upgrade_allowed: false
|
||||
owner_actions: string[]
|
||||
}
|
||||
report_truth_owner_review: {
|
||||
source_task_id: 'P2-403J'
|
||||
all_zero_weekly_report_is_actionable_anomaly: true
|
||||
all_zero_weekly_report_confidence: 'low_trust_actionable_anomaly'
|
||||
zero_signal_finding_count: number
|
||||
critical_finding_count: number
|
||||
high_finding_count: number
|
||||
telegram_report_send_allowed: false
|
||||
cronjob_change_allowed: false
|
||||
freshness_gate_implemented: false
|
||||
source_confidence_gate_implemented: false
|
||||
actionability_score_implemented: false
|
||||
owner_actions: string[]
|
||||
}
|
||||
activation_boundaries: Record<string, boolean>
|
||||
telegram_policy: {
|
||||
status: string
|
||||
canonical_room: string
|
||||
canonical_room_env: string
|
||||
gateway_queue_write_allowed: false
|
||||
direct_bot_api_allowed: false
|
||||
telegram_send_allowed: false
|
||||
receipt_write_allowed: false
|
||||
owner_review_required?: boolean
|
||||
canary_message_limit?: number
|
||||
canary_approval_task?: string
|
||||
}
|
||||
agent_roles: Array<{
|
||||
agent_id: 'openclaw' | 'hermes' | 'nemotron'
|
||||
role: string
|
||||
specialty: string
|
||||
autonomy_level: string
|
||||
approval_gate: string
|
||||
runtime_write_allowed: false
|
||||
outputs: string[]
|
||||
}>
|
||||
operator_decision: {
|
||||
status: 'owner_review_required_before_canary'
|
||||
approval_packet_required: true
|
||||
rollback_plan_required: true
|
||||
mute_plan_required: true
|
||||
required_fields: string[]
|
||||
stop_conditions: string[]
|
||||
next_decision_point: string
|
||||
}
|
||||
next_actions: Array<{
|
||||
task_id: string
|
||||
priority: 'P0' | 'P1' | 'P2' | 'P3'
|
||||
summary: string
|
||||
gate: string
|
||||
}>
|
||||
}
|
||||
|
||||
export interface AiAgentProactiveOperationsContractSnapshot {
|
||||
schema_version: 'ai_agent_proactive_operations_contract_v1'
|
||||
generated_at: string
|
||||
|
||||
Reference in New Issue
Block a user