#![allow(dead_code)]
use zeph_common::ToolName;
use zeph_tools::{ToolCall, ToolError};
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum PredictionSource {
StreamPartial,
HistoryPattern { skill: String, rank: u8 },
}
#[derive(Debug, Clone)]
pub struct Prediction {
pub tool_id: ToolName,
pub args: serde_json::Map<String, serde_json::Value>,
pub confidence: f32,
pub source: PredictionSource,
}
impl Prediction {
#[must_use]
pub fn to_tool_call(&self, call_id: impl Into<String>) -> ToolCall {
ToolCall {
tool_id: self.tool_id.clone(),
params: self.args.clone(),
caller_id: Some(call_id.into()),
}
}
}
#[must_use]
pub fn is_confirmation_error(err: &ToolError) -> bool {
matches!(err, ToolError::ConfirmationRequired { .. })
}