indusagi 0.12.13 → 0.12.15

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.
Files changed (142) hide show
  1. package/dist/agent/tools/registry.d.ts +1 -1
  2. package/dist/agent/tools/registry.d.ts.map +1 -1
  3. package/dist/agent/types.d.ts +1 -0
  4. package/dist/agent/types.d.ts.map +1 -1
  5. package/dist/agent/types.js.map +1 -1
  6. package/dist/ai/models.generated.d.ts +621 -53
  7. package/dist/ai/models.generated.d.ts.map +1 -1
  8. package/dist/ai/models.generated.js +548 -0
  9. package/dist/ai/models.generated.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp/client-pool.d.ts +106 -0
  15. package/dist/mcp/client-pool.d.ts.map +1 -0
  16. package/dist/mcp/client-pool.js +233 -0
  17. package/dist/mcp/client-pool.js.map +1 -0
  18. package/dist/mcp/client.d.ts +158 -0
  19. package/dist/mcp/client.d.ts.map +1 -0
  20. package/dist/mcp/client.js +586 -0
  21. package/dist/mcp/client.js.map +1 -0
  22. package/dist/mcp/config.d.ts +61 -0
  23. package/dist/mcp/config.d.ts.map +1 -0
  24. package/dist/mcp/config.js +250 -0
  25. package/dist/mcp/config.js.map +1 -0
  26. package/dist/mcp/errors.d.ts +104 -0
  27. package/dist/mcp/errors.d.ts.map +1 -0
  28. package/dist/mcp/errors.js +138 -0
  29. package/dist/mcp/errors.js.map +1 -0
  30. package/dist/mcp/index.d.ts +56 -0
  31. package/dist/mcp/index.d.ts.map +1 -0
  32. package/dist/mcp/index.js +83 -0
  33. package/dist/mcp/index.js.map +1 -0
  34. package/dist/mcp/schema-converter.d.ts +68 -0
  35. package/dist/mcp/schema-converter.d.ts.map +1 -0
  36. package/dist/mcp/schema-converter.js +230 -0
  37. package/dist/mcp/schema-converter.js.map +1 -0
  38. package/dist/mcp/server.d.ts +111 -0
  39. package/dist/mcp/server.d.ts.map +1 -0
  40. package/dist/mcp/server.js +300 -0
  41. package/dist/mcp/server.js.map +1 -0
  42. package/dist/mcp/tool-factory.d.ts +63 -0
  43. package/dist/mcp/tool-factory.d.ts.map +1 -0
  44. package/dist/mcp/tool-factory.js +228 -0
  45. package/dist/mcp/tool-factory.js.map +1 -0
  46. package/dist/mcp/types.d.ts +289 -0
  47. package/dist/mcp/types.d.ts.map +1 -0
  48. package/dist/mcp/types.js +8 -0
  49. package/dist/mcp/types.js.map +1 -0
  50. package/dist/mcp.d.ts +6 -0
  51. package/dist/mcp.d.ts.map +1 -0
  52. package/dist/mcp.js +6 -0
  53. package/dist/mcp.js.map +1 -0
  54. package/dist/memory/embedder/base.d.ts +41 -0
  55. package/dist/memory/embedder/base.d.ts.map +1 -0
  56. package/dist/memory/embedder/base.js +10 -0
  57. package/dist/memory/embedder/base.js.map +1 -0
  58. package/dist/memory/embedder/index.d.ts +8 -0
  59. package/dist/memory/embedder/index.d.ts.map +1 -0
  60. package/dist/memory/embedder/index.js +6 -0
  61. package/dist/memory/embedder/index.js.map +1 -0
  62. package/dist/memory/embedder/openai.d.ts +35 -0
  63. package/dist/memory/embedder/openai.d.ts.map +1 -0
  64. package/dist/memory/embedder/openai.js +103 -0
  65. package/dist/memory/embedder/openai.js.map +1 -0
  66. package/dist/memory/index.d.ts +33 -0
  67. package/dist/memory/index.d.ts.map +1 -0
  68. package/dist/memory/index.js +31 -0
  69. package/dist/memory/index.js.map +1 -0
  70. package/dist/memory/memory.d.ts +126 -0
  71. package/dist/memory/memory.d.ts.map +1 -0
  72. package/dist/memory/memory.js +280 -0
  73. package/dist/memory/memory.js.map +1 -0
  74. package/dist/memory/processors/base.d.ts +42 -0
  75. package/dist/memory/processors/base.d.ts.map +1 -0
  76. package/dist/memory/processors/base.js +6 -0
  77. package/dist/memory/processors/base.js.map +1 -0
  78. package/dist/memory/processors/index.d.ts +16 -0
  79. package/dist/memory/processors/index.d.ts.map +1 -0
  80. package/dist/memory/processors/index.js +18 -0
  81. package/dist/memory/processors/index.js.map +1 -0
  82. package/dist/memory/processors/message-history.d.ts +35 -0
  83. package/dist/memory/processors/message-history.d.ts.map +1 -0
  84. package/dist/memory/processors/message-history.js +51 -0
  85. package/dist/memory/processors/message-history.js.map +1 -0
  86. package/dist/memory/processors/observational-memory/index.d.ts +82 -0
  87. package/dist/memory/processors/observational-memory/index.d.ts.map +1 -0
  88. package/dist/memory/processors/observational-memory/index.js +234 -0
  89. package/dist/memory/processors/observational-memory/index.js.map +1 -0
  90. package/dist/memory/processors/observational-memory/observer-agent.d.ts +64 -0
  91. package/dist/memory/processors/observational-memory/observer-agent.d.ts.map +1 -0
  92. package/dist/memory/processors/observational-memory/observer-agent.js +362 -0
  93. package/dist/memory/processors/observational-memory/observer-agent.js.map +1 -0
  94. package/dist/memory/processors/observational-memory/reflector-agent.d.ts +38 -0
  95. package/dist/memory/processors/observational-memory/reflector-agent.d.ts.map +1 -0
  96. package/dist/memory/processors/observational-memory/reflector-agent.js +213 -0
  97. package/dist/memory/processors/observational-memory/reflector-agent.js.map +1 -0
  98. package/dist/memory/processors/observational-memory/token-counter.d.ts +35 -0
  99. package/dist/memory/processors/observational-memory/token-counter.d.ts.map +1 -0
  100. package/dist/memory/processors/observational-memory/token-counter.js +90 -0
  101. package/dist/memory/processors/observational-memory/token-counter.js.map +1 -0
  102. package/dist/memory/processors/semantic-recall.d.ts +55 -0
  103. package/dist/memory/processors/semantic-recall.d.ts.map +1 -0
  104. package/dist/memory/processors/semantic-recall.js +143 -0
  105. package/dist/memory/processors/semantic-recall.js.map +1 -0
  106. package/dist/memory/processors/working-memory.d.ts +41 -0
  107. package/dist/memory/processors/working-memory.d.ts.map +1 -0
  108. package/dist/memory/processors/working-memory.js +82 -0
  109. package/dist/memory/processors/working-memory.js.map +1 -0
  110. package/dist/memory/storage/base.d.ts +288 -0
  111. package/dist/memory/storage/base.d.ts.map +1 -0
  112. package/dist/memory/storage/base.js +211 -0
  113. package/dist/memory/storage/base.js.map +1 -0
  114. package/dist/memory/storage/index.d.ts +9 -0
  115. package/dist/memory/storage/index.d.ts.map +1 -0
  116. package/dist/memory/storage/index.js +7 -0
  117. package/dist/memory/storage/index.js.map +1 -0
  118. package/dist/memory/storage/inmemory.d.ts +93 -0
  119. package/dist/memory/storage/inmemory.d.ts.map +1 -0
  120. package/dist/memory/storage/inmemory.js +646 -0
  121. package/dist/memory/storage/inmemory.js.map +1 -0
  122. package/dist/memory/tools/working-memory.d.ts +100 -0
  123. package/dist/memory/tools/working-memory.d.ts.map +1 -0
  124. package/dist/memory/tools/working-memory.js +237 -0
  125. package/dist/memory/tools/working-memory.js.map +1 -0
  126. package/dist/memory/types.d.ts +386 -0
  127. package/dist/memory/types.d.ts.map +1 -0
  128. package/dist/memory/types.js +58 -0
  129. package/dist/memory/types.js.map +1 -0
  130. package/dist/memory/vector/base.d.ts +145 -0
  131. package/dist/memory/vector/base.d.ts.map +1 -0
  132. package/dist/memory/vector/base.js +83 -0
  133. package/dist/memory/vector/base.js.map +1 -0
  134. package/dist/memory/vector/index.d.ts +8 -0
  135. package/dist/memory/vector/index.d.ts.map +1 -0
  136. package/dist/memory/vector/index.js +7 -0
  137. package/dist/memory/vector/index.js.map +1 -0
  138. package/dist/memory/vector/inmemory.d.ts +47 -0
  139. package/dist/memory/vector/inmemory.d.ts.map +1 -0
  140. package/dist/memory/vector/inmemory.js +234 -0
  141. package/dist/memory/vector/inmemory.js.map +1 -0
  142. package/package.json +32 -2
@@ -0,0 +1,288 @@
1
+ /**
2
+ * Memory Storage Abstract Base Class
3
+ * Based on Mastra MemoryStorage
4
+ */
5
+ import type { CoreMessage, StorageThreadType, StorageResourceType, StorageListMessagesInput, StorageListMessagesOutput, StorageListThreadsInput, StorageListThreadsOutput, OrderByInput, ObservationalMemoryRecord, BufferedObservationChunk } from "../types.js";
6
+ /**
7
+ * Create observational memory input
8
+ */
9
+ export interface CreateObservationalMemoryInput {
10
+ threadId: string | null;
11
+ resourceId: string;
12
+ scope: "thread" | "resource";
13
+ config?: import("../types.js").ObservationalMemoryOptions;
14
+ observedTimezone?: string;
15
+ }
16
+ /**
17
+ * Update active observations input
18
+ */
19
+ export interface UpdateActiveObservationsInput {
20
+ id: string;
21
+ observations: string;
22
+ tokenCount: number;
23
+ lastObservedAt: Date;
24
+ observedMessageIds?: string[];
25
+ }
26
+ /**
27
+ * Update buffered observations input
28
+ */
29
+ export interface UpdateBufferedObservationsInput {
30
+ id: string;
31
+ chunk: Omit<BufferedObservationChunk, "id" | "createdAt">;
32
+ lastBufferedAtTime?: Date;
33
+ }
34
+ /**
35
+ * Swap buffered to active input
36
+ */
37
+ export interface SwapBufferedToActiveInput {
38
+ id: string;
39
+ activationRatio: number;
40
+ messageTokensThreshold: number;
41
+ currentPendingTokens: number;
42
+ lastObservedAt?: Date;
43
+ forceMaxActivation?: boolean;
44
+ }
45
+ /**
46
+ * Swap buffered to active result
47
+ */
48
+ export interface SwapBufferedToActiveResult {
49
+ chunksActivated: number;
50
+ messageTokensActivated: number;
51
+ observationTokensActivated: number;
52
+ messagesActivated: number;
53
+ activatedCycleIds: string[];
54
+ activatedMessageIds: string[];
55
+ observations?: string;
56
+ perChunk?: Array<{
57
+ cycleId: string;
58
+ messageTokens: number;
59
+ observationTokens: number;
60
+ messageCount: number;
61
+ observations: string;
62
+ }>;
63
+ suggestedContinuation?: string;
64
+ currentTask?: string;
65
+ }
66
+ /**
67
+ * Update buffered reflection input
68
+ */
69
+ export interface UpdateBufferedReflectionInput {
70
+ id: string;
71
+ reflection: string;
72
+ tokenCount: number;
73
+ inputTokenCount: number;
74
+ reflectedObservationLineCount: number;
75
+ }
76
+ /**
77
+ * Swap buffered reflection to active input
78
+ */
79
+ export interface SwapBufferedReflectionToActiveInput {
80
+ currentRecord: ObservationalMemoryRecord;
81
+ tokenCount: number;
82
+ }
83
+ /**
84
+ * Create reflection generation input
85
+ */
86
+ export interface CreateReflectionGenerationInput {
87
+ currentRecord: ObservationalMemoryRecord;
88
+ reflection: string;
89
+ tokenCount: number;
90
+ }
91
+ /**
92
+ * Abstract base class for memory storage implementations
93
+ */
94
+ export declare abstract class MemoryStorage {
95
+ /**
96
+ * Whether this storage adapter supports Observational Memory
97
+ */
98
+ readonly supportsObservationalMemory?: boolean;
99
+ /**
100
+ * Storage name/identifier
101
+ */
102
+ abstract readonly name: string;
103
+ /**
104
+ * Initialize storage (create tables, indexes, etc.)
105
+ */
106
+ abstract init(): Promise<void>;
107
+ /**
108
+ * Clear all data (for testing)
109
+ */
110
+ abstract dangerouslyClearAll(): Promise<void>;
111
+ /**
112
+ * Get a thread by ID
113
+ */
114
+ abstract getThreadById(args: {
115
+ threadId: string;
116
+ }): Promise<StorageThreadType | null>;
117
+ /**
118
+ * Save a thread
119
+ */
120
+ abstract saveThread(args: {
121
+ thread: StorageThreadType;
122
+ }): Promise<StorageThreadType>;
123
+ /**
124
+ * Update a thread
125
+ */
126
+ abstract updateThread(args: {
127
+ id: string;
128
+ title?: string;
129
+ metadata?: Record<string, unknown>;
130
+ }): Promise<StorageThreadType>;
131
+ /**
132
+ * Delete a thread
133
+ */
134
+ abstract deleteThread(args: {
135
+ threadId: string;
136
+ }): Promise<void>;
137
+ /**
138
+ * List threads with optional filtering
139
+ */
140
+ abstract listThreads(args: StorageListThreadsInput): Promise<StorageListThreadsOutput>;
141
+ /**
142
+ * List messages for a thread
143
+ */
144
+ abstract listMessages(args: StorageListMessagesInput): Promise<StorageListMessagesOutput>;
145
+ /**
146
+ * List messages by ID
147
+ */
148
+ abstract listMessagesById(args: {
149
+ messageIds: string[];
150
+ }): Promise<{
151
+ messages: CoreMessage[];
152
+ }>;
153
+ /**
154
+ * Save messages
155
+ */
156
+ abstract saveMessages(args: {
157
+ messages: CoreMessage[];
158
+ }): Promise<{
159
+ messages: CoreMessage[];
160
+ }>;
161
+ /**
162
+ * Update messages
163
+ */
164
+ abstract updateMessages(args: {
165
+ messages: (Partial<Omit<CoreMessage, "createdAt">> & {
166
+ id: string;
167
+ })[];
168
+ }): Promise<CoreMessage[]>;
169
+ /**
170
+ * Delete messages
171
+ */
172
+ abstract deleteMessages(messageIds: string[]): Promise<void>;
173
+ /**
174
+ * Get a resource by ID
175
+ */
176
+ abstract getResourceById(args: {
177
+ resourceId: string;
178
+ }): Promise<StorageResourceType | null>;
179
+ /**
180
+ * Save a resource
181
+ */
182
+ abstract saveResource(args: {
183
+ resource: StorageResourceType;
184
+ }): Promise<StorageResourceType>;
185
+ /**
186
+ * Update a resource
187
+ */
188
+ abstract updateResource(args: {
189
+ resourceId: string;
190
+ workingMemory?: string;
191
+ metadata?: Record<string, unknown>;
192
+ }): Promise<StorageResourceType>;
193
+ /**
194
+ * Get observational memory record
195
+ */
196
+ getObservationalMemory(_threadId: string | null, _resourceId: string): Promise<ObservationalMemoryRecord | null>;
197
+ /**
198
+ * Get observational memory history
199
+ */
200
+ getObservationalMemoryHistory(_threadId: string | null, _resourceId: string, _limit?: number): Promise<ObservationalMemoryRecord[]>;
201
+ /**
202
+ * Initialize observational memory
203
+ */
204
+ initializeObservationalMemory(_input: CreateObservationalMemoryInput): Promise<ObservationalMemoryRecord>;
205
+ /**
206
+ * Update active observations
207
+ */
208
+ updateActiveObservations(_input: UpdateActiveObservationsInput): Promise<void>;
209
+ /**
210
+ * Update buffered observations
211
+ */
212
+ updateBufferedObservations(_input: UpdateBufferedObservationsInput): Promise<void>;
213
+ /**
214
+ * Swap buffered observations to active
215
+ */
216
+ swapBufferedToActive(_input: SwapBufferedToActiveInput): Promise<SwapBufferedToActiveResult>;
217
+ /**
218
+ * Create reflection generation
219
+ */
220
+ createReflectionGeneration(_input: CreateReflectionGenerationInput): Promise<ObservationalMemoryRecord>;
221
+ /**
222
+ * Update buffered reflection
223
+ */
224
+ updateBufferedReflection(_input: UpdateBufferedReflectionInput): Promise<void>;
225
+ /**
226
+ * Swap buffered reflection to active
227
+ */
228
+ swapBufferedReflectionToActive(_input: SwapBufferedReflectionToActiveInput): Promise<ObservationalMemoryRecord>;
229
+ /**
230
+ * Set reflecting flag
231
+ */
232
+ setReflectingFlag(_id: string, _isReflecting: boolean): Promise<void>;
233
+ /**
234
+ * Set observing flag
235
+ */
236
+ setObservingFlag(_id: string, _isObserving: boolean): Promise<void>;
237
+ /**
238
+ * Set buffering observation flag
239
+ */
240
+ setBufferingObservationFlag(_id: string, _isBuffering: boolean, _lastBufferedAtTokens?: number): Promise<void>;
241
+ /**
242
+ * Set buffering reflection flag
243
+ */
244
+ setBufferingReflectionFlag(_id: string, _isBuffering: boolean): Promise<void>;
245
+ /**
246
+ * Insert observational memory record
247
+ */
248
+ insertObservationalMemoryRecord(_record: ObservationalMemoryRecord): Promise<void>;
249
+ /**
250
+ * Clear observational memory
251
+ */
252
+ clearObservationalMemory(_threadId: string | null, _resourceId: string): Promise<void>;
253
+ /**
254
+ * Set pending message tokens
255
+ */
256
+ setPendingMessageTokens(_id: string, _tokenCount: number): Promise<void>;
257
+ /**
258
+ * Parse order by configuration
259
+ */
260
+ protected parseOrderBy(orderBy?: OrderByInput, defaultDirection?: "ASC" | "DESC"): {
261
+ field: "createdAt" | "updatedAt";
262
+ direction: "ASC" | "DESC";
263
+ };
264
+ /**
265
+ * Validate metadata keys to prevent injection attacks
266
+ */
267
+ protected validateMetadataKeys(metadata: Record<string, unknown> | undefined): void;
268
+ /**
269
+ * Validate pagination parameters
270
+ */
271
+ protected validatePagination(page: number, perPage: number): void;
272
+ /**
273
+ * Validate pagination input
274
+ */
275
+ protected validatePaginationInput(page: number, perPageInput: number | false): void;
276
+ }
277
+ /**
278
+ * Normalize perPage value
279
+ */
280
+ export declare function normalizePerPage(perPageInput: number | false | undefined, defaultPerPage: number): number;
281
+ /**
282
+ * Calculate pagination offset
283
+ */
284
+ export declare function calculatePagination(page: number, perPageInput: number | false | undefined, perPage: number): {
285
+ offset: number;
286
+ perPage: number | false;
287
+ };
288
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/memory/storage/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Memory Storage Abstract Base Class
3
+ * Based on Mastra MemoryStorage
4
+ */
5
+ // Constants for metadata key validation
6
+ const SAFE_METADATA_KEY_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
7
+ const MAX_METADATA_KEY_LENGTH = 128;
8
+ const DISALLOWED_METADATA_KEYS = new Set(["__proto__", "prototype", "constructor"]);
9
+ /**
10
+ * Abstract base class for memory storage implementations
11
+ */
12
+ export class MemoryStorage {
13
+ constructor() {
14
+ /**
15
+ * Whether this storage adapter supports Observational Memory
16
+ */
17
+ this.supportsObservationalMemory = false;
18
+ }
19
+ // ========================================================================
20
+ // Observational Memory Operations (Optional)
21
+ // ========================================================================
22
+ /**
23
+ * Get observational memory record
24
+ */
25
+ async getObservationalMemory(_threadId, _resourceId) {
26
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
27
+ }
28
+ /**
29
+ * Get observational memory history
30
+ */
31
+ async getObservationalMemoryHistory(_threadId, _resourceId, _limit) {
32
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
33
+ }
34
+ /**
35
+ * Initialize observational memory
36
+ */
37
+ async initializeObservationalMemory(_input) {
38
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
39
+ }
40
+ /**
41
+ * Update active observations
42
+ */
43
+ async updateActiveObservations(_input) {
44
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
45
+ }
46
+ /**
47
+ * Update buffered observations
48
+ */
49
+ async updateBufferedObservations(_input) {
50
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
51
+ }
52
+ /**
53
+ * Swap buffered observations to active
54
+ */
55
+ async swapBufferedToActive(_input) {
56
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
57
+ }
58
+ /**
59
+ * Create reflection generation
60
+ */
61
+ async createReflectionGeneration(_input) {
62
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
63
+ }
64
+ /**
65
+ * Update buffered reflection
66
+ */
67
+ async updateBufferedReflection(_input) {
68
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
69
+ }
70
+ /**
71
+ * Swap buffered reflection to active
72
+ */
73
+ async swapBufferedReflectionToActive(_input) {
74
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
75
+ }
76
+ /**
77
+ * Set reflecting flag
78
+ */
79
+ async setReflectingFlag(_id, _isReflecting) {
80
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
81
+ }
82
+ /**
83
+ * Set observing flag
84
+ */
85
+ async setObservingFlag(_id, _isObserving) {
86
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
87
+ }
88
+ /**
89
+ * Set buffering observation flag
90
+ */
91
+ async setBufferingObservationFlag(_id, _isBuffering, _lastBufferedAtTokens) {
92
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
93
+ }
94
+ /**
95
+ * Set buffering reflection flag
96
+ */
97
+ async setBufferingReflectionFlag(_id, _isBuffering) {
98
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
99
+ }
100
+ /**
101
+ * Insert observational memory record
102
+ */
103
+ async insertObservationalMemoryRecord(_record) {
104
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
105
+ }
106
+ /**
107
+ * Clear observational memory
108
+ */
109
+ async clearObservationalMemory(_threadId, _resourceId) {
110
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
111
+ }
112
+ /**
113
+ * Set pending message tokens
114
+ */
115
+ async setPendingMessageTokens(_id, _tokenCount) {
116
+ throw new Error(`Observational memory is not implemented by this storage adapter (${this.name}).`);
117
+ }
118
+ // ========================================================================
119
+ // Protected Helpers
120
+ // ========================================================================
121
+ /**
122
+ * Parse order by configuration
123
+ */
124
+ parseOrderBy(orderBy, defaultDirection = "DESC") {
125
+ return {
126
+ field: orderBy?.field ?? "createdAt",
127
+ direction: orderBy?.direction ?? defaultDirection,
128
+ };
129
+ }
130
+ /**
131
+ * Validate metadata keys to prevent injection attacks
132
+ */
133
+ validateMetadataKeys(metadata) {
134
+ if (!metadata)
135
+ return;
136
+ for (const key of Object.keys(metadata)) {
137
+ if (DISALLOWED_METADATA_KEYS.has(key)) {
138
+ throw new Error(`Invalid metadata key: "${key}".`);
139
+ }
140
+ if (!SAFE_METADATA_KEY_PATTERN.test(key)) {
141
+ throw new Error(`Invalid metadata key: "${key}". Keys must start with a letter or underscore and contain only alphanumeric characters and underscores.`);
142
+ }
143
+ if (key.length > MAX_METADATA_KEY_LENGTH) {
144
+ throw new Error(`Metadata key "${key}" exceeds maximum length of ${MAX_METADATA_KEY_LENGTH} characters.`);
145
+ }
146
+ }
147
+ }
148
+ /**
149
+ * Validate pagination parameters
150
+ */
151
+ validatePagination(page, perPage) {
152
+ if (!Number.isFinite(page) || !Number.isSafeInteger(page) || page < 0) {
153
+ throw new Error("page must be >= 0");
154
+ }
155
+ if (!Number.isFinite(perPage) || !Number.isSafeInteger(perPage) || perPage < 0) {
156
+ throw new Error("perPage must be >= 0");
157
+ }
158
+ if (perPage === 0) {
159
+ return;
160
+ }
161
+ const offset = page * perPage;
162
+ if (!Number.isSafeInteger(offset) || offset > Number.MAX_SAFE_INTEGER) {
163
+ throw new Error("page value too large");
164
+ }
165
+ }
166
+ /**
167
+ * Validate pagination input
168
+ */
169
+ validatePaginationInput(page, perPageInput) {
170
+ if (perPageInput !== false) {
171
+ if (typeof perPageInput !== "number" || !Number.isFinite(perPageInput) || !Number.isSafeInteger(perPageInput)) {
172
+ throw new Error("perPage must be false or a safe integer");
173
+ }
174
+ if (perPageInput < 0) {
175
+ throw new Error("perPage must be >= 0");
176
+ }
177
+ }
178
+ if (perPageInput === false) {
179
+ if (page !== 0) {
180
+ throw new Error("page must be 0 when perPage is false");
181
+ }
182
+ if (!Number.isFinite(page) || !Number.isSafeInteger(page)) {
183
+ throw new Error("page must be >= 0");
184
+ }
185
+ return;
186
+ }
187
+ this.validatePagination(page, perPageInput);
188
+ }
189
+ }
190
+ /**
191
+ * Normalize perPage value
192
+ */
193
+ export function normalizePerPage(perPageInput, defaultPerPage) {
194
+ if (perPageInput === false)
195
+ return Number.MAX_SAFE_INTEGER;
196
+ if (perPageInput === 0)
197
+ return 0;
198
+ if (perPageInput === undefined)
199
+ return defaultPerPage;
200
+ return perPageInput;
201
+ }
202
+ /**
203
+ * Calculate pagination offset
204
+ */
205
+ export function calculatePagination(page, perPageInput, perPage) {
206
+ return {
207
+ offset: page * perPage,
208
+ perPage: perPageInput === false ? false : perPageInput ?? perPage,
209
+ };
210
+ }
211
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/memory/storage/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Storage Module Exports
3
+ */
4
+ export { MemoryStorage } from "./base.js";
5
+ export type { CreateObservationalMemoryInput, UpdateActiveObservationsInput, UpdateBufferedObservationsInput, SwapBufferedToActiveInput, SwapBufferedToActiveResult, UpdateBufferedReflectionInput, SwapBufferedReflectionToActiveInput, CreateReflectionGenerationInput, } from "./base.js";
6
+ export { normalizePerPage, calculatePagination } from "./base.js";
7
+ export { InMemoryStorage, createInMemoryDB } from "./inmemory.js";
8
+ export type { InMemoryDB } from "./inmemory.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Storage Module Exports
3
+ */
4
+ export { MemoryStorage } from "./base.js";
5
+ export { normalizePerPage, calculatePagination } from "./base.js";
6
+ export { InMemoryStorage, createInMemoryDB } from "./inmemory.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAW1C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * In-Memory Storage Implementation
3
+ * Based on Mastra InMemoryMemory
4
+ */
5
+ import type { CoreMessage, StorageThreadType, StorageResourceType, StorageMessageType, StorageListMessagesInput, StorageListMessagesOutput, StorageListThreadsInput, StorageListThreadsOutput, ObservationalMemoryRecord } from "../types.js";
6
+ import { MemoryStorage, type CreateObservationalMemoryInput, type UpdateActiveObservationsInput, type UpdateBufferedObservationsInput, type SwapBufferedToActiveInput, type SwapBufferedToActiveResult, type CreateReflectionGenerationInput, type UpdateBufferedReflectionInput, type SwapBufferedReflectionToActiveInput } from "./base.js";
7
+ /**
8
+ * In-memory database structure
9
+ */
10
+ export interface InMemoryDB {
11
+ threads: Map<string, StorageThreadType>;
12
+ messages: Map<string, StorageMessageType>;
13
+ resources: Map<string, StorageResourceType>;
14
+ observationalMemory: Map<string, ObservationalMemoryRecord[]>;
15
+ }
16
+ /**
17
+ * Create a new in-memory database
18
+ */
19
+ export declare function createInMemoryDB(): InMemoryDB;
20
+ /**
21
+ * In-Memory Storage Implementation
22
+ */
23
+ export declare class InMemoryStorage extends MemoryStorage {
24
+ readonly name = "inmemory";
25
+ readonly supportsObservationalMemory = true;
26
+ private db;
27
+ constructor(db?: InMemoryDB);
28
+ init(): Promise<void>;
29
+ dangerouslyClearAll(): Promise<void>;
30
+ getThreadById({ threadId }: {
31
+ threadId: string;
32
+ }): Promise<StorageThreadType | null>;
33
+ saveThread({ thread }: {
34
+ thread: StorageThreadType;
35
+ }): Promise<StorageThreadType>;
36
+ updateThread({ id, title, metadata, }: {
37
+ id: string;
38
+ title?: string;
39
+ metadata?: Record<string, unknown>;
40
+ }): Promise<StorageThreadType>;
41
+ deleteThread({ threadId }: {
42
+ threadId: string;
43
+ }): Promise<void>;
44
+ listThreads(args: StorageListThreadsInput): Promise<StorageListThreadsOutput>;
45
+ listMessages({ threadId, resourceId: optionalResourceId, include, filter, perPage: perPageInput, page, orderBy, }: StorageListMessagesInput): Promise<StorageListMessagesOutput>;
46
+ listMessagesById({ messageIds }: {
47
+ messageIds: string[];
48
+ }): Promise<{
49
+ messages: CoreMessage[];
50
+ }>;
51
+ saveMessages(args: {
52
+ messages: CoreMessage[];
53
+ }): Promise<{
54
+ messages: CoreMessage[];
55
+ }>;
56
+ updateMessages(args: {
57
+ messages: (Partial<Omit<CoreMessage, "createdAt">> & {
58
+ id: string;
59
+ })[];
60
+ }): Promise<CoreMessage[]>;
61
+ deleteMessages(messageIds: string[]): Promise<void>;
62
+ getResourceById({ resourceId }: {
63
+ resourceId: string;
64
+ }): Promise<StorageResourceType | null>;
65
+ saveResource({ resource }: {
66
+ resource: StorageResourceType;
67
+ }): Promise<StorageResourceType>;
68
+ updateResource({ resourceId, workingMemory, metadata, }: {
69
+ resourceId: string;
70
+ workingMemory?: string;
71
+ metadata?: Record<string, unknown>;
72
+ }): Promise<StorageResourceType>;
73
+ private getObservationalMemoryKey;
74
+ getObservationalMemory(threadId: string | null, resourceId: string): Promise<ObservationalMemoryRecord | null>;
75
+ getObservationalMemoryHistory(threadId: string | null, resourceId: string, limit?: number): Promise<ObservationalMemoryRecord[]>;
76
+ initializeObservationalMemory(input: CreateObservationalMemoryInput): Promise<ObservationalMemoryRecord>;
77
+ insertObservationalMemoryRecord(record: ObservationalMemoryRecord): Promise<void>;
78
+ updateActiveObservations(input: UpdateActiveObservationsInput): Promise<void>;
79
+ updateBufferedObservations(input: UpdateBufferedObservationsInput): Promise<void>;
80
+ swapBufferedToActive(input: SwapBufferedToActiveInput): Promise<SwapBufferedToActiveResult>;
81
+ createReflectionGeneration(input: CreateReflectionGenerationInput): Promise<ObservationalMemoryRecord>;
82
+ updateBufferedReflection(input: UpdateBufferedReflectionInput): Promise<void>;
83
+ swapBufferedReflectionToActive(input: SwapBufferedReflectionToActiveInput): Promise<ObservationalMemoryRecord>;
84
+ setReflectingFlag(id: string, isReflecting: boolean): Promise<void>;
85
+ setObservingFlag(id: string, isObserving: boolean): Promise<void>;
86
+ setBufferingObservationFlag(id: string, isBuffering: boolean, lastBufferedAtTokens?: number): Promise<void>;
87
+ setBufferingReflectionFlag(id: string, isBuffering: boolean): Promise<void>;
88
+ clearObservationalMemory(threadId: string | null, resourceId: string): Promise<void>;
89
+ setPendingMessageTokens(id: string, tokenCount: number): Promise<void>;
90
+ private parseStoredMessage;
91
+ private findObservationalMemoryRecordById;
92
+ }
93
+ //# sourceMappingURL=inmemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inmemory.d.ts","sourceRoot":"","sources":["../../../src/memory/storage/inmemory.ts"],"names":[],"mappings":"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"}