Crate serdes_ai_ui

Crate serdes_ai_ui 

Source
Expand description

UI protocol adapters for serdesAI.

This crate provides adapters for integrating serdesAI agents with frontend UI frameworks and streaming protocols:

  • vercel_ai: Vercel AI SDK Data Stream Protocol (SSE)
  • [ag_ui]: AG-UI protocol for rich agent interactions

§Feature Flags

  • vercel (default): Enable Vercel AI SDK adapter
  • ag-ui: Enable AG-UI protocol adapter
  • full: Enable all adapters

§Example: Vercel AI SDK

use serdes_ai_ui::vercel_ai::{
    VercelAIEventStream, Chunk, VERCEL_AI_DSP_HEADERS, chunks_to_sse
};
use serdes_ai_streaming::AgentStreamEvent;

async fn handle_stream(agent_stream: impl Stream<Item = AgentStreamEvent<()>>) {
    let mut transformer = VercelAIEventStream::new();

    // Emit SSE for start chunks
    let start_sse = chunks_to_sse(&transformer.before_stream());
    send_sse(&start_sse);

    // Transform agent events to SSE
    while let Some(event) = agent_stream.next().await {
        let chunks = transformer.transform_event(event);
        send_sse(&chunks_to_sse(&chunks));
    }

    // Emit SSE for end chunks
    let end_sse = chunks_to_sse(&transformer.after_stream());
    send_sse(&end_sse);
}

§Vercel AI Chunk Types

The Vercel AI adapter provides these chunk types:

CategoryChunks
LifecycleStartChunk, StartStepChunk, FinishStepChunk, FinishChunk, DoneChunk, AbortChunk
TextTextStartChunk, TextDeltaChunk, TextEndChunk
ReasoningReasoningStartChunk, ReasoningDeltaChunk, ReasoningEndChunk
Tool InputToolInputStartChunk, ToolInputDeltaChunk, ToolInputAvailableChunk, ToolInputErrorChunk
Tool OutputToolOutputAvailableChunk, ToolOutputErrorChunk, ToolOutputDeniedChunk
SourcesSourceUrlChunk, SourceDocumentChunk
DataDataChunk, FileChunk
ErrorErrorChunk, MessageMetadataChunk

Re-exports§

pub use vercel_ai::Chunk;
pub use vercel_ai::FinishReason;
pub use vercel_ai::VercelAIEventStream;
pub use vercel_ai::VERCEL_AI_DSP_HEADERS;

Modules§

vercel_ai
Vercel AI SDK adapter for serdesAI.