claude-code-driver / SessionEvent
Type Alias: SessionEvent
ts
type SessionEvent =
| Ev<"ready", {
mode: PermissionMode | "other";
model?: string;
}>
| Ev<"status", {
from: AgentStatus;
to: AgentStatus;
}>
| Ev<"claudeSessionChanged", {
from?: string;
reason: string;
to: string;
}>
| Ev<"turnQueued", {
origin: TurnSnapshot["origin"];
prompt: string;
}>
| Ev<"turnStarted", {
promptId: string;
}>
| Ev<"externalTurn", {
kind: "taskNotification" | "scheduled" | "autoContinue" | "human" | "unknown";
prompt: string;
}>
| Ev<"text", {
delta: string;
final: boolean;
messageId: string;
}>
| Ev<"textRetracted", {
messageIds: readonly string[];
}>
| Ev<"message", {
messageId: string;
text: string;
}>
| Ev<"toolStarted", ToolRunSnapshot>
| Ev<"toolEnded", ToolRunSnapshot>
| Ev<"permissionRequested", Omit<PermissionRequest, "signal">>
| Ev<"permissionResolved", {
by: "library" | "tui" | "policy" | "unknown";
decision: "allow" | "deny";
key: PermissionKey;
}>
| Ev<"inputRequested", {
inputKind: "elicitation" | "elicitationUrl" | "agentNeedsInput" | "unknownModal";
message?: string;
}>
| Ev<"subagentStarted", SubagentSnapshot>
| Ev<"subagentEnded", SubagentSnapshot>
| Ev<"modelCall", {
attempt?: number;
phase: "started" | "waiting" | "streaming" | "retrying" | "stalled" | "ended";
retryInMs?: number;
}>
| Ev<"usageLimited", {
nextWakeAt?: number;
resetsAt?: number;
}>
| Ev<"compaction", {
phase: "started" | "ended";
}>
| Ev<"turnEnded", TurnResult>
| Ev<"channel", {
channel: ChannelName;
health: "up" | "degraded" | "down" | "off";
reason?: string;
}>
| Ev<"authRequired", {
message: string;
}>
| Ev<"authRestored", {
}>
| Ev<"security", {
code: "E_SECURITY";
reason: string;
}>
| Ev<"warning", {
code: PublicErrorCode;
message: string;
reason: string;
}>
| Ev<"gap", {
from: number;
to: number;
}>
| Ev<"exited", SessionExitInfo>
| Ev<"suspended", {
claudeSessionId: string;
interrupted: boolean;
reason: "idle" | "manual";
}>
| Ev<"resumed", {
claudeSessionId: string;
durationMs: number;
}>;Defined in: api/public-types.ts:159