lha-core 1.0.2

Minimal agent SDK for LHA with session runtime, tools, skills, and optional MCP adapters.
Documentation
use lha_llm::TranscriptItem;
use lha_llm::types::ContentItem;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum InputQueue {
    Primary,
    Steering,
    FollowUp,
}

#[derive(Debug, Clone, PartialEq)]
pub struct SessionInput {
    items: Vec<TranscriptItem>,
}

impl SessionInput {
    pub fn new(items: Vec<TranscriptItem>) -> Self {
        Self { items }
    }

    pub fn from_item(item: TranscriptItem) -> Self {
        Self { items: vec![item] }
    }

    pub fn from_user_text(text: impl Into<String>) -> Self {
        Self::from_item(TranscriptItem::Message {
            id: None,
            role: "user".to_string(),
            content: vec![ContentItem::InputText { text: text.into() }],
            end_turn: None,
        })
    }

    pub fn items(&self) -> &[TranscriptItem] {
        &self.items
    }

    pub fn into_items(self) -> Vec<TranscriptItem> {
        self.items
    }
}

impl From<Vec<TranscriptItem>> for SessionInput {
    fn from(value: Vec<TranscriptItem>) -> Self {
        Self::new(value)
    }
}

impl From<TranscriptItem> for SessionInput {
    fn from(value: TranscriptItem) -> Self {
        Self::from_item(value)
    }
}