Skip to content

Class: SessionLogger

Makaio Framework


Makaio Framework / services-core / SessionLogger

Defined in: ../../../packages/services/core/src/session/session-logger.ts:70

Bridges session lifecycle events to storage layer for persistence.

Architecture (Normalized Message Model):

  • Messages: Stored in messages table via MessageStorageSubjects (by SessionOrchestrator/SessionBridge)
  • SessionLogger: Stores LIFECYCLE events only — agent.added, turn.started, turn.completed

NO longer subscribes to user_message. events* — user messages are now first-class entities in the messages table, not embedded in event payloads.

The correlation link is session.agent.added which maps: sessionId ↔ agentId ↔ adapterSessionId

Subscribes to:

  • session.agent.added — correlation link for multi-agent reconstruction
  • session.turn.started, session.turn.completed — turn lifecycle
  • session.branch.created — branch creation audit trail

Does NOT subscribe to session.branch.merged or session.squash — those handlers (merge-handler, compress-handler) own their persistence directly using a stable eventId so retries are idempotent.

Emits transformed events to storage:sessionEvent.append for persistence.

// Basic usage - lifecycle events are emitted to storage:sessionEvent.append
const sessionLogger = new SessionLogger(MakaioBus);
// With redaction transform (mainly for turn error messages)
const sessionLogger = new SessionLogger(MakaioBus, {
transform: (event) => {
// Redact sensitive info if needed
return event;
},
});

new SessionLogger(bus?, options?): SessionLogger

Defined in: ../../../packages/services/core/src/session/session-logger.ts:74

IMakaioBus = MakaioBus

SessionLoggerOptions = {}

SessionLogger

destroy(): void

Defined in: ../../../packages/services/core/src/session/session-logger.ts:163

Stop the logger and clean up subscriptions.

void