claude_rust_coordinator/domain/
agent.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
4pub struct AgentId(pub String);
5
6impl AgentId {
7 pub fn new(id: impl Into<String>) -> Self {
8 Self(id.into())
9 }
10}
11
12impl std::fmt::Display for AgentId {
13 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
14 write!(f, "{}", self.0)
15 }
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19pub enum AgentStatus {
20 Idle,
21 Running,
22 Completed,
23 Failed,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct AgentDefinition {
28 pub id: AgentId,
29 pub name: String,
30 pub description: String,
31 pub model: Option<String>,
32 pub system_prompt: Option<String>,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
36pub struct AgentState {
37 pub definition: AgentDefinition,
38 pub status: AgentStatus,
39 pub created_at: u64,
40}