synaptic-graph 0.4.0

LangGraph-style state machine: StateGraph, CompiledGraph, ReAct agent, checkpointing
Documentation
use synaptic_core::Message;
use synaptic_graph::{MessageState, State};

#[test]
fn message_state_merge() {
    let mut a = MessageState::with_messages(vec![Message::human("hello")]);
    let b = MessageState::with_messages(vec![Message::ai("world")]);
    a.merge(b);
    assert_eq!(a.messages.len(), 2);
    assert_eq!(a.messages[0].content(), "hello");
    assert_eq!(a.messages[1].content(), "world");
}

#[test]
fn message_state_last_message() {
    let state = MessageState::with_messages(vec![Message::human("first"), Message::ai("second")]);
    let last = state.last_message().unwrap();
    assert_eq!(last.content(), "second");
    assert!(last.is_ai());
}

#[test]
fn message_state_default_empty() {
    let state = MessageState::default();
    assert!(state.messages.is_empty());
    assert!(state.last_message().is_none());
}