Files
2026-07-13 12:52:40 +08:00

76 lines
1.9 KiB
Plaintext

---
title: "Events"
sidebarTitle: "Events"
description: "Reference for SDK event surfaces."
---
The SDK exposes multiple event surfaces.
## AgentRuntimeEvent
Direct `AgentRuntime` usage emits low-level runtime events through `agent.subscribe(listener)`.
```typescript
const unsubscribe = agent.subscribe((event) => {
console.log(event.type)
})
```
Common runtime events include model events, tool execution events, run lifecycle events, and failure events. Runtime results use `AgentRunResult.status` rather than `finishReason`.
## AgentEvent
Core/host-facing agent events are emitted through `AgentConfig.onEvent` and core adapters.
| Event | Description |
|-------|-------------|
| `content_start` | Text/reasoning/tool content begins |
| `content_update` | Tool progress update |
| `content_end` | Text/reasoning/tool content completes |
| `iteration_start` | Loop iteration begins |
| `iteration_end` | Loop iteration completes |
| `usage` | Token/cost usage update |
| `notice` | Runtime status/recovery notice |
| `done` | Agent completed/aborted/failed |
| `error` | Error occurred |
## Done Event
```typescript
interface AgentDoneEvent {
type: "done"
reason: "completed" | "max_iterations" | "aborted" | "mistake_limit" | "error"
text: string
iterations: number
usage?: LegacyAgentUsage
}
```
## Usage Event
```typescript
interface AgentUsageEvent {
type: "usage"
inputTokens: number
outputTokens: number
cacheReadTokens?: number
cacheWriteTokens?: number
cost?: number
totalInputTokens: number
totalOutputTokens: number
totalCacheReadTokens?: number
totalCacheWriteTokens?: number
totalCost?: number
}
```
## CoreSessionEvent
`ClineCore.subscribe(listener, options?)` emits session-level events from the runtime host.
```typescript
const unsubscribe = cline.subscribe((event) => {
console.log(event.type, event.sessionId)
}, { sessionId })
```