Function: validateSnapshot()
Makaio Framework / contracts / validateSnapshot
Function: validateSnapshot()
Section titled “Function: validateSnapshot()”validateSnapshot(
snapshot):object
Defined in: ../../../packages/contracts/src/session/schemas/snapshot.ts:158
Validates a snapshot object against the schema.
Parameters
Section titled “Parameters”snapshot
Section titled “snapshot”unknown
The snapshot object to validate
Returns
Section titled “Returns”The validated snapshot if valid
agents
Section titled “agents”agents:
object[]
Agent records per session.
Contains agent information for all sessions in the snapshot.
events?
Section titled “events?”
optionalevents?: ({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
Section titled “exportedAt”exportedAt:
number
Export timestamp (Unix milliseconds).
Records when the snapshot was created.
messages
Section titled “messages”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
Section titled “options”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.
options.includeAncestors
Section titled “options.includeAncestors”includeAncestors:
boolean
Include parent chain up to root. When false, non-root sessions are detached.
options.includeChildren
Section titled “options.includeChildren”includeChildren:
boolean
Include forked/branched descendant sessions
options.includeEvents
Section titled “options.includeEvents”includeEvents:
boolean
Include session events audit trail (turn lifecycle, branch events, squash)
options.includeToolOutputs
Section titled “options.includeToolOutputs”includeToolOutputs:
boolean
Keep tool_output blocks in messages. When false, blocks are removed entirely.
sessions
Section titled “sessions”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
Section titled “version”version:
"1.0"
Schema version for forward compatibility.
Enables detection of schema changes and migration logic in future versions. Current version is “1.0”.
Throws
Section titled “Throws”ZodError If the snapshot is invalid