@mastra/mongodb 0.0.0-zod-v4-compat-part-2-20250820135355 → 0.0.0-zod-v4-stuff-20250825154219
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 +147 -2
- package/dist/index.cjs +92 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +92 -14
- package/dist/index.js.map +1 -1
- package/dist/storage/MongoDBConnector.d.ts +2 -2
- package/dist/storage/connectors/MongoDBConnector.d.ts +2 -2
- package/dist/storage/domains/legacy-evals/index.d.ts +1 -1
- package/dist/storage/domains/memory/index.d.ts +9 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/dist/storage/domains/operations/index.d.ts +1 -1
- package/dist/storage/domains/scores/index.d.ts +4 -3
- package/dist/storage/domains/scores/index.d.ts.map +1 -1
- package/dist/storage/domains/traces/index.d.ts +1 -1
- package/dist/storage/domains/workflows/index.d.ts +1 -1
- package/dist/storage/index.d.ts +12 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/types.d.ts +1 -1
- package/dist/vector/index.d.ts +16 -1
- package/dist/vector/index.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/storage/domains/memory/index.ts +45 -0
- package/src/storage/domains/scores/index.ts +21 -11
- package/src/storage/domains/traces/index.ts +5 -5
- package/src/storage/index.ts +16 -2
- package/src/vector/index.test.ts +134 -0
- package/src/vector/index.ts +69 -4
- package/tsup.config.ts +2 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MongoClient } from 'mongodb';
|
|
2
|
-
import type { ConnectorHandler } from './connectors/base';
|
|
3
|
-
import type { DatabaseConfig } from './types';
|
|
2
|
+
import type { ConnectorHandler } from './connectors/base.js';
|
|
3
|
+
import type { DatabaseConfig } from './types.js';
|
|
4
4
|
type MongoDBConnectorOptions = {
|
|
5
5
|
client: MongoClient;
|
|
6
6
|
dbName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MongoClient } from 'mongodb';
|
|
2
|
-
import type { DatabaseConfig } from '../types';
|
|
3
|
-
import type { ConnectorHandler } from './base';
|
|
2
|
+
import type { DatabaseConfig } from '../types.js';
|
|
3
|
+
import type { ConnectorHandler } from './base.js';
|
|
4
4
|
type MongoDBConnectorOptions = {
|
|
5
5
|
client: MongoClient;
|
|
6
6
|
dbName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LegacyEvalsStorage } from '@mastra/core/storage';
|
|
2
2
|
import type { PaginationArgs, PaginationInfo, EvalRow } from '@mastra/core/storage';
|
|
3
|
-
import type { StoreOperationsMongoDB } from '../operations';
|
|
3
|
+
import type { StoreOperationsMongoDB } from '../operations/index.js';
|
|
4
4
|
export declare class LegacyEvalsMongoDB extends LegacyEvalsStorage {
|
|
5
5
|
private operations;
|
|
6
6
|
constructor({ operations }: {
|
|
@@ -2,7 +2,7 @@ import type { MastraMessageContentV2 } from '@mastra/core/agent';
|
|
|
2
2
|
import type { MastraMessageV1, MastraMessageV2, StorageThreadType } from '@mastra/core/memory';
|
|
3
3
|
import { MemoryStorage } from '@mastra/core/storage';
|
|
4
4
|
import type { PaginationInfo, StorageGetMessagesArg, StorageResourceType } from '@mastra/core/storage';
|
|
5
|
-
import type { StoreOperationsMongoDB } from '../operations';
|
|
5
|
+
import type { StoreOperationsMongoDB } from '../operations/index.js';
|
|
6
6
|
export declare class MemoryStorageMongoDB extends MemoryStorage {
|
|
7
7
|
private operations;
|
|
8
8
|
constructor({ operations }: {
|
|
@@ -19,6 +19,14 @@ export declare class MemoryStorageMongoDB extends MemoryStorage {
|
|
|
19
19
|
getMessages(args: StorageGetMessagesArg & {
|
|
20
20
|
format: 'v2';
|
|
21
21
|
}): Promise<MastraMessageV2[]>;
|
|
22
|
+
getMessagesById({ messageIds, format, }: {
|
|
23
|
+
messageIds: string[];
|
|
24
|
+
format: 'v1';
|
|
25
|
+
}): Promise<MastraMessageV1[]>;
|
|
26
|
+
getMessagesById({ messageIds, format, }: {
|
|
27
|
+
messageIds: string[];
|
|
28
|
+
format?: 'v2';
|
|
29
|
+
}): Promise<MastraMessageV2[]>;
|
|
22
30
|
getMessagesPaginated(args: StorageGetMessagesArg & {
|
|
23
31
|
format?: 'v1' | 'v2';
|
|
24
32
|
}): Promise<PaginationInfo & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StoreOperations } from '@mastra/core/storage';
|
|
2
2
|
import type { StorageColumn, TABLE_NAMES } from '@mastra/core/storage';
|
|
3
|
-
import type { ConnectorHandler } from '../../connectors/base';
|
|
3
|
+
import type { ConnectorHandler } from '../../connectors/base.js';
|
|
4
4
|
export interface MongoDBOperationsConfig {
|
|
5
5
|
connector: ConnectorHandler;
|
|
6
6
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ScoreRowData } from '@mastra/core/scores';
|
|
1
|
+
import type { ScoreRowData, ScoringSource } from '@mastra/core/scores';
|
|
2
2
|
import { ScoresStorage } from '@mastra/core/storage';
|
|
3
3
|
import type { PaginationInfo, StoragePagination } from '@mastra/core/storage';
|
|
4
|
-
import type { StoreOperationsMongoDB } from '../operations';
|
|
4
|
+
import type { StoreOperationsMongoDB } from '../operations/index.js';
|
|
5
5
|
export declare class ScoresStorageMongoDB extends ScoresStorage {
|
|
6
6
|
private operations;
|
|
7
7
|
constructor({ operations }: {
|
|
@@ -13,11 +13,12 @@ export declare class ScoresStorageMongoDB extends ScoresStorage {
|
|
|
13
13
|
saveScore(score: Omit<ScoreRowData, 'id' | 'createdAt' | 'updatedAt'>): Promise<{
|
|
14
14
|
score: ScoreRowData;
|
|
15
15
|
}>;
|
|
16
|
-
getScoresByScorerId({ scorerId, pagination, entityId, entityType, }: {
|
|
16
|
+
getScoresByScorerId({ scorerId, pagination, entityId, entityType, source, }: {
|
|
17
17
|
scorerId: string;
|
|
18
18
|
pagination: StoragePagination;
|
|
19
19
|
entityId?: string;
|
|
20
20
|
entityType?: string;
|
|
21
|
+
source?: ScoringSource;
|
|
21
22
|
}): Promise<{
|
|
22
23
|
pagination: PaginationInfo;
|
|
23
24
|
scores: ScoreRowData[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/scores/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/scores/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAqB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAkC,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAmG5D,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,UAAU,CAAyB;gBAE/B,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,sBAAsB,CAAA;KAAE;IAK5D,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAuBlE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAiExG,mBAAmB,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAgE7D,gBAAgB,CAAC,EACrB,KAAK,EACL,UAAU,GACX,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAkD7D,mBAAmB,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;CAiDpE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PaginationInfo, StorageGetTracesArg, StorageGetTracesPaginatedArg } from '@mastra/core/storage';
|
|
2
2
|
import { TracesStorage } from '@mastra/core/storage';
|
|
3
3
|
import type { Trace } from '@mastra/core/telemetry';
|
|
4
|
-
import type { StoreOperationsMongoDB } from '../operations';
|
|
4
|
+
import type { StoreOperationsMongoDB } from '../operations/index.js';
|
|
5
5
|
export declare class TracesStorageMongoDB extends TracesStorage {
|
|
6
6
|
private operations;
|
|
7
7
|
constructor({ operations }: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WorkflowsStorage } from '@mastra/core/storage';
|
|
2
2
|
import type { WorkflowRun, WorkflowRuns } from '@mastra/core/storage';
|
|
3
3
|
import type { WorkflowRunState } from '@mastra/core/workflows';
|
|
4
|
-
import type { StoreOperationsMongoDB } from '../operations';
|
|
4
|
+
import type { StoreOperationsMongoDB } from '../operations/index.js';
|
|
5
5
|
export declare class WorkflowsStorageMongoDB extends WorkflowsStorage {
|
|
6
6
|
private operations;
|
|
7
7
|
constructor({ operations }: {
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { MastraMessageContentV2 } from '@mastra/core/agent';
|
|
2
2
|
import type { MastraMessageV1, MastraMessageV2, StorageThreadType } from '@mastra/core/memory';
|
|
3
|
-
import type { ScoreRowData } from '@mastra/core/scores';
|
|
3
|
+
import type { ScoreRowData, ScoringSource } from '@mastra/core/scores';
|
|
4
4
|
import type { EvalRow, PaginationArgs, PaginationInfo, StorageColumn, StorageDomains, StorageGetMessagesArg, StorageGetTracesArg, StorageGetTracesPaginatedArg, StoragePagination, StorageResourceType, TABLE_NAMES, WorkflowRun, WorkflowRuns } from '@mastra/core/storage';
|
|
5
5
|
import { MastraStorage } from '@mastra/core/storage';
|
|
6
6
|
import type { Trace } from '@mastra/core/telemetry';
|
|
7
7
|
import type { WorkflowRunState } from '@mastra/core/workflows';
|
|
8
|
-
import type { MongoDBConfig } from './types';
|
|
8
|
+
import type { MongoDBConfig } from './types.js';
|
|
9
9
|
export declare class MongoDBStore extends MastraStorage {
|
|
10
10
|
#private;
|
|
11
11
|
stores: StorageDomains;
|
|
@@ -67,6 +67,14 @@ export declare class MongoDBStore extends MastraStorage {
|
|
|
67
67
|
getMessages(args: StorageGetMessagesArg & {
|
|
68
68
|
format: 'v2';
|
|
69
69
|
}): Promise<MastraMessageV2[]>;
|
|
70
|
+
getMessagesById({ messageIds, format }: {
|
|
71
|
+
messageIds: string[];
|
|
72
|
+
format: 'v1';
|
|
73
|
+
}): Promise<MastraMessageV1[]>;
|
|
74
|
+
getMessagesById({ messageIds, format }: {
|
|
75
|
+
messageIds: string[];
|
|
76
|
+
format?: 'v2';
|
|
77
|
+
}): Promise<MastraMessageV2[]>;
|
|
70
78
|
saveMessages(args: {
|
|
71
79
|
messages: MastraMessageV1[];
|
|
72
80
|
format?: undefined | 'v1';
|
|
@@ -151,11 +159,12 @@ export declare class MongoDBStore extends MastraStorage {
|
|
|
151
159
|
pagination: PaginationInfo;
|
|
152
160
|
scores: ScoreRowData[];
|
|
153
161
|
}>;
|
|
154
|
-
getScoresByScorerId({ scorerId, pagination, entityId, entityType, }: {
|
|
162
|
+
getScoresByScorerId({ scorerId, pagination, entityId, entityType, source, }: {
|
|
155
163
|
scorerId: string;
|
|
156
164
|
pagination: StoragePagination;
|
|
157
165
|
entityId?: string;
|
|
158
166
|
entityType?: string;
|
|
167
|
+
source?: ScoringSource;
|
|
159
168
|
}): Promise<{
|
|
160
169
|
pagination: PaginationInfo;
|
|
161
170
|
scores: ScoreRowData[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAsC7C,qBAAa,YAAa,SAAQ,aAAa;;IAG7C,MAAM,EAAE,cAAc,CAAC;IAEvB,IAAW,QAAQ,IAAI;QACrB,4BAA4B,EAAE,OAAO,CAAC;QACtC,qBAAqB,EAAE,OAAO,CAAC;QAC/B,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,OAAO,CAAC;KACzB,CAQA;gBAEW,MAAM,EAAE,aAAa;IAyC3B,WAAW,CAAC,EAChB,SAAS,EACT,MAAM,GACP,EAAE;QACD,SAAS,EAAE,WAAW,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,UAAU,CAAC,KAAK,EAAE;QACtB,SAAS,EAAE,WAAW,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACtC,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrG,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9G,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAIzG,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIpF,sBAAsB,CAAC,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI5F,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjF,YAAY,CAAC,EACjB,EAAE,EACF,KAAK,EACL,QAAQ,GACT,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACxF,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAW9F,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAC3G,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAW5G,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAC1G,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO7F,+BAA+B,CAAC,KAAK,EAAE;QAC3C,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,cAAc,GAAG;QAAE,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAIxD,oBAAoB,CACxB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,cAAc,GAAG;QAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAAA;KAAE,CAAC;IAI1E,cAAc,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,GACnD;YACE,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,CAAC,EAAE;gBAAE,QAAQ,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;aAAE,CAAC;SAC1G,EAAE,CAAC;KACP,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIxB,SAAS,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAItD,kBAAkB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;IAIrG,eAAe,CAAC,IAAI,CAAC,EAAE;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,YAAY,CAAC;IAInB,QAAQ,CACZ,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,GAAG,cAAmB,GACtB,OAAO,CAAC,cAAc,GAAG;QAAE,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAI3C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlF,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAI9B,kBAAkB,CAAC,EACvB,KAAK,EACL,YAAY,GACb,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIlE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAIxG,gBAAgB,CAAC,EACrB,KAAK,EACL,UAAU,GACX,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAI7D,mBAAmB,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAI7D,mBAAmB,CAAC,EACxB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAInE;;OAEG;IACG,eAAe,CAAC,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAI5F,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI3F,cAAc,CAAC,EACnB,UAAU,EACV,aAAa,EACb,QAAQ,GACT,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAOjC"}
|
package/dist/storage/types.d.ts
CHANGED
package/dist/vector/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MastraVector } from '@mastra/core/vector';
|
|
2
2
|
import type { QueryResult, IndexStats, CreateIndexParams, UpsertVectorParams, QueryVectorParams, DescribeIndexParams, DeleteIndexParams, DeleteVectorParams, UpdateVectorParams } from '@mastra/core/vector';
|
|
3
3
|
import type { MongoClientOptions } from 'mongodb';
|
|
4
|
-
import type { MongoDBVectorFilter } from './filter';
|
|
4
|
+
import type { MongoDBVectorFilter } from './filter.js';
|
|
5
5
|
export interface MongoDBUpsertVectorParams extends UpsertVectorParams {
|
|
6
6
|
documents?: string[];
|
|
7
7
|
}
|
|
@@ -73,6 +73,21 @@ export declare class MongoDBVector extends MastraVector<MongoDBVectorFilter> {
|
|
|
73
73
|
private validateVectorDimensions;
|
|
74
74
|
private setIndexDimension;
|
|
75
75
|
private transformFilter;
|
|
76
|
+
/**
|
|
77
|
+
* Transform metadata field filters to use MongoDB dot notation.
|
|
78
|
+
* Fields that are stored in the metadata subdocument need to be prefixed with 'metadata.'
|
|
79
|
+
* This handles filters from the Memory system which expects direct field access.
|
|
80
|
+
*
|
|
81
|
+
* @param filter - The filter object to transform
|
|
82
|
+
* @returns Transformed filter with metadata fields properly prefixed
|
|
83
|
+
*/
|
|
84
|
+
private transformMetadataFilter;
|
|
85
|
+
/**
|
|
86
|
+
* Determine if a field should be treated as a metadata field.
|
|
87
|
+
* Common metadata fields include thread_id, resource_id, message_id, and any field
|
|
88
|
+
* that doesn't start with underscore (MongoDB system fields).
|
|
89
|
+
*/
|
|
90
|
+
private isMetadataField;
|
|
76
91
|
}
|
|
77
92
|
export {};
|
|
78
93
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,SAAS,CAAC;AAI5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,UAAU,wBAAyB,SAAQ,iBAAiB,CAAC,mBAAmB,CAAC;IAC/E,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAWD,qBAAa,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAClE,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAc;IAChD,OAAO,CAAC,uBAAuB,CAA4C;IAC3E,OAAO,CAAC,cAAc,CAIpB;gBAEU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;KAAE;IAQ7F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAexB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAiB,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoGhG;;;;;;;OAOG;IACG,iBAAiB,CAAC,EACtB,SAAS,EACT,SAAiB,EACjB,eAAsB,GACvB,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+DtG,KAAK,CAAC,EACV,SAAS,EACT,WAAW,EACX,IAAS,EACT,MAAM,EACN,aAAqB,EACrB,cAAc,GACf,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mongodb",
|
|
3
|
-
"version": "0.0.0-zod-v4-
|
|
3
|
+
"version": "0.0.0-zod-v4-stuff-20250825154219",
|
|
4
4
|
"description": "MongoDB provider for Mastra - includes vector store capabilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"default": "./dist/index.js"
|
|
13
13
|
},
|
|
14
14
|
"require": {
|
|
15
|
-
"types": "./dist/index.d.
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
16
|
"default": "./dist/index.cjs"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
"tsup": "^8.5.0",
|
|
32
32
|
"typescript": "^5.8.3",
|
|
33
33
|
"vitest": "^3.2.4",
|
|
34
|
-
"@internal/lint": "0.0.0-zod-v4-
|
|
35
|
-
"@internal/storage-test-utils": "0.0.
|
|
36
|
-
"@mastra/core": "0.0.0-zod-v4-
|
|
34
|
+
"@internal/lint": "0.0.0-zod-v4-stuff-20250825154219",
|
|
35
|
+
"@internal/storage-test-utils": "0.0.27",
|
|
36
|
+
"@mastra/core": "0.0.0-zod-v4-stuff-20250825154219",
|
|
37
|
+
"@internal/types-builder": "0.0.0-zod-v4-stuff-20250825154219"
|
|
37
38
|
},
|
|
38
39
|
"peerDependencies": {
|
|
39
|
-
"@mastra/core": "0.0.0-zod-v4-
|
|
40
|
+
"@mastra/core": "0.0.0-zod-v4-stuff-20250825154219"
|
|
40
41
|
},
|
|
41
42
|
"scripts": {
|
|
42
43
|
"build": "tsup --silent --config tsup.config.ts",
|
|
@@ -150,6 +150,51 @@ export class MemoryStorageMongoDB extends MemoryStorage {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
public async getMessagesById({
|
|
154
|
+
messageIds,
|
|
155
|
+
format,
|
|
156
|
+
}: {
|
|
157
|
+
messageIds: string[];
|
|
158
|
+
format: 'v1';
|
|
159
|
+
}): Promise<MastraMessageV1[]>;
|
|
160
|
+
public async getMessagesById({
|
|
161
|
+
messageIds,
|
|
162
|
+
format,
|
|
163
|
+
}: {
|
|
164
|
+
messageIds: string[];
|
|
165
|
+
format?: 'v2';
|
|
166
|
+
}): Promise<MastraMessageV2[]>;
|
|
167
|
+
public async getMessagesById({
|
|
168
|
+
messageIds,
|
|
169
|
+
format,
|
|
170
|
+
}: {
|
|
171
|
+
messageIds: string[];
|
|
172
|
+
format?: 'v1' | 'v2';
|
|
173
|
+
}): Promise<MastraMessageV1[] | MastraMessageV2[]> {
|
|
174
|
+
if (messageIds.length === 0) return [];
|
|
175
|
+
try {
|
|
176
|
+
const collection = await this.operations.getCollection(TABLE_MESSAGES);
|
|
177
|
+
const rawMessages = await collection
|
|
178
|
+
.find({ id: { $in: messageIds } })
|
|
179
|
+
.sort({ createdAt: -1 })
|
|
180
|
+
.toArray();
|
|
181
|
+
|
|
182
|
+
const list = new MessageList().add(rawMessages.map(this.parseRow), 'memory');
|
|
183
|
+
if (format === `v1`) return list.get.all.v1();
|
|
184
|
+
return list.get.all.v2();
|
|
185
|
+
} catch (error) {
|
|
186
|
+
throw new MastraError(
|
|
187
|
+
{
|
|
188
|
+
id: 'MONGODB_STORE_GET_MESSAGES_BY_ID_FAILED',
|
|
189
|
+
domain: ErrorDomain.STORAGE,
|
|
190
|
+
category: ErrorCategory.THIRD_PARTY,
|
|
191
|
+
details: { messageIds: JSON.stringify(messageIds) },
|
|
192
|
+
},
|
|
193
|
+
error,
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
153
198
|
public async getMessagesPaginated(
|
|
154
199
|
args: StorageGetMessagesArg & {
|
|
155
200
|
format?: 'v1' | 'v2';
|
|
@@ -14,13 +14,15 @@ function transformScoreRow(row: Record<string, any>): ScoreRowData {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
let
|
|
18
|
-
if (row.
|
|
17
|
+
let preprocessStepResultValue: any = null;
|
|
18
|
+
if (row.preprocessStepResult) {
|
|
19
19
|
try {
|
|
20
|
-
|
|
21
|
-
typeof row.
|
|
20
|
+
preprocessStepResultValue =
|
|
21
|
+
typeof row.preprocessStepResult === 'string'
|
|
22
|
+
? safelyParseJSON(row.preprocessStepResult)
|
|
23
|
+
: row.preprocessStepResult;
|
|
22
24
|
} catch (e) {
|
|
23
|
-
console.warn('Failed to parse
|
|
25
|
+
console.warn('Failed to parse preprocessStepResult:', e);
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
28
|
|
|
@@ -79,7 +81,7 @@ function transformScoreRow(row: Record<string, any>): ScoreRowData {
|
|
|
79
81
|
traceId: row.traceId as string,
|
|
80
82
|
runId: row.runId as string,
|
|
81
83
|
scorer: scorerValue,
|
|
82
|
-
|
|
84
|
+
preprocessStepResult: preprocessStepResultValue,
|
|
83
85
|
analyzeStepResult: analyzeStepResultValue,
|
|
84
86
|
score: row.score as number,
|
|
85
87
|
reason: row.reason as string,
|
|
@@ -143,17 +145,19 @@ export class ScoresStorageMongoDB extends ScoresStorage {
|
|
|
143
145
|
traceId: score.traceId || '',
|
|
144
146
|
runId: score.runId,
|
|
145
147
|
scorer: typeof score.scorer === 'string' ? safelyParseJSON(score.scorer) : score.scorer,
|
|
146
|
-
|
|
147
|
-
typeof score.
|
|
148
|
-
? safelyParseJSON(score.
|
|
149
|
-
: score.
|
|
148
|
+
preprocessStepResult:
|
|
149
|
+
typeof score.preprocessStepResult === 'string'
|
|
150
|
+
? safelyParseJSON(score.preprocessStepResult)
|
|
151
|
+
: score.preprocessStepResult,
|
|
150
152
|
analyzeStepResult:
|
|
151
153
|
typeof score.analyzeStepResult === 'string'
|
|
152
154
|
? safelyParseJSON(score.analyzeStepResult)
|
|
153
155
|
: score.analyzeStepResult,
|
|
154
156
|
score: score.score,
|
|
155
157
|
reason: score.reason,
|
|
156
|
-
|
|
158
|
+
preprocessPrompt: score.preprocessPrompt,
|
|
159
|
+
generateScorePrompt: score.generateScorePrompt,
|
|
160
|
+
generateReasonPrompt: score.generateReasonPrompt,
|
|
157
161
|
analyzePrompt: score.analyzePrompt,
|
|
158
162
|
reasonPrompt: score.reasonPrompt,
|
|
159
163
|
input: typeof score.input === 'string' ? safelyParseJSON(score.input) : score.input,
|
|
@@ -198,11 +202,13 @@ export class ScoresStorageMongoDB extends ScoresStorage {
|
|
|
198
202
|
pagination,
|
|
199
203
|
entityId,
|
|
200
204
|
entityType,
|
|
205
|
+
source,
|
|
201
206
|
}: {
|
|
202
207
|
scorerId: string;
|
|
203
208
|
pagination: StoragePagination;
|
|
204
209
|
entityId?: string;
|
|
205
210
|
entityType?: string;
|
|
211
|
+
source?: ScoringSource;
|
|
206
212
|
}): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }> {
|
|
207
213
|
try {
|
|
208
214
|
const query: any = { scorerId };
|
|
@@ -215,6 +221,10 @@ export class ScoresStorageMongoDB extends ScoresStorage {
|
|
|
215
221
|
query.entityType = entityType;
|
|
216
222
|
}
|
|
217
223
|
|
|
224
|
+
if (source) {
|
|
225
|
+
query.source = source;
|
|
226
|
+
}
|
|
227
|
+
|
|
218
228
|
const collection = await this.operations.getCollection(TABLE_SCORERS);
|
|
219
229
|
const total = await collection.countDocuments(query);
|
|
220
230
|
const currentOffset = pagination.page * pagination.perPage;
|
|
@@ -103,13 +103,13 @@ export class TracesStorageMongoDB extends TracesStorage {
|
|
|
103
103
|
name: row.name,
|
|
104
104
|
scope: row.scope,
|
|
105
105
|
kind: row.kind,
|
|
106
|
-
status: safelyParseJSON(row.status
|
|
107
|
-
events: safelyParseJSON(row.events
|
|
108
|
-
links: safelyParseJSON(row.links
|
|
109
|
-
attributes: safelyParseJSON(row.attributes
|
|
106
|
+
status: safelyParseJSON(row.status),
|
|
107
|
+
events: safelyParseJSON(row.events),
|
|
108
|
+
links: safelyParseJSON(row.links),
|
|
109
|
+
attributes: safelyParseJSON(row.attributes),
|
|
110
110
|
startTime: row.startTime,
|
|
111
111
|
endTime: row.endTime,
|
|
112
|
-
other: safelyParseJSON(row.other
|
|
112
|
+
other: safelyParseJSON(row.other),
|
|
113
113
|
createdAt: row.createdAt,
|
|
114
114
|
})) as Trace[];
|
|
115
115
|
|
package/src/storage/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MastraMessageContentV2 } from '@mastra/core/agent';
|
|
2
2
|
import { ErrorCategory, ErrorDomain, MastraError } from '@mastra/core/error';
|
|
3
3
|
import type { MastraMessageV1, MastraMessageV2, StorageThreadType } from '@mastra/core/memory';
|
|
4
|
-
import type { ScoreRowData } from '@mastra/core/scores';
|
|
4
|
+
import type { ScoreRowData, ScoringSource } from '@mastra/core/scores';
|
|
5
5
|
import type {
|
|
6
6
|
EvalRow,
|
|
7
7
|
PaginationArgs,
|
|
@@ -205,6 +205,18 @@ export class MongoDBStore extends MastraStorage {
|
|
|
205
205
|
return this.stores.memory.getMessages({ threadId, selectBy, format });
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
+
async getMessagesById({ messageIds, format }: { messageIds: string[]; format: 'v1' }): Promise<MastraMessageV1[]>;
|
|
209
|
+
async getMessagesById({ messageIds, format }: { messageIds: string[]; format?: 'v2' }): Promise<MastraMessageV2[]>;
|
|
210
|
+
async getMessagesById({
|
|
211
|
+
messageIds,
|
|
212
|
+
format,
|
|
213
|
+
}: {
|
|
214
|
+
messageIds: string[];
|
|
215
|
+
format?: 'v1' | 'v2';
|
|
216
|
+
}): Promise<MastraMessageV1[] | MastraMessageV2[]> {
|
|
217
|
+
return this.stores.memory.getMessagesById({ messageIds, format });
|
|
218
|
+
}
|
|
219
|
+
|
|
208
220
|
async saveMessages(args: { messages: MastraMessageV1[]; format?: undefined | 'v1' }): Promise<MastraMessageV1[]>;
|
|
209
221
|
async saveMessages(args: { messages: MastraMessageV2[]; format: 'v2' }): Promise<MastraMessageV2[]>;
|
|
210
222
|
async saveMessages(
|
|
@@ -354,13 +366,15 @@ export class MongoDBStore extends MastraStorage {
|
|
|
354
366
|
pagination,
|
|
355
367
|
entityId,
|
|
356
368
|
entityType,
|
|
369
|
+
source,
|
|
357
370
|
}: {
|
|
358
371
|
scorerId: string;
|
|
359
372
|
pagination: StoragePagination;
|
|
360
373
|
entityId?: string;
|
|
361
374
|
entityType?: string;
|
|
375
|
+
source?: ScoringSource;
|
|
362
376
|
}): Promise<{ pagination: PaginationInfo; scores: ScoreRowData[] }> {
|
|
363
|
-
return this.stores.scores.getScoresByScorerId({ scorerId, pagination, entityId, entityType });
|
|
377
|
+
return this.stores.scores.getScoresByScorerId({ scorerId, pagination, entityId, entityType, source });
|
|
364
378
|
}
|
|
365
379
|
|
|
366
380
|
/**
|
package/src/vector/index.test.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createVectorTestSuite } from '@internal/storage-test-utils';
|
|
1
2
|
import { vi, describe, it, expect, beforeAll, afterAll, test } from 'vitest';
|
|
2
3
|
import { MongoDBVector } from './';
|
|
3
4
|
|
|
@@ -514,4 +515,137 @@ describe('MongoDBVector Integration Tests', () => {
|
|
|
514
515
|
expect(results.length).toBe(0);
|
|
515
516
|
});
|
|
516
517
|
});
|
|
518
|
+
|
|
519
|
+
describe('Metadata Field Filtering Bug Reproduction', () => {
|
|
520
|
+
const bugTestIndexName = 'metadata_filter_bug_test_' + Date.now();
|
|
521
|
+
|
|
522
|
+
beforeAll(async () => {
|
|
523
|
+
// Create index for bug reproduction
|
|
524
|
+
await createIndexAndWait(vectorDB, bugTestIndexName, 4, 'cosine');
|
|
525
|
+
|
|
526
|
+
// Insert vectors with thread_id and resource_id in metadata
|
|
527
|
+
// Simulating what the Memory system does
|
|
528
|
+
const vectors = [
|
|
529
|
+
[1, 0, 0, 0],
|
|
530
|
+
[0, 1, 0, 0],
|
|
531
|
+
[0, 0, 1, 0],
|
|
532
|
+
[0, 0, 0, 1],
|
|
533
|
+
];
|
|
534
|
+
|
|
535
|
+
const metadata = [
|
|
536
|
+
{ thread_id: 'thread-123', resource_id: 'resource-123', message: 'first' },
|
|
537
|
+
{ thread_id: 'thread-123', resource_id: 'resource-123', message: 'second' },
|
|
538
|
+
{ thread_id: 'thread-456', resource_id: 'resource-456', message: 'third' },
|
|
539
|
+
{ thread_id: 'thread-456', resource_id: 'resource-456', message: 'fourth' },
|
|
540
|
+
];
|
|
541
|
+
|
|
542
|
+
await vectorDB.upsert({
|
|
543
|
+
indexName: bugTestIndexName,
|
|
544
|
+
vectors,
|
|
545
|
+
metadata,
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
// Wait for indexing
|
|
549
|
+
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
afterAll(async () => {
|
|
553
|
+
await deleteIndexAndWait(vectorDB, bugTestIndexName);
|
|
554
|
+
});
|
|
555
|
+
|
|
556
|
+
test('filtering by thread_id WITHOUT metadata prefix works correctly', async () => {
|
|
557
|
+
// This is what Memory.rememberMessages does - passes thread_id directly
|
|
558
|
+
// Previously this would ignore the filter, but now it works correctly
|
|
559
|
+
const results = await vectorDB.query({
|
|
560
|
+
indexName: bugTestIndexName,
|
|
561
|
+
queryVector: [1, 0, 0, 0],
|
|
562
|
+
topK: 10,
|
|
563
|
+
filter: { thread_id: 'thread-123' }, // Now correctly filters by thread_id
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
// Verify the fix works - should return only documents from thread-123
|
|
567
|
+
expect(results).toHaveLength(2);
|
|
568
|
+
expect(results.every(r => r.metadata?.thread_id === 'thread-123')).toBe(true);
|
|
569
|
+
|
|
570
|
+
// Should NOT contain documents from other threads
|
|
571
|
+
const threadIds = results.map(r => r.metadata?.thread_id);
|
|
572
|
+
expect(threadIds).not.toContain('thread-456');
|
|
573
|
+
});
|
|
574
|
+
|
|
575
|
+
test('filtering by resource_id WITHOUT metadata prefix works correctly', async () => {
|
|
576
|
+
// This is what Memory.rememberMessages does with resource scope
|
|
577
|
+
const results = await vectorDB.query({
|
|
578
|
+
indexName: bugTestIndexName,
|
|
579
|
+
queryVector: [0, 1, 0, 0],
|
|
580
|
+
topK: 10,
|
|
581
|
+
filter: { resource_id: 'resource-123' }, // Now correctly filters by resource_id
|
|
582
|
+
});
|
|
583
|
+
|
|
584
|
+
// Verify the fix works - should return only documents from resource-123
|
|
585
|
+
expect(results).toHaveLength(2);
|
|
586
|
+
expect(results.every(r => r.metadata?.resource_id === 'resource-123')).toBe(true);
|
|
587
|
+
|
|
588
|
+
// Should NOT contain documents from other resources
|
|
589
|
+
const resourceIds = results.map(r => r.metadata?.resource_id);
|
|
590
|
+
expect(resourceIds).not.toContain('resource-456');
|
|
591
|
+
});
|
|
592
|
+
|
|
593
|
+
test('filtering WITH metadata. prefix works correctly (workaround)', async () => {
|
|
594
|
+
// This is the workaround - using metadata.thread_id
|
|
595
|
+
const results = await vectorDB.query({
|
|
596
|
+
indexName: bugTestIndexName,
|
|
597
|
+
queryVector: [1, 0, 0, 0],
|
|
598
|
+
topK: 10,
|
|
599
|
+
filter: { 'metadata.thread_id': 'thread-123' },
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
// This works correctly
|
|
603
|
+
expect(results).toHaveLength(2);
|
|
604
|
+
expect(results[0]?.metadata?.thread_id).toBe('thread-123');
|
|
605
|
+
expect(results[1]?.metadata?.thread_id).toBe('thread-123');
|
|
606
|
+
});
|
|
607
|
+
|
|
608
|
+
test('semantic search without filter returns all vectors (shows data exists)', async () => {
|
|
609
|
+
// Verify that the data exists and can be retrieved without filters
|
|
610
|
+
const results = await vectorDB.query({
|
|
611
|
+
indexName: bugTestIndexName,
|
|
612
|
+
queryVector: [0.5, 0.5, 0.5, 0.5],
|
|
613
|
+
topK: 10,
|
|
614
|
+
});
|
|
615
|
+
|
|
616
|
+
// Should return all 4 vectors
|
|
617
|
+
expect(results).toHaveLength(4);
|
|
618
|
+
|
|
619
|
+
// Verify metadata is stored correctly
|
|
620
|
+
const threadIds = results.map(r => r.metadata?.thread_id);
|
|
621
|
+
expect(threadIds).toContain('thread-123');
|
|
622
|
+
expect(threadIds).toContain('thread-456');
|
|
623
|
+
});
|
|
624
|
+
});
|
|
625
|
+
});
|
|
626
|
+
|
|
627
|
+
// Use the shared test suite with factory pattern
|
|
628
|
+
const vectorDB = new MongoDBVector({ uri, dbName });
|
|
629
|
+
|
|
630
|
+
createVectorTestSuite({
|
|
631
|
+
vector: vectorDB,
|
|
632
|
+
connect: async () => {
|
|
633
|
+
await vectorDB.connect();
|
|
634
|
+
await waitForAtlasSearchReady(vectorDB);
|
|
635
|
+
},
|
|
636
|
+
disconnect: async () => {
|
|
637
|
+
await vectorDB.disconnect();
|
|
638
|
+
},
|
|
639
|
+
createIndex: async (indexName: string) => {
|
|
640
|
+
await vectorDB.createIndex({ indexName, dimension: 4, metric: 'cosine' });
|
|
641
|
+
await vectorDB.waitForIndexReady({ indexName });
|
|
642
|
+
},
|
|
643
|
+
deleteIndex: async (indexName: string) => {
|
|
644
|
+
try {
|
|
645
|
+
await vectorDB.deleteIndex({ indexName });
|
|
646
|
+
} catch (error) {
|
|
647
|
+
console.error(`Error deleting index ${indexName}:`, error);
|
|
648
|
+
}
|
|
649
|
+
},
|
|
650
|
+
waitForIndexing: () => new Promise(resolve => setTimeout(resolve, 5000)),
|
|
517
651
|
});
|