vios_app 0.1.1

Small JSON vaults: Argon2id + AES-GCM, with optional AAD binding.
Documentation
use std::fmt::Debug;

#[derive(Clone, Debug)]
pub enum Role {
    Planner,
    Coder,
    Reviewer,
    SecAuditor,
}

#[derive(Clone, Debug)]
pub struct TaskSpec {
    pub title: String,
    pub constraints: Vec<String>,
    pub content: String,
}

#[derive(Clone, Debug)]
pub struct Patch {
    pub path: String,
    pub diff: String,
}

pub trait Agent: Debug {
    fn role(&self) -> Role;
    fn step(&self, task: &TaskSpec, state: &TeamState) -> TeamEvent;
}

#[derive(Clone, Debug, Default)]
pub struct TeamState {
    pub plan: Vec<String>,
    pub patches: Vec<Patch>,
    pub notes: Vec<String>,
}

#[derive(Clone, Debug)]
pub enum TeamEvent {
    Planned(Vec<String>),
    ProposedPatch(Patch),
    ReviewNotes(Vec<String>),
    SecNotes(Vec<String>),
    Idle,
}