vv_agent/runtime/sub_task_manager/
identity.rs1use std::sync::atomic::{AtomicU64, Ordering};
2
3use super::manager::SubTaskManager;
4
5static SUB_TASK_COUNTER: AtomicU64 = AtomicU64::new(1);
6
7impl SubTaskManager {
8 pub fn next_task_identity(parent_task_id: &str, agent_name: &str) -> (String, String) {
9 let parent = parent_task_id.trim();
10 let parent = if parent.is_empty() { "task" } else { parent };
11 let suffix = SUB_TASK_COUNTER.fetch_add(1, Ordering::Relaxed);
12 let task_id = format!("{parent}_sub_{agent_name}_{suffix:08x}");
13 (task_id.clone(), task_id)
14 }
15}