awaken-server 0.2.1

Multi-protocol HTTP server with SSE, mailbox, and protocol adapters for Awaken
Documentation
use awaken_contract::contract::event::AgentEvent;
use awaken_contract::contract::transport::Transcoder;
use awaken_server::protocols::{
    acp::encoder::AcpEncoder, ag_ui::encoder::AgUiEncoder, ai_sdk_v6::encoder::AiSdkEncoder,
};

#[test]
fn protocol_matrix_basic_flow() {
    let seq = [
        AgentEvent::RunStart {
            thread_id: "t".into(),
            run_id: "r".into(),
            identity: None,
            parent_run_id: None,
        },
        AgentEvent::TextDelta {
            delta: "hello".into(),
        },
        AgentEvent::RunFinish {
            thread_id: "t".into(),
            run_id: "r".into(),
            identity: None,
            result: None,
            termination: awaken_contract::contract::lifecycle::TerminationReason::NaturalEnd,
        },
    ];

    let mut acp = AcpEncoder::new();
    let mut ag = AgUiEncoder::new();
    let mut ai = AiSdkEncoder::new();

    let acp_count: usize = seq.iter().map(|e| acp.transcode(e).len()).sum();
    let ag_count: usize = seq.iter().map(|e| ag.transcode(e).len()).sum();
    let ai_count: usize = seq.iter().map(|e| ai.transcode(e).len()).sum();

    assert!(acp_count > 0 && ag_count > 0 && ai_count > 0);
}