claw10-domain 0.2.3

Domain models and types for Claw10 OS
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use uuid::Uuid;

use crate::agent::AgentId;
use crate::task::TaskId;

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EvidenceId(pub Uuid);

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Evidence {
    pub id: EvidenceId,
    pub task_id: TaskId,
    pub agent_id: AgentId,
    pub evidence_type: EvidenceType,
    pub content: String,
    pub content_hash: String,
    pub accepted: bool,
    pub created_at: DateTime<Utc>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum EvidenceType {
    File,
    Screenshot,
    TestOutput,
    CommandResult,
    ApiResult,
    DatabaseDiff,
    DeploymentHealth,
    SourceCitation,
    HumanConfirmation,
}