feat: implement ACP user-interaction to request_permission bridge

This commit is contained in:
2026-07-27 18:00:07 -06:00
parent 6ae3efb06c
commit b711e4983b
4 changed files with 73 additions and 3 deletions
+11 -1
View File
@@ -1,7 +1,7 @@
use super::{FunctionDeclaration, JsonSchema};
use crate::config::RequestContext;
use crate::supervisor::escalation::{EscalationRequest, new_escalation_id};
use crate::utils::HEADLESS;
use crate::utils::{ACP_SERVER, HEADLESS, queue_acp_permission};
use anyhow::{Result, anyhow, bail};
use indexmap::IndexMap;
@@ -138,6 +138,16 @@ pub async fn handle_user_tool(
.strip_prefix(USER_FUNCTION_PREFIX)
.unwrap_or(cmd_name);
if ACP_SERVER.load(Ordering::SeqCst) {
let result = handle_headless(action, args);
queue_acp_permission(json!({
"action": action,
"question": result["question"],
"options": result["options"],
}));
return Ok(result);
}
if HEADLESS.load(Ordering::SeqCst) {
return Ok(handle_headless(action, args));
}