use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NodeContext {
pub workspace: String,
pub session_key: String,
#[serde(default)]
pub required_capabilities: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NodeTask {
pub id: String,
pub description: String,
pub context: NodeContext,
#[serde(skip_serializing_if = "Option::is_none")]
pub tool_hint: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NewSkill {
pub name: String,
pub description: String,
pub path: String,
pub txn_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NodeResult {
pub task_id: String,
pub response: String,
pub task_completed: bool,
pub tool_calls: usize,
#[serde(skip_serializing_if = "Option::is_none")]
pub new_skill: Option<NewSkill>,
}