velaclaw 0.3.0

Protocol-driven autonomous AI agent runtime with intelligent model selection and multi-model negotiation.
//! Strategy module for AI-generated investigation plans
//!
//! Contains data structures for strategies created by the AI.

use serde::{Deserialize, Serialize};

/// Investigation step generated by AI
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InvestigationStep {
    pub step_id: String,
    pub description: String,
    pub command: Option<String>,
    pub command_type: Option<String>,
    pub possible_outcomes: std::collections::HashMap<String, PossibleOutcome>,
}

/// Possible outcomes of an investigation step
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PossibleOutcome {
    pub implication: String,
    pub next_step_id: Option<String>,
    pub evidence_expected: bool,
}

/// Expected finding to support hypothesis
#[derive(Debug, Serialize, Deserialize)]
pub struct ExpectedFinding {
    pub description: String,
    pub category: String,
    pub would_confirm: bool,
}

/// Diagnostic strategy created by AI
#[derive(Debug, Serialize, Deserialize)]
pub struct DiagnosticStrategy {
    pub initial_hypothesis: String,
    pub investigation_plan: Vec<InvestigationStep>,
    pub expected_findings: Vec<String>,
    pub success_criteria: String,
}