use std::collections::HashSet;
use std::sync::Arc;
use crate::cm_types::CommandApprovalDecision;
use tokio::sync::{Mutex as TokioMutex, mpsc};
pub struct ToolRuntime<'a> {
pub workspace_changed: &'a mut bool,
pub ctx: Option<&'a WebToolRuntime>,
}
pub struct WebToolRuntime {
pub out_tx: mpsc::Sender<String>,
pub approval_rx_shared: Arc<TokioMutex<mpsc::Receiver<CommandApprovalDecision>>>,
pub approval_request_guard: Arc<TokioMutex<()>>,
pub persistent_allowlist_shared: Arc<TokioMutex<HashSet<String>>>,
}