feat(agents): expose controlled executor handoff runway
Some checks failed
Code Review / ai-code-review (push) Successful in 22s
CD Pipeline / tests (push) Successful in 1m47s
CD Pipeline / build-and-deploy (push) Successful in 6m20s
CD Pipeline / post-deploy-checks (push) Successful in 2m18s
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-27 11:42:21 +08:00
parent fccd8874fc
commit b2b51ecbf2
11 changed files with 2092 additions and 1 deletions

View File

@@ -647,6 +647,11 @@ export const apiClient = {
return handleResponse<AiAgentHighRiskOwnerReviewQueueSnapshot>(res)
},
async getAiAgentControlledExecutorHandoff() {
const res = await fetch(`${API_BASE_URL}/agents/agent-controlled-executor-handoff`)
return handleResponse<AiAgentControlledExecutorHandoffSnapshot>(res)
},
async getAiAgentActionAuditLedger() {
const res = await fetch(`${API_BASE_URL}/agents/agent-action-audit-ledger`)
return handleResponse<AiAgentActionAuditLedgerSnapshot>(res)
@@ -4487,6 +4492,226 @@ export interface AiAgentHighRiskOwnerReviewQueueSnapshot {
}>
}
export interface AiAgentControlledExecutorHandoffSnapshot {
schema_version: 'ai_agent_controlled_executor_handoff_v1'
generated_at: string
program_status: {
overall_completion_percent: number
current_priority: 'P0'
current_task_id: 'P2-415'
next_task_id: 'P2-416'
read_only_mode: true
runtime_authority: 'controlled_executor_handoff_readback_no_live_apply'
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' | 'sre' | 'security' | 'devops'
status: string
key_readback: string
next_action: string
}>
handoff_truth: {
p2_409_controlled_apply_queue_loaded: true
p2_410_audit_ledger_loaded: true
p2_411_handoff_event_bus_loaded: true
runtime_readiness_loaded: true
runtime_write_gate_loaded: true
post_write_verifier_loaded: true
learning_writeback_loaded: true
telegram_receipt_loaded: true
high_risk_controlled_executor_handoff_ready: true
high_risk_owner_review_required: false
critical_break_glass_required: true
allowlist_route_required: true
ansible_check_mode_required: true
rollback_plan_required: true
post_action_verifier_required: true
telegram_evidence_required: true
km_writeback_required: true
playbook_trust_writeback_required: true
controlled_executor_dispatch_enabled: false
live_apply_enabled: false
critical_auto_bypass_allowed: false
gateway_queue_write_enabled: false
telegram_send_enabled: false
bot_api_call_enabled: false
km_write_enabled: false
playbook_trust_write_enabled: false
production_write_enabled: false
secret_read_enabled: false
paid_api_call_enabled: false
host_write_enabled: false
kubectl_action_enabled: false
destructive_operation_enabled: false
controlled_executor_dispatch_count_24h: number
live_apply_count_24h: number
gateway_queue_write_count_24h: number
telegram_send_count_24h: number
bot_api_call_count_24h: number
km_write_count_24h: number
playbook_trust_write_count_24h: number
production_write_count_24h: number
secret_read_count_24h: number
paid_api_call_count_24h: number
host_write_count_24h: number
kubectl_action_count_24h: number
destructive_operation_count_24h: number
truth_note: string
}
executor_handoff_packets: Array<{
packet_id: string
source_queue_item_id: string
display_name: string
risk_tier: 'high' | 'critical'
owner_agent: 'openclaw' | 'hermes' | 'nemotron' | 'sre' | 'security' | 'devops'
executor_agent: 'openclaw' | 'hermes' | 'nemotron' | 'sre' | 'security' | 'devops'
executor_type:
| 'ansible_playbook'
| 'mcp_tool_route'
| 'telegram_gateway_queue'
| 'km_playbook_writer'
| 'readback_verifier'
| 'break_glass_only'
handoff_status:
| 'ready_for_controlled_executor'
| 'critical_break_glass_only'
| 'blocked_missing_check_mode'
| 'blocked_missing_verifier'
| 'blocked_missing_learning_writeback'
controlled_route_id: string
playbook_ref: string
mcp_tool_ref: string
check_mode_ref: string
verifier_ref: string
rollback_ref: string
telegram_evidence_ref: string
km_writeback_ref: string
playbook_trust_ref: string
allowlist_match: boolean
check_mode_passed: boolean
rollback_plan_ready: boolean
post_action_verifier_ready: boolean
telegram_evidence_ready: boolean
km_writeback_ready: boolean
playbook_trust_writeback_ready: boolean
owner_response_required: boolean
break_glass_required: boolean
controlled_executor_handoff_allowed: boolean
live_apply_performed: false
side_effect_count: number
blocked_runtime_actions: string[]
next_gate: string
}>
executor_routes: Array<{
route_id: string
display_name: string
executor_agent: 'openclaw' | 'hermes' | 'nemotron' | 'sre' | 'security' | 'devops'
route_status: 'ready_for_handoff' | 'blocked_by_policy'
required_inputs: string[]
blocked_actions: string[]
live_apply_allowed_by_this_readback: false
}>
verifier_bindings: Array<{
binding_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron' | 'sre' | 'security' | 'devops'
required_before_dispatch: true
ready_count: number
blocked_count: number
failure_if_missing: string
}>
learning_writeback_contracts: Array<{
contract_id: string
display_name: string
owner_agent: 'openclaw' | 'hermes' | 'nemotron' | 'sre' | 'security' | 'devops'
target_store: string
writeback_status: 'ready_for_executor_receipt' | 'blocked_by_policy'
required_fields: string[]
runtime_write_performed: false
}>
activation_boundaries: {
committed_snapshot_read_allowed: true
controlled_executor_handoff_preview_allowed: true
ansible_check_mode_receipt_preview_allowed: true
mcp_tool_registry_route_preview_allowed: true
post_action_verifier_binding_preview_allowed: true
telegram_evidence_preview_allowed: true
km_playbook_trust_writeback_preview_allowed: true
controlled_executor_dispatch_enabled: false
live_apply_enabled: false
gateway_queue_write_enabled: false
telegram_send_enabled: false
bot_api_call_enabled: false
km_write_enabled: false
playbook_trust_write_enabled: false
production_write_enabled: false
secret_read_enabled: false
paid_api_call_enabled: false
host_write_enabled: false
kubectl_action_enabled: false
destructive_operation_enabled: false
}
display_redaction_contract: {
redaction_required: true
raw_tool_output_display_allowed: false
raw_runtime_payload_display_allowed: false
raw_telegram_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: {
source_readback_count: number
handoff_packet_count: number
ready_for_controlled_executor_count: number
critical_break_glass_count: number
high_risk_packet_count: number
critical_packet_count: number
ansible_check_mode_packet_count: number
mcp_tool_route_count: number
post_action_verifier_binding_count: number
telegram_evidence_binding_count: number
km_writeback_binding_count: number
playbook_trust_writeback_binding_count: number
owner_response_required_count: number
blocked_by_critical_boundary_count: number
missing_check_mode_count: number
missing_rollback_count: number
missing_verifier_count: number
missing_telegram_evidence_count: number
missing_learning_writeback_count: number
executor_route_count: number
verifier_binding_count: number
learning_writeback_contract_count: number
controlled_executor_dispatch_count: number
live_apply_count: number
gateway_queue_write_count: number
telegram_send_count: number
bot_api_call_count: number
km_write_count: number
playbook_trust_write_count: number
production_write_count: number
secret_read_count: number
paid_api_call_count: number
host_write_count: number
kubectl_action_count: number
destructive_operation_count: number
}
next_actions: Array<{
task_id: string
priority: 'P0' | 'P1' | 'P2' | 'P3'
summary: string
gate: string
}>
}
export interface AiAgentActionAuditLedgerSnapshot {
schema_version: 'ai_agent_action_audit_ledger_v1'
generated_at: string