Interface: SelectionChangeContext
Makaio Framework / contracts / SelectionChangeContext
Interface: SelectionChangeContext
Section titled “Interface: SelectionChangeContext”Defined in: ../../../packages/contracts/src/extension/contributions/session-event-action-types.ts:138
Context passed to a session event action’s onSelectionChange callback.
Properties
Section titled “Properties”bus:
IMakaioBus
Defined in: ../../../packages/contracts/src/extension/contributions/session-event-action-types.ts:151
Bus instance for runtime queries.
entrypoint
Section titled “entrypoint”entrypoint:
object
Defined in: ../../../packages/contracts/src/extension/contributions/session-event-action-types.ts:142
Entrypoint information for the action.
message
Section titled “message”message:
object
Full message object.
message.adapterMessageId?
Section titled “message.adapterMessageId?”
optionaladapterMessageId?:string
Adapter’s stable message identifier for fork detection
message.adapterSessionId?
Section titled “message.adapterSessionId?”
optionaladapterSessionId?:string
Provider’s session ID for context continuity
message.agentId?
Section titled “message.agentId?”
optionalagentId?:string
Agent ID (required for assistant, null for user)
message.blocks
Section titled “message.blocks”blocks: ({
content:string;type:"text"; } | {source: {data:string;mimeType:string;type:"base64"; } | {mimeType?:string;type:"url";url:string; };type:"image"; } | {source: {data:string;mimeType:string;type:"base64"; } | {mimeType?:string;type:"url";url:string; };type:"document"; } | {attachmentType:"file"|"directory";displayName?:string;fileName:string;filePath:string;source: {data:string;mimeType:string;type:"base64"; } | {mimeType?:string;type:"url";url:string; };type:"attachment"; } | {content:string;metadata?:Record<string,unknown>;type:"reasoning"; } | {args:Record<string,unknown>;name:string;toolCallId:string;type:"tool_call"; } | {isError?:boolean;output:string;toolCallId:string;type:"tool_output"; })[]
Structured blocks (text, reasoning, tool_call, tool_output)
message.contentText
Section titled “message.contentText”contentText:
string
Plain text content for FTS5 search
message.editOf?
Section titled “message.editOf?”
optionaleditOf?:string
If this is an edit, references the original message
message.messageId
Section titled “message.messageId”messageId:
string
Unique message identifier
message.origin?
Section titled “message.origin?”
optionalorigin?:"text"|"voice"|"compact"
Origin of the message (e.g. ‘voice’, ‘text’). NULL for messages predating this field.
message.role
Section titled “message.role”role:
"user"|"assistant"=SessionMessageRoleSchema
Message role: ‘user’ or ‘assistant’
message.sessionId
Section titled “message.sessionId”sessionId:
string
Session this message belongs to
message.timestamp
Section titled “message.timestamp”timestamp:
number
Message timestamp (Unix ms)
message.turnId
Section titled “message.turnId”turnId:
string|null
Turn this message belongs to. NULL for native imports (no turn tracking).
messageId
Section titled “messageId”messageId:
string
The message that was actioned.
selectedEvents
Section titled “selectedEvents”selectedEvents: ({
eventId:string;payload: {adapterId:string;adapterName:string;adapterSessionId:string;agentId:string;cwd?:string;model?:string;role?:"lead"|"member";sessionId:string; };sessionId:string;timestamp:number;type:"agent.added"; } | {eventId:string;payload: {agentIds:string[];content:string| {blocks: {content:string;type:"text"; } | {source: {data:string;mimeType:string;type:"base64"; } | {mimeType?: … | …;type:"url";url:string; };type:"image"; } | {source: {data:string;mimeType:string;type:"base64"; } | {mimeType?: … | …;type:"url";url:string; };type:"document"; } | {attachmentType:"file"|"directory";displayName?:string;fileName:string;filePath:string;source: {data:string;mimeType:string;type:"base64"; } | {mimeType?: … | …;type:"url";url:string; };type:"attachment"; } | {content:string;metadata?:Record<string,unknown>;type:"reasoning"; } | {args:Record<string,unknown>;name:string;toolCallId:string;type:"tool_call"; } | {isError?:boolean;output:string;toolCallId:string;type:"tool_output"; } | ({content:string;type:"text"; } | {source: … | …;type:"image"; } | {source: … | …;type:"document"; } | {attachmentType: … | …;displayName?: … | …;fileName:string;filePath:string;source: … | …;type:"attachment"; } | {content:string;metadata?: … | …;type:"reasoning"; } | {args:Record<…, …>;name:string;toolCallId:string;type:"tool_call"; } | {isError?: … | … | …;output:string;toolCallId:string;type:"tool_output"; })[];role?:"user"|"assistant"|"system"; };messageId:string;origin?:"text"|"voice"|"compact";sessionId:string;source?:"user"|"extension"|"system";turnId:string;turnNumber:number; };sessionId:string;timestamp:number;type:"user_message.sent"; } | {eventId:string;payload: {agentId:string;messageId:string;sessionId:string;turnId:string;turnNumber:number; };sessionId:string;timestamp:number;type:"user_message.acknowledged"; } | {eventId:string;payload: {agentId:string;error?:string;mergedInto?:string;messageId:string;outcome:"error"|"completed"|"superseded"|"merged"|"cancelled"|"rejected";sessionId:string;supersededBy?:string;turnId:string;turnNumber:number; };sessionId:string;timestamp:number;type:"user_message.completed"; } | {eventId:string;payload: {agentIds:string[];initiator?: {source:"user"|"extension"|"system";sourceId?:string; };messageId:string;sessionId:string;turnId:string;turnNumber:number; };sessionId:string;timestamp:number;type:"turn.started"; } | {eventId:string;payload: {error?:string;initiator?: {source:"user"|"extension"|"system";sourceId?:string; };sessionId:string;success:boolean;turnId:string;turnNumber:number; };sessionId:string;timestamp:number;type:"turn.completed"; } | {eventId:string;payload: {messageId:string;role:"user"|"assistant";turnId:string|null; };sessionId:string;timestamp:number;type:"message"; } | {eventId:string;payload: {childSessionId:string;forkPointMessageId?:string;kind:"fork"|"branch"|"aside"|"subagent"|"compress"|"rewrite"|"coordinator";parentSessionId:string; };sessionId:string;timestamp:number;type:"branch.created"; } | {eventId:string;payload: {childSessionId:string;parentSessionId:string;resultJson?:string;resultMessageId?:string; };sessionId:string;timestamp:number;type:"branch.merged"; } | {eventId:string;payload: {compressedMessageIds?:string[];summaryJson:string;tokensAfter?:number;tokensBefore?:number; };sessionId:string;timestamp:number;type:"squash"; } | {eventId:string;payload:Record<string,unknown>;sessionId:string;timestamp:number;type:string; })[]
Defined in: ../../../packages/contracts/src/extension/contributions/session-event-action-types.ts:140
Currently selected session events.
sessionId
Section titled “sessionId”sessionId:
string
Defined in: ../../../packages/contracts/src/extension/contributions/session-event-action-types.ts:149
Active session identifier.