A3S CodeExamples
Streaming
Real-time event stream with AgentEvent
Streaming
Subscribe to AgentEvent for real-time visibility into what the agent is doing — text deltas, tool calls, token usage, and more.
Event Types
Prop
Type
Example
const session = agent.session('/my-project', { permissive: true });
const stream = await session.stream('Refactor the auth module');
while (true) {
const { value: event, done } = await stream.next();
if (!event || done) break;
switch (event.type) {
case 'text_delta':
process.stdout.write(event.text);
break;
case 'tool_start':
process.stdout.write(`\n🔧 ${event.toolName}...`);
break;
case 'tool_end':
console.log(` ✓ (exit=${event.exitCode})`);
break;
case 'turn_end':
console.log(`\n└─ Turn ${event.turn} done (${event.totalTokens} tokens)`);
break;
case 'end':
console.log(`\n■ Done — ${event.totalTokens} tokens total`);
break;
}
}session = agent.session("/my-project", permissive=True)
for event in session.stream("Refactor the auth module"):
t = event.event_type
if t == "text_delta":
print(event.text, end="", flush=True)
elif t == "tool_start":
print(f"\n🔧 {event.tool_name}...", end="")
elif t == "tool_end":
print(f" ✓ (exit={event.exit_code})")
elif t == "turn_end":
print(f"\n└─ Turn {event.turn} done ({event.total_tokens} tokens)")
elif t == "end":
print(f"\n■ Done — {event.total_tokens} tokens total")
breakSample Output
┌─ Turn 1
🔧 read... ✓ (exit=0)
🔧 write... ✓ (exit=0)
└─ Turn 1 done (1842 tokens)
┌─ Turn 2
The auth module has been refactored. Key changes:
- Extracted JWT validation into a separate function
- Added proper error types
- Improved test coverage
└─ Turn 2 done (2103 tokens)
■ Done — 3945 tokens totalAPI Reference
stream()
Prop
Type
AgentEvent types
Prop
Type