Class: MakaioSession
Makaio Framework / services-core / MakaioSession
Class: MakaioSession
Section titled “Class: MakaioSession”Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:42
MakaioSession is the aggregate root for session state.
It owns Turn[] children and emits lifecycle events from within, mirroring the AIAgent pattern. Events are emitted when state changes, not by external orchestration code.
SEAM: This entity is designed to support future buildContext() method for projecting raw history to effective history (transforms, token budgets).
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new MakaioSession(
config):MakaioSession
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:56
Parameters
Section titled “Parameters”config
Section titled “config”Returns
Section titled “Returns”MakaioSession
Properties
Section titled “Properties”
protectedreadonlybus:IMakaioBus
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:54
Bus for event emission
parentSessionId?
Section titled “parentSessionId?”
readonlyoptionalparentSessionId?:string
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:44
sessionId
Section titled “sessionId”
readonlysessionId:string
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:43
status
Section titled “status”status:
"active"|"closed"|"archived"='active'
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:45
Accessors
Section titled “Accessors”Get Signature
Section titled “Get Signature”get turns(): readonly
Turn[]
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:66
Get turns owned by this session (read-only view).
Returns
Section titled “Returns”readonly Turn[]
Immutable array of turns
Methods
Section titled “Methods”completeTurn()
Section titled “completeTurn()”completeTurn(
turn):Promise<void>
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:128
Complete a turn and emit turn.completed event.
Parameters
Section titled “Parameters”The turn to complete
Returns
Section titled “Returns”Promise<void>
emit()
Section titled “emit()”
protectedemit<S>(subject,payload):Promise<void>
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:152
Emit an event with sessionId auto-enriched.
Mirrors AIAgent.emitGlobal pattern - entity emits its own events with context automatically included.
Type Parameters
Section titled “Type Parameters”S extends SubjectDefinition
Parameters
Section titled “Parameters”subject
Section titled “subject”S
The subject to emit to
payload
Section titled “payload”Omit<ExtractSubjectPayload<S>, "sessionId">
The payload (without sessionId - it’s added automatically)
Returns
Section titled “Returns”Promise<void>
getActiveTurn()
Section titled “getActiveTurn()”getActiveTurn():
Turn|undefined
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:113
Get the currently active (incomplete) turn.
Returns
Section titled “Returns”Turn | undefined
The active turn, or undefined if no turn is active
startTurn()
Section titled “startTurn()”startTurn(
options):Promise<Turn>
Defined in: ../../../packages/services/core/src/session/entities/makaio-session.ts:80
Start a new turn in this session.
Creates a Turn child entity and emits turn.started event. This is the key pattern: state change + event emission happen together inside the aggregate, not in external orchestration code.
Parameters
Section titled “Parameters”options
Section titled “options”Turn configuration
Returns
Section titled “Returns”Promise<Turn>
The created Turn
Throws
Section titled “Throws”Error if session is not active (for example closed or archived)