76 lines
1.9 KiB
Plaintext
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 })
|
|
```
|