use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextIndex {
pub source: String,
pub hash: u64,
pub symbols: Vec<String>,
pub records: Vec<EvidenceRecord>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum EvidenceKind {
Symbol,
Import,
Error,
Text,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PlanIntent {
Debug,
Symbol,
Summary,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EvidenceRecord {
pub id: usize,
pub source: String,
pub kind: EvidenceKind,
pub span: (usize, usize),
pub symbols: Vec<String>,
pub score: f32,
pub reason: String,
pub text: String,
}
#[derive(Debug, Clone)]
pub struct RetrievalPlan {
pub terms: Vec<String>,
pub budget_tokens: usize,
pub intent: PlanIntent,
}