Skip to content

Variable: sessionEvents

Makaio Framework


Makaio Framework / services-core / sessionEvents

const sessionEvents: SQLiteTableWithColumns<{ columns: { adapterId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "adapter_id"; notNull: false; tableName: "session_events"; }, { }, { length: number | undefined; }>; agentId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "agent_id"; notNull: false; tableName: "session_events"; }, { }, { length: number | undefined; }>; contentText: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "content_text"; notNull: false; tableName: "session_events"; }, { }, { length: number | undefined; }>; eventId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "event_id"; notNull: true; tableName: "session_events"; }, { }, { length: number | undefined; }>; id: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteInteger"; data: number; dataType: "number"; driverParam: number; enumValues: undefined; generated: undefined; hasDefault: true; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: true; name: "id"; notNull: true; tableName: "session_events"; }, { }, { }>; messageId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "message_id"; notNull: false; tableName: "session_events"; }, { }, { length: number | undefined; }>; originatingMessageId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "originating_message_id"; notNull: false; tableName: "session_events"; }, { }, { length: number | undefined; }>; payload: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "payload"; notNull: true; tableName: "session_events"; }, { }, { length: number | undefined; }>; sessionId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "session_id"; notNull: true; tableName: "session_events"; }, { }, { length: number | undefined; }>; timestamp: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteInteger"; data: number; dataType: "number"; driverParam: number; enumValues: undefined; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "timestamp"; notNull: true; tableName: "session_events"; }, { }, { }>; turnId: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "turn_id"; notNull: false; tableName: "session_events"; }, { }, { length: number | undefined; }>; type: SQLiteColumn<{ baseColumn: never; columnType: "SQLiteText"; data: string; dataType: "string"; driverParam: string; enumValues: [string, ...string[]]; generated: undefined; hasDefault: false; hasRuntimeDefault: false; identity: undefined; isAutoincrement: false; isPrimaryKey: false; name: "type"; notNull: true; tableName: "session_events"; }, { }, { length: number | undefined; }>; }; dialect: "sqlite"; name: "session_events"; schema: undefined; }>

Defined in: ../../../packages/services/core/src/session/session-events/schema.ts:25

Session events table schema.

Stores immutable, append-only session events for unified history reconstruction. Events are persisted by SessionLogger via storage service.

Event Types:

  • Message references (type=‘message’ with messageId FK to messages table)
  • Agent lifecycle (agent.added)
  • Turn lifecycle (turn.started, turn.completed)
  • User message events (user_message.sent/acknowledged/completed)

Design rationale:

  • First-class columns for queryable fields (IDs, timestamp, type)
  • contentText extracted for FTS5/embeddings (future)
  • payload stores full JSON for exact API reconstruction

SEAM: The sessionId FK enables cascade delete when sessions are purged. Future embeddings table can reference eventId for vector search.