Documentation IndexFetch the complete documentation index at: /llms.txtUse this file to discover all available pages before exploring further.
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
WebSocket-based streaming for real-time message delivery
const stream = agent.createStream({ sessionId: 'session_abc123def456', autoReconnect: true, heartbeatInterval: 30000 }); stream.on('connected', () => { console.log('Stream connected'); }); stream.on('error', (error) => { console.error('Stream error:', error); });
stream.send({ type: 'message', content: 'Hello, Synthra!', metadata: { timestamp: Date.now() } });
stream.on('message', (message) => { console.log(`${message.role}: ${message.content}`); }); stream.on('typing', () => { console.log('Assistant is typing...'); }); stream.on('complete', () => { console.log('Message complete'); });
stream.send({ type: 'message', content: 'Write a long story', streaming: true }); let fullResponse = ''; stream.on('chunk', (chunk) => { fullResponse += chunk.content; process.stdout.write(chunk.content); });
const stream = agent.createStream({ sessionId: 'session_abc123def456', autoReconnect: true, maxReconnectAttempts: 5, reconnectDelay: 1000 }); stream.on('reconnecting', (attempt) => { console.log(`Reconnecting (attempt ${attempt}/5)...`); });
import { useEffect, useState } from 'react'; function ChatComponent({ sessionId }) { const [messages, setMessages] = useState([]); const [stream, setStream] = useState(null); useEffect(() => { const newStream = agent.createStream({ sessionId }); newStream.on('message', (message) => { setMessages(prev => [...prev, message]); }); setStream(newStream); return () => { newStream.close(); }; }, [sessionId]); return ( <div> {messages.map(msg => ( <div key={msg.id}>{msg.content}</div> ))} </div> ); }