SnapshotState
The complete folded view at the snapshot cursor.
Additive-optional evolution applies exactly as everywhere else; unknown members MUST be ignored, and preserved if re-serialized.
Fields and variants
Section titled “Fields and variants”activeTurnapprovalModebranchcontextUsageeffectiveModelgoalitemsnamependingApprovalspendingUserInputsqueuedTurnsreasoningEfforttodoListtokenUsageturnCount
Source
schema/msp/experimental/msp.schema.json#/types/SnapshotState
{ "description": "The complete folded view at the snapshot cursor.\n\nAdditive-optional evolution applies exactly as everywhere else; unknown\nmembers MUST be ignored, and preserved if re-serialized.", "properties": { "activeTurn": { "anyOf": [ { "$ref": "#/$defs/TurnRef" }, { "type": "null" } ], "description": "The running foreground turn; `null` when none is running." }, "approvalMode": { "$ref": "#/$defs/EffectiveApprovalModeState", "description": "The effective approval mode at this cursor — the same object the\n`Session` carries." }, "branch": { "anyOf": [ { "$ref": "#/$defs/BranchState" }, { "type": "null" } ], "description": "Latest branch observation; `null` when no fact has landed." }, "contextUsage": { "$ref": "#/$defs/ContextUsage", "description": "The latest `(windowTokens, usedTokens, pressure)` triple. The protocol\nallows \"`null`/absent\" and its worked example OMITS the member; the\nbinary omits it too, so this is the absent arm — the four siblings above\nare present-null in the same frame. A member is published as one or the\nother, never both." }, "effectiveModel": { "anyOf": [ { "$ref": "#/$defs/EffectiveModel" }, { "type": "null" } ], "description": "Latest effective model; `null` when no fact has landed." }, "goal": { "anyOf": [ { "$ref": "#/$defs/Goal" }, { "type": "null" } ], "description": "Latest goal block; `null` when no fact has landed." }, "items": { "description": "Every item, in first-opened order, each at its latest revision at the\nsnapshot cursor. One schema per kind, shared with the notification\nitem object — which is what makes snapshot+suffix a pure splice.", "items": { "$ref": "#/$defs/Item" }, "type": "array" }, "name": { "description": "The settled canonical session name; `null` when the session was never\nnamed. Folds the same durable\n`session/nameChanged` record `Session.name` reports.", "type": [ "string", "null" ] }, "pendingApprovals": { "description": "The pending-approval half of the pending set.", "items": { "$ref": "#/$defs/PendingApprovalPointer" }, "type": "array" }, "pendingUserInputs": { "description": "The pending-user-input half of the pending set.", "items": { "$ref": "#/$defs/PendingUserInputPointer" }, "type": "array" }, "queuedTurns": { "description": "Admitted-but-not-launched submits, in launch order.", "items": { "$ref": "#/$defs/TurnRef" }, "type": "array" }, "reasoningEffort": { "$ref": "#/$defs/ReasoningEffortState", "description": "The latest session-default reasoning effort with its source; ABSENT\nuntil a set lands." }, "todoList": { "anyOf": [ { "$ref": "#/$defs/TodoListState" }, { "type": "null" } ], "description": "Latest todo list; `null` when no fact has landed." }, "tokenUsage": { "$ref": "#/$defs/CumulativeTokenUsage", "description": "The `cumulative` block of the last `session/tokenUsage` event; zeroes\nwhen none." }, "turnCount": { "description": "Completed-turn count at this cursor.", "type": "integer" } }, "required": [ "activeTurn", "approvalMode", "branch", "effectiveModel", "goal", "items", "pendingApprovals", "pendingUserInputs", "queuedTurns", "todoList", "tokenUsage", "turnCount" ], "type": "object"}