Skip to content

Function: validateSnapshot()

Makaio Framework


Makaio Framework / contracts / validateSnapshot

validateSnapshot(snapshot): object

Defined in: ../../../packages/contracts/src/session/schemas/snapshot.ts:158

Validates a snapshot object against the schema.

unknown

The snapshot object to validate

The validated snapshot if valid

agents: object[]

Agent records per session.

Contains agent information for all sessions in the snapshot.

optional events?: ({ eventId: string; payload: { adapterId: string; adapterName: string; adapterSessionId: string; agentId: string; cwd?: string; model?: string; role?: "lead" | "member"; sessionId: string; }; sessionId: string; timestamp: number; type: "agent.added"; } | { eventId: string; payload: { agentIds: string[]; content: string | { blocks: { content: string; type: "text"; } | { source: … | …; type: "image"; } | { source: … | …; type: "document"; } | { attachmentType: … | …; displayName?: … | …; fileName: string; filePath: string; source: … | …; type: "attachment"; } | { content: string; metadata?: … | …; type: "reasoning"; } | { args: Record<…, …>; name: string; toolCallId: string; type: "tool_call"; } | { isError?: … | … | …; output: string; toolCallId: string; type: "tool_output"; } | (… | … | … | … | … | … | …)[]; role?: "user" | "assistant" | "system"; }; messageId: string; origin?: "text" | "voice" | "compact"; sessionId: string; source?: "user" | "extension" | "system"; turnId: string; turnNumber: number; }; sessionId: string; timestamp: number; type: "user_message.sent"; } | { eventId: string; payload: { agentId: string; messageId: string; sessionId: string; turnId: string; turnNumber: number; }; sessionId: string; timestamp: number; type: "user_message.acknowledged"; } | { eventId: string; payload: { agentId: string; error?: string; mergedInto?: string; messageId: string; outcome: "error" | "completed" | "superseded" | "merged" | "cancelled" | "rejected"; sessionId: string; supersededBy?: string; turnId: string; turnNumber: number; }; sessionId: string; timestamp: number; type: "user_message.completed"; } | { eventId: string; payload: { agentIds: string[]; initiator?: { source: "user" | "extension" | "system"; sourceId?: string; }; messageId: string; sessionId: string; turnId: string; turnNumber: number; }; sessionId: string; timestamp: number; type: "turn.started"; } | { eventId: string; payload: { error?: string; initiator?: { source: "user" | "extension" | "system"; sourceId?: string; }; sessionId: string; success: boolean; turnId: string; turnNumber: number; }; sessionId: string; timestamp: number; type: "turn.completed"; } | { eventId: string; payload: { messageId: string; role: "user" | "assistant"; turnId: string | null; }; sessionId: string; timestamp: number; type: "message"; } | { eventId: string; payload: { childSessionId: string; forkPointMessageId?: string; kind: "fork" | "branch" | "aside" | "subagent" | "compress" | "rewrite" | "coordinator"; parentSessionId: string; }; sessionId: string; timestamp: number; type: "branch.created"; } | { eventId: string; payload: { childSessionId: string; parentSessionId: string; resultJson?: string; resultMessageId?: string; }; sessionId: string; timestamp: number; type: "branch.merged"; } | { eventId: string; payload: { compressedMessageIds?: string[]; summaryJson: string; tokensAfter?: number; tokensBefore?: number; }; sessionId: string; timestamp: number; type: "squash"; } | { eventId: string; payload: Record<string, unknown>; sessionId: string; timestamp: number; type: string; })[]

Session events (only present if includeEvents was true).

Contains the full event audit trail when requested during export. Includes turn lifecycle events, branch events, and squash operations.

exportedAt: number

Export timestamp (Unix milliseconds).

Records when the snapshot was created.

messages: object[]

Message records with blocks.

If includeToolOutputs was false during export, tool_output blocks are completely removed from messages (not replaced with placeholders).

options: object = SnapshotExportOptionsSchema

Export options used to create this snapshot.

Records which options were used during export, allowing import handlers to understand the snapshot’s composition.

includeAncestors: boolean

Include parent chain up to root. When false, non-root sessions are detached.

includeChildren: boolean

Include forked/branched descendant sessions

includeEvents: boolean

Include session events audit trail (turn lifecycle, branch events, squash)

includeToolOutputs: boolean

Keep tool_output blocks in messages. When false, blocks are removed entirely.

sessions: object[]

Session records (flat array, linked by parentSessionId).

Sessions are stored in a flat array structure with relationships defined via parentSessionId and rootSessionId fields.

turns: object[]

Turn records with usage metrics.

Contains turn-level data including timing, status, and usage metrics.

version: "1.0"

Schema version for forward compatibility.

Enables detection of schema changes and migration logic in future versions. Current version is “1.0”.

ZodError If the snapshot is invalid