Skip to content

Variable: MessageStorageNamespace

Makaio Framework


Makaio Framework / contracts / MessageStorageNamespace

const MessageStorageNamespace: StorageNamespace<"message", SubjectRecordFromSchemaRecord<{ append: { request: ZodObject<{ emitEvent: ZodOptional<ZodBoolean>; message: ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodOptional<ZodString>; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; }, $strip>; response: ZodObject<{ message: ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; }, $strip>; }; ftsSearch: { request: ZodObject<{ limit: ZodDefault<ZodOptional<ZodNumber>>; query: ZodString; sessionId: ZodOptional<ZodString>; }, $strip>; response: ZodObject<{ results: ZodArray<ZodObject<{ excerpt: ZodString; messageId: ZodString; score: ZodNumber; sessionId: ZodString; }, $strip>>; total: ZodNumber; }, $strip>; }; get: { request: ZodObject<{ messageId: ZodString; }, $strip>; response: ZodObject<{ message: ZodNullable<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<…, …>>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<…>>; role: ZodEnum<{ assistant: …; user: …; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; }, $strip>; }; getByAdapterMessageId: { request: ZodObject<{ adapterMessageId: ZodString; }, $strip>; response: ZodObject<{ message: ZodNullable<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<…, …>>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<…>>; role: ZodEnum<{ assistant: …; user: …; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; }, $strip>; }; getBySession: { request: ZodObject<{ after: ZodOptional<ZodObject<{ messageId: ZodString; timestamp: ZodNumber; }, $strip>>; includeAfter: ZodOptional<ZodBoolean>; limit: ZodOptional<ZodNumber>; order: ZodOptional<ZodEnum<{ asc: "asc"; desc: "desc"; }>>; sessionId: ZodString; }, $strip>; response: ZodObject<{ messages: ZodArray<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<…, …>>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<…>>; role: ZodEnum<{ assistant: …; user: …; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; nextCursor: ZodNullable<ZodObject<{ messageId: ZodString; timestamp: ZodNumber; }, $strip>>; }, $strip>; }; getByTurn: { request: ZodObject<{ turnId: ZodString; }, $strip>; response: ZodObject<{ messages: ZodArray<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<…, …>>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<…>>; role: ZodEnum<{ assistant: …; user: …; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; }, $strip>; }; search: { request: ZodObject<{ limit: ZodOptional<ZodNumber>; query: ZodString; sessionId: ZodOptional<ZodString>; }, $strip>; response: ZodObject<{ messages: ZodArray<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<…, …>>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<…>>; role: ZodEnum<{ assistant: …; user: …; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; total: ZodNumber; }, $strip>; }; stored: ZodObject<{ message: ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[ZodObject<…, …>, ZodObject<…, …>, ZodObject<…, …>, ZodObject<…, …>], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: "compact"; text: "text"; voice: "voice"; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; }, $strip>; upsertByAdapterMessageId: { request: ZodObject<{ adapterMessageId: ZodString; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[ZodObject<{ content: …; type: …; }, $strip>, ZodObject<{ source: …; type: …; }, $strip>, ZodObject<{ source: …; type: …; }, $strip>, ZodObject<{ attachmentType: …; displayName: …; fileName: …; filePath: …; source: …; type: …; }, $strip>], "type">>; contentText: ZodString; origin: ZodOptional<ZodEnum<{ compact: "compact"; text: "text"; voice: "voice"; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; response: ZodObject<{ created: ZodBoolean; messageId: ZodString; }, $strip>; }; }>, { adapterMessageId: string; adapterSessionId: never; after: never; agentId: never; 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"; })[]; contentText: string; emitEvent: never; includeAfter: never; limit: never; message: { adapterMessageId?: string; adapterSessionId?: string; agentId?: string; 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"; })[]; contentText: string; editOf?: string; messageId: string; origin?: "text" | "voice" | "compact"; role: "user" | "assistant"; sessionId: string; timestamp: number; turnId: string | null; } | { adapterMessageId?: string; adapterSessionId?: string; agentId?: string; 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"; })[]; contentText: string; editOf?: string; messageId?: string; origin?: "text" | "voice" | "compact"; role: "user" | "assistant"; sessionId: string; timestamp: number; turnId: string | null; }; messageId: string; order: never; origin: never; query: string; role: "user" | "assistant"; sessionId: string; timestamp: number; turnId: string | null; }, StorageNamespaceExtensions, { append: { request: ZodObject<{ emitEvent: ZodOptional<ZodBoolean>; message: ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[ZodObject<…, …>, ZodObject<…, …>, ZodObject<…, …>, ZodObject<…, …>], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodOptional<ZodString>; origin: ZodOptional<ZodEnum<{ compact: "compact"; text: "text"; voice: "voice"; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; }, $strip>; response: ZodObject<{ message: ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[ZodObject<…, …>, ZodObject<…, …>, ZodObject<…, …>, ZodObject<…, …>], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: "compact"; text: "text"; voice: "voice"; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; }, $strip>; }; ftsSearch: { request: ZodObject<{ limit: ZodDefault<ZodOptional<ZodNumber>>; query: ZodString; sessionId: ZodOptional<ZodString>; }, $strip>; response: ZodObject<{ results: ZodArray<ZodObject<{ excerpt: ZodString; messageId: ZodString; score: ZodNumber; sessionId: ZodString; }, $strip>>; total: ZodNumber; }, $strip>; }; get: { request: ZodObject<{ messageId: ZodString; }, $strip>; response: ZodObject<{ message: ZodNullable<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; }, $strip>; }; getByAdapterMessageId: { request: ZodObject<{ adapterMessageId: ZodString; }, $strip>; response: ZodObject<{ message: ZodNullable<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; }, $strip>; }; getBySession: { request: ZodObject<{ after: ZodOptional<ZodObject<{ messageId: ZodString; timestamp: ZodNumber; }, $strip>>; includeAfter: ZodOptional<ZodBoolean>; limit: ZodOptional<ZodNumber>; order: ZodOptional<ZodEnum<{ asc: "asc"; desc: "desc"; }>>; sessionId: ZodString; }, $strip>; response: ZodObject<{ messages: ZodArray<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; nextCursor: ZodNullable<ZodObject<{ messageId: ZodString; timestamp: ZodNumber; }, $strip>>; }, $strip>; }; getByTurn: { request: ZodObject<{ turnId: ZodString; }, $strip>; response: ZodObject<{ messages: ZodArray<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; }, $strip>; }; search: { request: ZodObject<{ limit: ZodOptional<ZodNumber>; query: ZodString; sessionId: ZodOptional<ZodString>; }, $strip>; response: ZodObject<{ messages: ZodArray<ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[…, …, …, …], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: …; text: …; voice: …; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>>; total: ZodNumber; }, $strip>; }; stored: ZodObject<{ message: ZodObject<{ adapterMessageId: ZodOptional<ZodString>; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[ZodObject<{ content: …; type: …; }, $strip>, ZodObject<{ source: …; type: …; }, $strip>, ZodObject<{ source: …; type: …; }, $strip>, ZodObject<{ attachmentType: …; displayName: …; fileName: …; filePath: …; source: …; type: …; }, $strip>], "type">>; contentText: ZodString; editOf: ZodOptional<ZodString>; messageId: ZodString; origin: ZodOptional<ZodEnum<{ compact: "compact"; text: "text"; voice: "voice"; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; }, $strip>; upsertByAdapterMessageId: { request: ZodObject<{ adapterMessageId: ZodString; adapterSessionId: ZodOptional<ZodString>; agentId: ZodOptional<ZodString>; blocks: ZodArray<ZodDiscriminatedUnion<[ZodObject<{ content: ZodString; type: ZodLiteral<…>; }, $strip>, ZodObject<{ source: ZodDiscriminatedUnion<…, …>; type: ZodLiteral<…>; }, $strip>, ZodObject<{ source: ZodDiscriminatedUnion<…, …>; type: ZodLiteral<…>; }, $strip>, ZodObject<{ attachmentType: ZodEnum<…>; displayName: ZodOptional<…>; fileName: ZodString; filePath: ZodString; source: ZodDiscriminatedUnion<…, …>; type: ZodLiteral<…>; }, $strip>], "type">>; contentText: ZodString; origin: ZodOptional<ZodEnum<{ compact: "compact"; text: "text"; voice: "voice"; }>>; role: ZodEnum<{ assistant: "assistant"; user: "user"; }>; sessionId: ZodString; timestamp: ZodNumber; turnId: ZodNullable<ZodString>; }, $strip>; response: ZodObject<{ created: ZodBoolean; messageId: ZodString; }, $strip>; }; }>

Defined in: ../../../packages/contracts/src/session/message-storage-namespace.ts:37

Message storage namespace.

Provides bus subjects for message storage operations. Registered under storage:message on the Makaio bus.

Storage backends register handlers; consumers communicate through subjects only, never importing directly from storage implementations.

import { MessageStorageSubjects } from '@makaio/contracts';
const { message } = await bus.request(MessageStorageSubjects.get, { messageId: '123' });
const { results } = await bus.request(MessageStorageSubjects.ftsSearch, { query: 'auth' });