Skip to main content

codetether_agent/tui/app/state/
worker_bridge.rs

1//! Worker bridge state operations.
2//!
3//! Methods for managing the A2A worker connection, registered agents,
4//! and the incoming-task queue.
5
6use crate::tui::worker_bridge::IncomingTask;
7
8impl super::AppState {
9    pub fn set_worker_bridge(&mut self, worker_id: String, worker_name: String) {
10        self.worker_id = Some(worker_id);
11        self.worker_name = Some(worker_name);
12        self.a2a_connected = true;
13    }
14
15    pub fn sync_worker_bridge_processing(&mut self, processing: bool) {
16        self.worker_bridge_processing_state = Some(processing);
17    }
18
19    pub fn register_worker_agent(&mut self, name: String) {
20        self.worker_bridge_registered_agents.insert(name);
21    }
22
23    pub fn push_recent_task(&mut self, task: String) {
24        self.recent_tasks.push(task);
25        if self.recent_tasks.len() > 20 {
26            let drain_len = self.recent_tasks.len() - 20;
27            self.recent_tasks.drain(0..drain_len);
28        }
29    }
30
31    pub fn enqueue_worker_task(&mut self, task: IncomingTask) {
32        self.worker_task_queue.push_back(task);
33        while self.worker_task_queue.len() > 20 {
34            self.worker_task_queue.pop_front();
35        }
36    }
37
38    pub fn dequeue_worker_task(&mut self) -> Option<IncomingTask> {
39        self.worker_task_queue.pop_front()
40    }
41}