lha-core 1.0.2

Minimal agent SDK for LHA with session runtime, tools, skills, and optional MCP adapters.
Documentation
use crate::SessionId;
use async_trait::async_trait;
use lha_llm::RuntimeMetadata;
use lha_llm::ToolDescriptor;
use lha_llm::TranscriptItem;
use thiserror::Error;

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Skill {
    pub id: String,
    pub name: String,
    pub description: Option<String>,
    pub instructions: String,
    pub required_tools: Vec<String>,
}

#[derive(Debug, Clone, PartialEq)]
pub struct SkillContext {
    pub session_id: SessionId,
    pub conversation: Vec<TranscriptItem>,
    pub runtime: RuntimeMetadata,
    pub tools: Vec<ToolDescriptor>,
}

#[derive(Debug, Error)]
pub enum SkillError {
    #[error("{0}")]
    Fatal(String),
}

#[async_trait]
pub trait SkillProvider: Send + Sync {
    async fn skills_for_turn(
        &self,
        context: &SkillContext,
    ) -> std::result::Result<Vec<Skill>, SkillError>;
}