@mastra/memory 1.0.0-beta.1 → 1.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +355 -0
- package/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +7549 -0
- package/dist/chunk-DGUM43GV.js +10 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-JEQ2X3Z6.cjs +12 -0
- package/dist/chunk-JEQ2X3Z6.cjs.map +1 -0
- package/dist/chunk-KMQS2YEC.js +79 -0
- package/dist/chunk-KMQS2YEC.js.map +1 -0
- package/dist/chunk-MMUHFOCG.js +79 -0
- package/dist/chunk-MMUHFOCG.js.map +1 -0
- package/dist/chunk-QY6BZOPJ.js +250 -0
- package/dist/chunk-QY6BZOPJ.js.map +1 -0
- package/dist/chunk-SG3GRV3O.cjs +84 -0
- package/dist/chunk-SG3GRV3O.cjs.map +1 -0
- package/dist/chunk-W72AYUIF.cjs +252 -0
- package/dist/chunk-W72AYUIF.cjs.map +1 -0
- package/dist/chunk-WC4XBMZT.js +250 -0
- package/dist/chunk-WC4XBMZT.js.map +1 -0
- package/dist/chunk-YMNW6DEN.cjs +252 -0
- package/dist/chunk-YMNW6DEN.cjs.map +1 -0
- package/dist/chunk-ZUQPUTTO.cjs +84 -0
- package/dist/chunk-ZUQPUTTO.cjs.map +1 -0
- package/dist/docs/README.md +36 -0
- package/dist/docs/SKILL.md +42 -0
- package/dist/docs/SOURCE_MAP.json +31 -0
- package/dist/docs/agents/01-agent-memory.md +160 -0
- package/dist/docs/agents/02-networks.md +236 -0
- package/dist/docs/agents/03-agent-approval.md +317 -0
- package/dist/docs/core/01-reference.md +114 -0
- package/dist/docs/memory/01-overview.md +76 -0
- package/dist/docs/memory/02-storage.md +181 -0
- package/dist/docs/memory/03-working-memory.md +386 -0
- package/dist/docs/memory/04-semantic-recall.md +235 -0
- package/dist/docs/memory/05-memory-processors.md +319 -0
- package/dist/docs/memory/06-reference.md +617 -0
- package/dist/docs/processors/01-reference.md +81 -0
- package/dist/docs/storage/01-reference.md +972 -0
- package/dist/docs/vectors/01-reference.md +929 -0
- package/dist/index.cjs +14845 -115
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +145 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14807 -119
- package/dist/index.js.map +1 -1
- package/dist/token-6GSAFR2W-JV3TZR4M.cjs +63 -0
- package/dist/token-6GSAFR2W-JV3TZR4M.cjs.map +1 -0
- package/dist/token-6GSAFR2W-K2BTU23I.js +61 -0
- package/dist/token-6GSAFR2W-K2BTU23I.js.map +1 -0
- package/dist/token-6GSAFR2W-VLY2XUPA.js +61 -0
- package/dist/token-6GSAFR2W-VLY2XUPA.js.map +1 -0
- package/dist/token-6GSAFR2W-YCB5SK2Z.cjs +63 -0
- package/dist/token-6GSAFR2W-YCB5SK2Z.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-7IL6JUVY.cjs +10 -0
- package/dist/token-util-NEHG7TUY-7IL6JUVY.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-HF7KBP2H.cjs +10 -0
- package/dist/token-util-NEHG7TUY-HF7KBP2H.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-KSXDO2NO.js +8 -0
- package/dist/token-util-NEHG7TUY-KSXDO2NO.js.map +1 -0
- package/dist/token-util-NEHG7TUY-TIJ3LMSH.js +8 -0
- package/dist/token-util-NEHG7TUY-TIJ3LMSH.js.map +1 -0
- package/dist/tools/working-memory.d.ts +10 -2
- package/dist/tools/working-memory.d.ts.map +1 -1
- package/package.json +19 -25
- package/dist/processors/index.cjs +0 -165
- package/dist/processors/index.cjs.map +0 -1
- package/dist/processors/index.d.ts +0 -3
- package/dist/processors/index.d.ts.map +0 -1
- package/dist/processors/index.js +0 -158
- package/dist/processors/index.js.map +0 -1
- package/dist/processors/token-limiter.d.ts +0 -32
- package/dist/processors/token-limiter.d.ts.map +0 -1
- package/dist/processors/tool-call-filter.d.ts +0 -20
- package/dist/processors/tool-call-filter.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import { embedMany } from './_types/@internal_ai-sdk-v4/dist/index.js';
|
|
1
2
|
import type { MastraDBMessage } from '@mastra/core/agent';
|
|
3
|
+
import type { MemoryConfig, SharedMemoryConfig, StorageThreadType, WorkingMemoryTemplate, MessageDeleteInput } from '@mastra/core/memory';
|
|
2
4
|
import { MastraMemory } from '@mastra/core/memory';
|
|
3
|
-
import type {
|
|
4
|
-
import type { StorageListThreadsByResourceIdOutput, StorageListThreadsByResourceIdInput, StorageListMessagesInput } from '@mastra/core/storage';
|
|
5
|
+
import type { StorageListThreadsByResourceIdOutput, StorageListThreadsByResourceIdInput, StorageListMessagesInput, MemoryStorage, StorageCloneThreadInput, StorageCloneThreadOutput, ThreadCloneMetadata } from '@mastra/core/storage';
|
|
5
6
|
import type { ToolAction } from '@mastra/core/tools';
|
|
6
|
-
import {
|
|
7
|
+
import { deepMergeWorkingMemory } from './tools/working-memory.js';
|
|
8
|
+
export { deepMergeWorkingMemory };
|
|
9
|
+
export { extractWorkingMemoryTags, extractWorkingMemoryContent, removeWorkingMemoryTags } from '@mastra/core/memory';
|
|
7
10
|
/**
|
|
8
11
|
* Concrete implementation of MastraMemory that adds support for thread configuration
|
|
9
12
|
* and message injection.
|
|
10
13
|
*/
|
|
11
14
|
export declare class Memory extends MastraMemory {
|
|
12
15
|
constructor(config?: SharedMemoryConfig);
|
|
16
|
+
/**
|
|
17
|
+
* Gets the memory storage domain, throwing if not available.
|
|
18
|
+
*/
|
|
19
|
+
protected getMemoryStore(): Promise<MemoryStorage>;
|
|
13
20
|
protected validateThreadIsOwnedByResource(threadId: string, resourceId: string, config: MemoryConfig): Promise<void>;
|
|
14
|
-
protected checkStorageFeatureSupport(config: MemoryConfig): void;
|
|
15
21
|
recall(args: StorageListMessagesInput & {
|
|
16
22
|
threadConfig?: MemoryConfig;
|
|
17
23
|
vectorSearchString?: string;
|
|
24
|
+
threadId: string;
|
|
18
25
|
}): Promise<{
|
|
19
26
|
messages: MastraDBMessage[];
|
|
20
27
|
}>;
|
|
@@ -69,7 +76,6 @@ export declare class Memory extends MastraMemory {
|
|
|
69
76
|
}): Promise<{
|
|
70
77
|
messages: MastraDBMessage[];
|
|
71
78
|
}>;
|
|
72
|
-
protected updateMessageToHideWorkingMemory(message: MastraMessageV1): MastraMessageV1 | null;
|
|
73
79
|
protected updateMessageToHideWorkingMemoryV2(message: MastraDBMessage): MastraDBMessage | null;
|
|
74
80
|
protected parseWorkingMemory(text: string): string | null;
|
|
75
81
|
getWorkingMemory({ threadId, resourceId, memoryConfig, }: {
|
|
@@ -121,5 +127,139 @@ export declare class Memory extends MastraMemory {
|
|
|
121
127
|
* @returns Promise that resolves when all messages are deleted
|
|
122
128
|
*/
|
|
123
129
|
deleteMessages(input: MessageDeleteInput): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Clone a thread and its messages to create a new independent thread.
|
|
132
|
+
* The cloned thread will have metadata tracking its source.
|
|
133
|
+
*
|
|
134
|
+
* If semantic recall is enabled, the cloned messages will also be embedded
|
|
135
|
+
* and added to the vector store for semantic search.
|
|
136
|
+
*
|
|
137
|
+
* @param args - Clone configuration options
|
|
138
|
+
* @param args.sourceThreadId - ID of the thread to clone
|
|
139
|
+
* @param args.newThreadId - ID for the new cloned thread (if not provided, a random UUID will be generated)
|
|
140
|
+
* @param args.resourceId - Resource ID for the new thread (defaults to source thread's resourceId)
|
|
141
|
+
* @param args.title - Title for the new cloned thread
|
|
142
|
+
* @param args.metadata - Additional metadata to merge with clone metadata
|
|
143
|
+
* @param args.options - Options for filtering which messages to include
|
|
144
|
+
* @param args.options.messageLimit - Maximum number of messages to copy (from most recent)
|
|
145
|
+
* @param args.options.messageFilter - Filter messages by date range or specific IDs
|
|
146
|
+
* @param memoryConfig - Optional memory configuration override
|
|
147
|
+
* @returns The newly created thread and the cloned messages
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* // Clone entire thread
|
|
152
|
+
* const { thread, clonedMessages } = await memory.cloneThread({
|
|
153
|
+
* sourceThreadId: 'thread-123',
|
|
154
|
+
* });
|
|
155
|
+
*
|
|
156
|
+
* // Clone with custom ID
|
|
157
|
+
* const { thread, clonedMessages } = await memory.cloneThread({
|
|
158
|
+
* sourceThreadId: 'thread-123',
|
|
159
|
+
* newThreadId: 'my-custom-thread-id',
|
|
160
|
+
* });
|
|
161
|
+
*
|
|
162
|
+
* // Clone with message limit
|
|
163
|
+
* const { thread, clonedMessages } = await memory.cloneThread({
|
|
164
|
+
* sourceThreadId: 'thread-123',
|
|
165
|
+
* title: 'My cloned conversation',
|
|
166
|
+
* options: {
|
|
167
|
+
* messageLimit: 10, // Only clone last 10 messages
|
|
168
|
+
* },
|
|
169
|
+
* });
|
|
170
|
+
*
|
|
171
|
+
* // Clone with date filter
|
|
172
|
+
* const { thread, clonedMessages } = await memory.cloneThread({
|
|
173
|
+
* sourceThreadId: 'thread-123',
|
|
174
|
+
* options: {
|
|
175
|
+
* messageFilter: {
|
|
176
|
+
* startDate: new Date('2024-01-01'),
|
|
177
|
+
* endDate: new Date('2024-06-01'),
|
|
178
|
+
* },
|
|
179
|
+
* },
|
|
180
|
+
* });
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
cloneThread(args: StorageCloneThreadInput, memoryConfig?: MemoryConfig): Promise<StorageCloneThreadOutput>;
|
|
184
|
+
/**
|
|
185
|
+
* Embed cloned messages for semantic recall.
|
|
186
|
+
* This is similar to the embedding logic in saveMessages but operates on already-saved messages.
|
|
187
|
+
*/
|
|
188
|
+
private embedClonedMessages;
|
|
189
|
+
/**
|
|
190
|
+
* Get the clone metadata from a thread if it was cloned from another thread.
|
|
191
|
+
*
|
|
192
|
+
* @param thread - The thread to check
|
|
193
|
+
* @returns The clone metadata if the thread is a clone, null otherwise
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* const thread = await memory.getThreadById({ threadId: 'thread-123' });
|
|
198
|
+
* const cloneInfo = memory.getCloneMetadata(thread);
|
|
199
|
+
* if (cloneInfo) {
|
|
200
|
+
* console.log(`This thread was cloned from ${cloneInfo.sourceThreadId}`);
|
|
201
|
+
* }
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
getCloneMetadata(thread: StorageThreadType | null): ThreadCloneMetadata | null;
|
|
205
|
+
/**
|
|
206
|
+
* Check if a thread is a clone of another thread.
|
|
207
|
+
*
|
|
208
|
+
* @param thread - The thread to check
|
|
209
|
+
* @returns True if the thread is a clone, false otherwise
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* const thread = await memory.getThreadById({ threadId: 'thread-123' });
|
|
214
|
+
* if (memory.isClone(thread)) {
|
|
215
|
+
* console.log('This is a cloned thread');
|
|
216
|
+
* }
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
isClone(thread: StorageThreadType | null): boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Get the source thread that a cloned thread was created from.
|
|
222
|
+
*
|
|
223
|
+
* @param threadId - ID of the cloned thread
|
|
224
|
+
* @returns The source thread if found, null if the thread is not a clone or source doesn't exist
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* const sourceThread = await memory.getSourceThread('cloned-thread-123');
|
|
229
|
+
* if (sourceThread) {
|
|
230
|
+
* console.log(`Original thread: ${sourceThread.title}`);
|
|
231
|
+
* }
|
|
232
|
+
* ```
|
|
233
|
+
*/
|
|
234
|
+
getSourceThread(threadId: string): Promise<StorageThreadType | null>;
|
|
235
|
+
/**
|
|
236
|
+
* List all threads that were cloned from a specific source thread.
|
|
237
|
+
*
|
|
238
|
+
* @param sourceThreadId - ID of the source thread
|
|
239
|
+
* @param resourceId - Optional resource ID to filter by
|
|
240
|
+
* @returns Array of threads that are clones of the source thread
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```typescript
|
|
244
|
+
* const clones = await memory.listClones('original-thread-123', 'user-456');
|
|
245
|
+
* console.log(`Found ${clones.length} clones of this thread`);
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
listClones(sourceThreadId: string, resourceId?: string): Promise<StorageThreadType[]>;
|
|
249
|
+
/**
|
|
250
|
+
* Get the clone history chain for a thread (all ancestors back to the original).
|
|
251
|
+
*
|
|
252
|
+
* @param threadId - ID of the thread to get history for
|
|
253
|
+
* @returns Array of threads from oldest ancestor to the given thread (inclusive)
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```typescript
|
|
257
|
+
* const history = await memory.getCloneHistory('deeply-cloned-thread');
|
|
258
|
+
* // Returns: [originalThread, firstClone, secondClone, deeplyClonedThread]
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
getCloneHistory(threadId: string): Promise<StorageThreadType[]>;
|
|
124
262
|
}
|
|
263
|
+
export { SemanticRecall, WorkingMemory, MessageHistory } from '@mastra/core/processors';
|
|
264
|
+
export type { StorageCloneThreadInput, StorageCloneThreadOutput, ThreadCloneMetadata } from '@mastra/core/storage';
|
|
125
265
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|