Skip to content

Interface: SessionExtensionContext

Makaio Framework


Makaio Framework / contracts / SessionExtensionContext

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:33

Session-specific context provided to extensions during lifecycle events. All actions route through SessionOrchestrator.

Note: This is separate from PluginContext (extensions/core) which is for initialize().

readonly extensionId: string

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:46

Extension’s own ID (for audit trail)


readonly optional parentSessionId?: string

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:43

Parent session ID (if this is a forked session)


readonly sessionId: string

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:37

Current session ID


readonly optional turnId?: string

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:40

Current turn ID (if in a turn)

abandon(childSessionId): Promise<void>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:80

Abandon a child session without merging.

string

Promise<void>


contributeContext(key, value): void

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:62

Contribute context for the next turn. Added to SessionContext.context via declaration-merge pattern.

string

unknown

void


fork(options): Promise<string>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:70

Fork the current session into a child session.

ForkOptions

Promise<string>

Child session ID


getChildSessions(): Promise<string[]>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:99

Get child sessions of current session.

Promise<string[]>


getContextWindowState(): Promise<ContextWindowState>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:94

Get current context window state.

Promise<ContextWindowState>


merge(childSessionId, summary?): Promise<void>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:75

Merge a child session back into this session.

string

string

Promise<void>


requestCompression(reason): Promise<void>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:87

Request compression of the current session.

string

Promise<void>


sendToAgent(agentId, message): Promise<void>

Defined in: ../../../packages/contracts/src/session/schemas/extension-context.ts:54

Send a message to an agent. Routes through SessionOrchestrator, not directly to agent.

string

{ 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"; } | ({ 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"; })[] = ...

"user" | "assistant" | "system" = ...

Promise<void>