# SessionEventMap

**Kind:** Interface

**Source:** [`atloria-monorepo/libs/agent-core/src/session/types.ts`](https://github.com/sherkety/atloria/blob/main/atloria-monorepo/libs/agent-core/src/session/types.ts#L44)

Typed event map for AgentSession.
Consumers call `session.on('tool_start', (e) => ...)` with full type safety.

## Properties

| Property | Type |
|---|---|
| `agent_thinking` | `{ agentName: string }` |
| `tool_start` | `{ toolName: string; input: string }` |
| `tool_end` | `{ toolName: string; outputPreview: string; durationMs: number }` |
| `agent_message` | `{ text: string; agentName: string; delta?: boolean }` |
| `turn_complete` | `{ turnNumber: number; usage: TokenUsage }` |
| `session_complete` | `{ totalUsage: TokenUsage; turnCount: number }` |
| `error` | `{ error: Error; recoverable: boolean }` |
| `status` | `{ code: string; message: string }` |
| `user_input_queued` | `{ message: string; position: number }` |
| `plan_ready` | `{ plan: string }` |
| `plan_approved` | `{}` |
| `model_switched` | `{ from: string; to: string; reason: string }` |
| `verbose` | `{ category: string; message: string; data?: Record<string, unknown>; timestamp: number }` |
| `session_start` | `{ model: string; workspace?: string }` |
| `session_end` | `{ totalUsage: TokenUsage; turnCount: number; reason: 'completed' | 'error' | 'cancelled' }` |
| `pre_compact` | `{ turnNumber: number; tokenCount: number; recentFiles: string[] }` |
| `post_compact` | `{ turnNumber: number; summaryInjected: boolean }` |
| `subagent_start` | `{ agentName: string; task: string }` |
| `subagent_end` | `{ agentName: string; output: string; durationMs: number }` |
| `user_prompt_submit` | `{ message: string }` |
