{
  "contract": "AgentSessionViewModel",
  "sessionId": "agent-session-1",
  "snapshot": {
    "mode": "work",
    "modelId": "openai:gpt-5.1-codex",
    "capabilities": {
      "text": true,
      "reasoning": false,
      "plan": false,
      "tasks": false,
      "tools": true,
      "mcp": true,
      "shell": true,
      "fileChange": true,
      "skills": true,
      "approval": true,
      "artifacts": true,
      "usage": true,
      "resume": true,
      "diff": false,
      "workspaceFiles": false,
      "terminal": false,
      "testResults": false,
      "threadForking": false,
      "editAndRerun": true,
      "steering": true,
      "summary": true
    }
  },
  "status": "waiting_approval",
  "events": [
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-1",
      "sessionId": "agent-session-1",
      "sequence": 0,
      "idempotencyKey": "agent-session-1:0",
      "occurredAt": "2026-07-30T08:00:00.000Z",
      "eventType": "status",
      "payload": { "status": "running" }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-2",
      "sessionId": "agent-session-1",
      "sequence": 1,
      "idempotencyKey": "agent-session-1:1",
      "occurredAt": "2026-07-30T08:00:01.000Z",
      "eventType": "tool",
      "payload": {
        "toolCallId": "tool-1",
        "toolName": "shell",
        "status": "running",
        "input": { "command": "git status" }
      }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-3",
      "sessionId": "agent-session-1",
      "sequence": 2,
      "idempotencyKey": "agent-session-1:2",
      "occurredAt": "2026-07-30T08:00:02.000Z",
      "eventType": "approval",
      "payload": {
        "approvalId": "approval-1",
        "toolCallId": "tool-1",
        "status": "requested",
        "title": "Run shell command",
        "requestedAction": { "command": "git status" }
      }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-4",
      "sessionId": "agent-session-1",
      "sequence": 3,
      "idempotencyKey": "agent-session-1:3",
      "occurredAt": "2026-07-30T08:00:03.000Z",
      "eventType": "artifact",
      "payload": {
        "artifactId": "artifact-1",
        "name": "report.txt",
        "kind": "file",
        "status": "ready"
      }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-5",
      "sessionId": "agent-session-1",
      "sequence": 4,
      "idempotencyKey": "agent-session-1:4",
      "occurredAt": "2026-07-30T08:00:04.000Z",
      "eventType": "usage",
      "payload": { "inputTokens": 24, "outputTokens": 8, "totalTokens": 32 }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-6",
      "sessionId": "agent-session-1",
      "sequence": 5,
      "idempotencyKey": "agent-session-1:5",
      "occurredAt": "2026-07-30T08:00:05.000Z",
      "eventType": "resume",
      "payload": { "resumable": true, "reason": "approval_required" }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-7",
      "sessionId": "agent-session-1",
      "sequence": 6,
      "idempotencyKey": "agent-session-1:6",
      "occurredAt": "2026-07-30T08:00:06.000Z",
      "eventType": "status",
      "payload": { "status": "waiting_approval" }
    },
    {
      "contract": "AgentSessionEvent",
      "eventId": "agent-event-8",
      "sessionId": "agent-session-1",
      "sequence": 7,
      "idempotencyKey": "agent-session-1:7",
      "occurredAt": "2026-07-30T08:00:07.000Z",
      "eventType": "message",
      "payload": {
        "messageId": "agent-message-1",
        "role": "assistant",
        "operation": "append",
        "parts": [{ "type": "text", "text": "Waiting for approval" }],
        "status": "streaming"
      }
    }
  ],
  "lastSequence": 7,
  "resumable": true
}
