omniference 0.1.1

A multi-protocol inference engine with provider adapters
Documentation
use serde::{Deserialize, Serialize};

use crate::types::{CompletionTokensDetails, PromptTokensDetails};

#[derive(Clone, Debug, Serialize, Deserialize)]
pub enum StreamEvent {
    TextDelta {
        content: String,
    },
    ReasoningDelta {
        content: String,
    },
    ToolCallStart {
        id: String,
        name: String,
        args_json: serde_json::Value,
    },
    ToolCallDelta {
        id: String,
        args_delta_json: serde_json::Value,
    },
    ToolCallEnd {
        id: String,
        args_json: serde_json::Value,
    },
    SystemNote {
        content: String,
    },
    Tokens {
        input: u32,
        output: u32,
    },
    FinalMessage {
        content: String,
        tool_calls: Vec<ToolCallSummary>,
    },
    OpenAIMetadata {
        system_fingerprint: Option<String>,
        service_tier: Option<String>,
        prompt_tokens_details: Option<PromptTokensDetails>,
        completion_tokens_details: Option<CompletionTokensDetails>,
    },
    Error {
        code: String,
        message: String,
    },
    Done,
}

#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct ToolCallSummary {
    pub id: String,
    pub name: String,
    pub args_json: serde_json::Value,
}