use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NeuroSymbolicStatusResponse {
pub enabled: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<NeuroSymbolicStatus>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NeuroSymbolicStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_trained_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trained_traces: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gflownet_iterations: Option<u64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TrainingTriggerResponse {
pub triggered: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub result: Option<TrainingRunResult>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TrainingRunResult {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub final_loss: Option<f32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iterations: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub elapsed_ms: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TrainFromTracesResponse {
pub triggered: bool,
pub traces_consumed: u64,
pub loss: f32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
pub type DiagnosticsSnapshot = serde_json::Value;
pub type EmbeddingVerifyResponse = serde_json::Value;
pub type SortBoxResponse = serde_json::Value;