vios_app 0.1.1

Small JSON vaults: Argon2id + AES-GCM, with optional AAD binding.
Documentation
use super::types::*;
use crate::devteam::{coder::Coder, planner::Planner, reviewer::Reviewer, sec_auditor::SecAuditor};

pub fn run_once(task: TaskSpec) -> TeamState {
    let agents: Vec<Box<dyn Agent>> = vec![
        Box::new(Planner),
        Box::new(Coder),
        Box::new(Reviewer),
        Box::new(SecAuditor),
    ];

    let mut state = TeamState::default();
    for a in agents {
        match a.step(&task, &state) {
            TeamEvent::Planned(steps) => state.plan = steps,
            TeamEvent::ProposedPatch(p) => state.patches.push(p),
            TeamEvent::ReviewNotes(n) => state.notes.extend(n),
            TeamEvent::SecNotes(n) => state.notes.extend(n),
            TeamEvent::Idle => {}
        }
    }
    state
}