Class: MakaioSessionService
Makaio Framework / services-core / MakaioSessionService
Class: MakaioSessionService
Section titled “Class: MakaioSessionService”Defined in: ../../../packages/services/core/src/session/session-service.ts:50
Framework-core session service for managing makaio sessions.
Registers the minimal, load-bearing session handlers that the framework SDK
requires: session.create, session.get, session.list, session.close,
session.agent.added, and session.agent.removed.
Host-specific handlers (search, update, resume, archive, purge, analytics, context window, branching) are registered by the host session service which depends on this service.
Storage is fully decoupled via bus — this service calls
SessionStorageSubjects.* subjects. Register appropriate storage handlers
(memory or drizzle) before creating this service.
SessionLogger is intentionally NOT a dependency here: it persists session
lifecycle events consumed only by recovery context assembly, fork, merge,
compress, and purge — all host features. Host services declare
SessionLogger in their own dependency chain.
Example
Section titled “Example”import { MakaioBus } from '@makaio/bus-core';import { MakaioSessionService, registerMemorySessionStorage,} from '@makaio/services-core/session';
// Register storage handlers firstregisterMemorySessionStorage(MakaioBus);
// Create and initialise the serviceconst sessionService = new MakaioSessionService(MakaioBus);await sessionService.init();
// Now clients can interact via busconst { sessionId } = await MakaioBus.request(SessionSubjects.create, {});const { session } = await MakaioBus.request(SessionSubjects.get, { sessionId });
// Cleanup when donesessionService.destroy();Extends
Section titled “Extends”BaseService
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new MakaioSessionService(
bus?):MakaioSessionService
Defined in: ../../../packages/services/core/src/session/session-service.ts:55
Creates a new MakaioSessionService instance.
Parameters
Section titled “Parameters”IMakaioBus = MakaioBus
The event bus for inter-service communication
Returns
Section titled “Returns”MakaioSessionService
Overrides
Section titled “Overrides”BaseService.constructor
Properties
Section titled “Properties”
protectedreadonlybus:IMakaioBus
Defined in: ../../../packages/services/base/src/base-service.ts:39
Bus instance used for registering handlers
Inherited from
Section titled “Inherited from”Accessors
Section titled “Accessors”initialized
Section titled “initialized”Get Signature
Section titled “Get Signature”get initialized():
boolean
Defined in: ../../../packages/services/base/src/base-service.ts:47
Whether the service has been successfully initialized.
Returns true after init() completes and before destroy() is called.
Returns
Section titled “Returns”boolean
true if initialized, false otherwise
Inherited from
Section titled “Inherited from”BaseService.initialized
Methods
Section titled “Methods”addCleanup()
Section titled “addCleanup()”
protectedaddCleanup(fn):void
Defined in: ../../../packages/services/base/src/base-service.ts:143
Enqueue an arbitrary cleanup function to be called on destroy().
Use for non-handler resources (timers, external subscriptions, etc.).
Parameters
Section titled “Parameters”() => void | Promise<void>
Function to invoke during teardown
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”BaseService.addCleanup
destroy()
Section titled “destroy()”destroy():
Promise<void>
Defined in: ../../../packages/services/base/src/base-service.ts:89
Destroy the service and unsubscribe all registered handlers.
Calls the optional onDestroy() hook before running cleanups, then
resets the initialized flag. Safe to call multiple times (idempotent).
Returns
Section titled “Returns”Promise<void>
Promise that resolves after teardown completes
Inherited from
Section titled “Inherited from”BaseService.destroy
init()
Section titled “init()”init():
Promise<void>
Defined in: ../../../packages/services/base/src/base-service.ts:57
Initialize the service.
Delegates to onInit() once; subsequent calls are no-ops (idempotent).
Returns
Section titled “Returns”Promise<void>
Promise that resolves when initialization is complete
Inherited from
Section titled “Inherited from”BaseService.init
onDestroy()?
Section titled “onDestroy()?”
protectedoptionalonDestroy():void|Promise<void>
Defined in: ../../../packages/services/base/src/base-service.ts:163
Optional service teardown hook.
Called by destroy() before automatic handler unsubscription.
Implement only when there are resources beyond bus handlers to clean up
(e.g., stopping trackers, clearing maps, releasing external handles).
Returns
Section titled “Returns”void | Promise<void>
Inherited from
Section titled “Inherited from”BaseService.onDestroy
onInit()
Section titled “onInit()”
protectedonInit():Promise<void>
Defined in: ../../../packages/services/core/src/session/session-service.ts:72
Initialize the service.
Registers the six framework-core session bus handlers, then performs
startup reconciliation to close any turns that were left active by a
prior process crash. Each orphaned turn is closed with status 'error'
and a 'process-restart' error message, and a turn.completed event is
emitted so the UI can update accordingly.
The reconciliation uses requestOptional so it is silently skipped when
no storage:turn.listActive handler is registered (e.g., in unit tests
that do not register turn storage).
Returns
Section titled “Returns”Promise<void>
Overrides
Section titled “Overrides”BaseService.onInit
registerHandler()
Section titled “registerHandler()”
protectedregisterHandler<S>(subject,handler):void
Defined in: ../../../packages/services/base/src/base-service.ts:129
Register a bus handler and enqueue its unsubscribe function for teardown.
Equivalent to this._cleanups.push(this.bus.on(subject, handler)).
Type Parameters
Section titled “Type Parameters”S extends SubjectDefinition
Parameters
Section titled “Parameters”subject
Section titled “subject”S
The subject definition to listen on
handler
Section titled “handler”HandlerForSubjectDefinition<S>
Handler function for the subject
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”BaseService.registerHandler