import type { Processor } from '..'; import type { MessageList } from '../../agent/message-list/index.js'; import type { IMastraLogger } from '../../logger/index.js'; import type { MastraDBMessage, MemoryConfigInternal } from '../../memory/index.js'; import type { RequestContext } from '../../request-context/index.js'; import type { MemoryStorage } from '../../storage/index.js'; export type WorkingMemoryTemplate = { format: 'markdown'; content: string; } | { format: 'json'; content: string | Record; }; export interface WorkingMemoryConfig { template?: WorkingMemoryTemplate; /** * Scope of working memory * - 'thread': Working memory is scoped to the current thread * - 'resource': Working memory is shared across all threads for the resource * @default 'resource' */ scope?: 'thread' | 'resource'; useVNext?: boolean; /** * When true, working memory is read-only - the data is provided as context * but no update tools or instructions are included. * @default false */ readOnly?: boolean; /** * Optional logger instance for structured logging */ logger?: IMastraLogger; } /** * WorkingMemory processor injects working memory data as a system message. * * This is an INPUT processor that: * 1. Retrieves working memory from storage (thread or resource scope) * 2. Formats it as a system instruction for the LLM * 3. Prepends it to the message list * * Note: Working memory updates happen via the updateWorkingMemory tool, * not through this processor. The tool is provided by the Memory class. */ export declare class WorkingMemory implements Processor { private options; readonly id = "working-memory"; name: string; defaultWorkingMemoryTemplate: string; private logger?; constructor(options: { storage: MemoryStorage; template?: WorkingMemoryTemplate; scope?: 'thread' | 'resource'; useVNext?: boolean; readOnly?: boolean; templateProvider?: { getWorkingMemoryTemplate(args: { memoryConfig?: MemoryConfigInternal; }): Promise; }; logger?: IMastraLogger; }); processInput(args: { messages: MastraDBMessage[]; messageList: MessageList; abort: (reason?: string) => never; requestContext?: RequestContext; }): Promise; private generateEmptyFromSchemaInternal; private getWorkingMemoryToolInstruction; private getWorkingMemoryToolInstructionVNext; /** * Generate read-only working memory instructions. * This provides the working memory context without any tool update instructions. * Used when memory is in readOnly mode. */ private getReadOnlyWorkingMemoryInstruction; } //# sourceMappingURL=working-memory.d.ts.map