synapto-interface 0.1.0-dev.12

Interface definitions for the Synapto framework
Documentation
use crate::plugin::MessageChannel;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};

#[doc = " Output message intended to be spoken by the system."]
#[derive(Serialize, Deserialize, JsonSchema, PartialEq, Eq, Debug, Clone)]
pub struct CognitiveOutputSpeech {
    #[doc = " The target channel for the speech output."]
    pub target_channel: MessageChannel,
    #[doc = " The text to be spoken."]
    pub text: String,
}

#[doc = " Current operational state of the cognitive loop."]
#[derive(Serialize, Deserialize, JsonSchema, PartialEq, Eq, Debug, Clone)]
pub enum CognitiveState {
    #[doc = " The AI is actively thinking/processing."]
    Thinking,
    #[doc = " The AI is performing document search or RAG."]
    Searching,
    #[doc = " The AI is executing an external command."]
    Acting,
    #[doc = " The AI is waiting for new input."]
    Idle,
}

#[doc = " Update event for the system's cognitive state."]
#[derive(Serialize, Deserialize, JsonSchema, PartialEq, Eq, Debug, Clone)]
pub struct CognitiveStateUpdate {
    #[doc = " The context of the state update (e.g. plugin-specific metadata)."]
    pub context: serde_json::Value,
    #[doc = " The new cognitive state."]
    pub state: CognitiveState,
}

#[derive(
    Serialize,
    Deserialize,
    JsonSchema,
    PartialEq,
    Eq,
    Debug,
    Clone,
    derive_more :: Display,
    derive_more :: From,
    derive_more :: Deref,
)]
pub struct CognitiveReasoning(pub String);