@mastra/mongodb 1.16.1 → 1.17.0-alpha.0
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 +45 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/index.cjs +36 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +36 -38
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/experiments/index.d.ts.map +1 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# @mastra/mongodb
|
|
2
2
|
|
|
3
|
+
## 1.17.0-alpha.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Added experiment provenance and grouping support to the LibSQL, MongoDB, MySQL, PostgreSQL, and Spanner storage adapters. These fields remain available for later grouping and filtering. ([#20645](https://github.com/mastra-ai/mastra/pull/20645))
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { PostgresStore } from '@mastra/pg';
|
|
11
|
+
|
|
12
|
+
const storage = new PostgresStore({
|
|
13
|
+
id: 'postgres-storage',
|
|
14
|
+
connectionString: process.env.DATABASE_URL!,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
await dataset.startExperiment({
|
|
18
|
+
task,
|
|
19
|
+
scorers,
|
|
20
|
+
provenance: { source: 'github', sourceVersion: 'abc123' },
|
|
21
|
+
grouping: { experimentSetId: 'benchmark-1', variantId: 'candidate', trialIndex: 0 },
|
|
22
|
+
});
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- Memory list reads now surface database errors instead of silently returning empty results. ([#17910](https://github.com/mastra-ai/mastra/pull/17910))
|
|
26
|
+
|
|
27
|
+
Previously, the paginated memory reads (`listThreads`, `listMessages`, `listMessagesByResourceId`, and `listMessagesById`) caught backend failures, logged them, and returned an empty payload like `{ threads: [], total: 0, hasMore: false }`. A transient outage (locked table, dropped connection) was therefore indistinguishable from a genuinely empty result, so an agent reading conversation history during a brief failure would treat it as "no history" and could overwrite real state. These methods now re-throw the failure as a `MastraError`. Validation (USER) errors and genuinely empty results are unchanged.
|
|
28
|
+
|
|
29
|
+
**Behavior change**
|
|
30
|
+
|
|
31
|
+
Callers that previously received an empty result on a backend failure will now receive a thrown `MastraError`. If you call these read methods directly (rather than through an agent, which already surfaces errors), wrap them so a transient outage doesn't crash the caller:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
try {
|
|
35
|
+
const { threads } = await storage.listThreads({ resourceId });
|
|
36
|
+
// ...use threads
|
|
37
|
+
} catch (error) {
|
|
38
|
+
// a real backend failure. Decide whether to retry, surface, or degrade.
|
|
39
|
+
// An empty thread list no longer hides here; it only means "no threads".
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- Updated dependencies [[`e7109ee`](https://github.com/mastra-ai/mastra/commit/e7109ee6f731bacc79c885906f3c7dca8d8f013a), [`772c0c8`](https://github.com/mastra-ai/mastra/commit/772c0c897cec383258de2e6178147f8014767c7b), [`578bf2e`](https://github.com/mastra-ai/mastra/commit/578bf2e6a88e9d5b8bf502204e15a95dfbb679ae), [`06b2d87`](https://github.com/mastra-ai/mastra/commit/06b2d87e63bcdd0ed59215c6789692b9b12de376), [`ac01d63`](https://github.com/mastra-ai/mastra/commit/ac01d6355974aec73fdb8781449ed12bac582094), [`a810a05`](https://github.com/mastra-ai/mastra/commit/a810a058f62ad407cfc1701e0be36ae91145d7cf), [`f8da216`](https://github.com/mastra-ai/mastra/commit/f8da21633e7eb0e31c9ce0fc30567870d19416d3), [`6104347`](https://github.com/mastra-ai/mastra/commit/61043473ba6bfd0a25156824e853e13165562e6c), [`45bfb88`](https://github.com/mastra-ai/mastra/commit/45bfb88fd52f1dd3be20e2a38905777c96499c90), [`e3b9307`](https://github.com/mastra-ai/mastra/commit/e3b9307098daefbfae2a52ae2ef51bc9fc701190), [`d6834c5`](https://github.com/mastra-ai/mastra/commit/d6834c5a7866b16734d23900163c2414ed70d791), [`c52d346`](https://github.com/mastra-ai/mastra/commit/c52d3462ec831a5d95926ecd3d3373f5928ad2e5), [`0023e79`](https://github.com/mastra-ai/mastra/commit/0023e7919431078280abd11c89d1edeae35fcc69), [`c2ad51e`](https://github.com/mastra-ai/mastra/commit/c2ad51e2467f901eecba8c9f4a45e22a50bd7c18), [`3dc97ea`](https://github.com/mastra-ai/mastra/commit/3dc97ea415fad353b48a13095fad1835933cc12a), [`3d01cd3`](https://github.com/mastra-ai/mastra/commit/3d01cd387321b6f9c5cac31d487c84bf51b19c78), [`7bf3086`](https://github.com/mastra-ai/mastra/commit/7bf308663f0115ca74ad20554ade740f06640859), [`a8dd139`](https://github.com/mastra-ai/mastra/commit/a8dd1391a9fe9a6632c25809ef236980afa9a020), [`e5786be`](https://github.com/mastra-ai/mastra/commit/e5786be02bb903073082bd9d6da880ebaacc343f), [`2093fbd`](https://github.com/mastra-ai/mastra/commit/2093fbd53bb744bae19ec89f6d73db9a66fbe8a7), [`e7a5da4`](https://github.com/mastra-ai/mastra/commit/e7a5da4ef8e4dd452d2f232961b4e682a85ffe43), [`7b4393d`](https://github.com/mastra-ai/mastra/commit/7b4393d557411fdcf07b0e30e5acaf7cc85154ae)]:
|
|
46
|
+
- @mastra/core@1.58.0-alpha.1
|
|
47
|
+
|
|
3
48
|
## 1.16.1
|
|
4
49
|
|
|
5
50
|
### Patch Changes
|
package/dist/docs/SKILL.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@ let _mastra_core_agent = require("@mastra/core/agent");
|
|
|
10
10
|
let _mastra_core_evals = require("@mastra/core/evals");
|
|
11
11
|
let _mastra_core_storage_domains_skills = require("@mastra/core/storage/domains/skills");
|
|
12
12
|
//#region package.json
|
|
13
|
-
var version = "1.
|
|
13
|
+
var version = "1.17.0-alpha.0";
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/vector/filter.ts
|
|
16
16
|
/**
|
|
@@ -3667,6 +3667,12 @@ function transformExperimentRow(row) {
|
|
|
3667
3667
|
name: row.name ?? void 0,
|
|
3668
3668
|
description: row.description ?? void 0,
|
|
3669
3669
|
metadata: parseJsonField(row.metadata) ?? void 0,
|
|
3670
|
+
provenance: parseJsonField(row.provenance) ?? null,
|
|
3671
|
+
runnerAttestation: parseJsonField(row.runnerAttestation) ?? null,
|
|
3672
|
+
experimentSetId: row.experimentSetId ?? null,
|
|
3673
|
+
comparisonId: row.comparisonId ?? null,
|
|
3674
|
+
variantId: row.variantId ?? null,
|
|
3675
|
+
trialIndex: row.trialIndex != null ? Number(row.trialIndex) : null,
|
|
3670
3676
|
datasetId: row.datasetId ?? null,
|
|
3671
3677
|
datasetVersion: row.datasetVersion != null ? Number(row.datasetVersion) : null,
|
|
3672
3678
|
organizationId: row.organizationId ?? null,
|
|
@@ -3813,6 +3819,15 @@ var MongoDBExperimentsStorage = class MongoDBExperimentsStorage extends _mastra_
|
|
|
3813
3819
|
id: 1
|
|
3814
3820
|
}
|
|
3815
3821
|
},
|
|
3822
|
+
{
|
|
3823
|
+
collection: _mastra_core_storage.TABLE_EXPERIMENTS,
|
|
3824
|
+
keys: {
|
|
3825
|
+
experimentSetId: 1,
|
|
3826
|
+
comparisonId: 1,
|
|
3827
|
+
variantId: 1,
|
|
3828
|
+
trialIndex: 1
|
|
3829
|
+
}
|
|
3830
|
+
},
|
|
3816
3831
|
{
|
|
3817
3832
|
collection: _mastra_core_storage.TABLE_EXPERIMENTS,
|
|
3818
3833
|
keys: {
|
|
@@ -3886,6 +3901,12 @@ var MongoDBExperimentsStorage = class MongoDBExperimentsStorage extends _mastra_
|
|
|
3886
3901
|
name: input.name ?? null,
|
|
3887
3902
|
description: input.description ?? null,
|
|
3888
3903
|
metadata: input.metadata ?? null,
|
|
3904
|
+
provenance: input.provenance ?? null,
|
|
3905
|
+
runnerAttestation: input.runnerAttestation ?? null,
|
|
3906
|
+
experimentSetId: input.experimentSetId ?? null,
|
|
3907
|
+
comparisonId: input.comparisonId ?? null,
|
|
3908
|
+
variantId: input.variantId ?? null,
|
|
3909
|
+
trialIndex: input.trialIndex ?? null,
|
|
3889
3910
|
datasetId: input.datasetId ?? null,
|
|
3890
3911
|
datasetVersion: input.datasetVersion ?? null,
|
|
3891
3912
|
organizationId: input.organizationId ?? null,
|
|
@@ -3905,28 +3926,7 @@ var MongoDBExperimentsStorage = class MongoDBExperimentsStorage extends _mastra_
|
|
|
3905
3926
|
};
|
|
3906
3927
|
try {
|
|
3907
3928
|
await (await this.getCollection(_mastra_core_storage.TABLE_EXPERIMENTS)).insertOne(doc);
|
|
3908
|
-
return
|
|
3909
|
-
id,
|
|
3910
|
-
name: input.name,
|
|
3911
|
-
description: input.description,
|
|
3912
|
-
metadata: input.metadata,
|
|
3913
|
-
datasetId: input.datasetId ?? null,
|
|
3914
|
-
datasetVersion: input.datasetVersion ?? null,
|
|
3915
|
-
organizationId: input.organizationId ?? null,
|
|
3916
|
-
projectId: input.projectId ?? null,
|
|
3917
|
-
targetType: input.targetType,
|
|
3918
|
-
targetId: input.targetId,
|
|
3919
|
-
status: "pending",
|
|
3920
|
-
totalItems: input.totalItems,
|
|
3921
|
-
succeededCount: 0,
|
|
3922
|
-
failedCount: 0,
|
|
3923
|
-
skippedCount: 0,
|
|
3924
|
-
agentVersion: input.agentVersion ?? null,
|
|
3925
|
-
startedAt: null,
|
|
3926
|
-
completedAt: null,
|
|
3927
|
-
createdAt: now,
|
|
3928
|
-
updatedAt: now
|
|
3929
|
-
};
|
|
3929
|
+
return transformExperimentRow(structuredClone(doc));
|
|
3930
3930
|
} catch (error) {
|
|
3931
3931
|
throw new _mastra_core_error.MastraError({
|
|
3932
3932
|
id: (0, _mastra_core_storage.createStorageErrorId)("MONGODB", "CREATE_EXPERIMENT", "FAILED"),
|
|
@@ -3993,6 +3993,10 @@ var MongoDBExperimentsStorage = class MongoDBExperimentsStorage extends _mastra_
|
|
|
3993
3993
|
if (args.targetId) filter.targetId = args.targetId;
|
|
3994
3994
|
if (args.agentVersion) filter.agentVersion = args.agentVersion;
|
|
3995
3995
|
if (args.status) filter.status = args.status;
|
|
3996
|
+
if (args.experimentSetId !== void 0) filter.experimentSetId = args.experimentSetId;
|
|
3997
|
+
if (args.comparisonId !== void 0) filter.comparisonId = args.comparisonId;
|
|
3998
|
+
if (args.variantId !== void 0) filter.variantId = args.variantId;
|
|
3999
|
+
if (args.trialIndex !== void 0) filter.trialIndex = args.trialIndex;
|
|
3996
4000
|
if (args.filters) {
|
|
3997
4001
|
const { organizationId, projectId } = args.filters;
|
|
3998
4002
|
if (organizationId !== void 0) filter.organizationId = organizationId;
|
|
@@ -5564,6 +5568,7 @@ var MemoryStorageMongoDB = class MemoryStorageMongoDB extends _mastra_core_stora
|
|
|
5564
5568
|
hasMore
|
|
5565
5569
|
};
|
|
5566
5570
|
} catch (error) {
|
|
5571
|
+
if (error instanceof _mastra_core_error.MastraError && error.category === _mastra_core_error.ErrorCategory.USER) throw error;
|
|
5567
5572
|
const mastraError = new _mastra_core_error.MastraError({
|
|
5568
5573
|
id: (0, _mastra_core_storage.createStorageErrorId)("MONGODB", "LIST_MESSAGES", "FAILED"),
|
|
5569
5574
|
domain: _mastra_core_error.ErrorDomain.STORAGE,
|
|
@@ -5575,13 +5580,7 @@ var MemoryStorageMongoDB = class MemoryStorageMongoDB extends _mastra_core_stora
|
|
|
5575
5580
|
}, error);
|
|
5576
5581
|
this.logger?.error?.(mastraError.toString());
|
|
5577
5582
|
this.logger?.trackException?.(mastraError);
|
|
5578
|
-
|
|
5579
|
-
messages: [],
|
|
5580
|
-
total: 0,
|
|
5581
|
-
page,
|
|
5582
|
-
perPage: perPageForResponse,
|
|
5583
|
-
hasMore: false
|
|
5584
|
-
};
|
|
5583
|
+
throw mastraError;
|
|
5585
5584
|
}
|
|
5586
5585
|
}
|
|
5587
5586
|
async listMessagesByResourceId(args) {
|
|
@@ -5691,6 +5690,7 @@ var MemoryStorageMongoDB = class MemoryStorageMongoDB extends _mastra_core_stora
|
|
|
5691
5690
|
hasMore
|
|
5692
5691
|
};
|
|
5693
5692
|
} catch (error) {
|
|
5693
|
+
if (error instanceof _mastra_core_error.MastraError && error.category === _mastra_core_error.ErrorCategory.USER) throw error;
|
|
5694
5694
|
const mastraError = new _mastra_core_error.MastraError({
|
|
5695
5695
|
id: (0, _mastra_core_storage.createStorageErrorId)("MONGODB", "LIST_MESSAGES_BY_RESOURCE_ID", "FAILED"),
|
|
5696
5696
|
domain: _mastra_core_error.ErrorDomain.STORAGE,
|
|
@@ -5699,13 +5699,7 @@ var MemoryStorageMongoDB = class MemoryStorageMongoDB extends _mastra_core_stora
|
|
|
5699
5699
|
}, error);
|
|
5700
5700
|
this.logger?.error?.(mastraError.toString());
|
|
5701
5701
|
this.logger?.trackException?.(mastraError);
|
|
5702
|
-
|
|
5703
|
-
messages: [],
|
|
5704
|
-
total: 0,
|
|
5705
|
-
page,
|
|
5706
|
-
perPage: perPageForResponse,
|
|
5707
|
-
hasMore: false
|
|
5708
|
-
};
|
|
5702
|
+
throw mastraError;
|
|
5709
5703
|
}
|
|
5710
5704
|
}
|
|
5711
5705
|
async saveMessages({ messages }) {
|
|
@@ -5939,7 +5933,8 @@ var MemoryStorageMongoDB = class MemoryStorageMongoDB extends _mastra_core_stora
|
|
|
5939
5933
|
hasMore: perPageInput === false ? false : offset + perPage < total
|
|
5940
5934
|
};
|
|
5941
5935
|
} catch (error) {
|
|
5942
|
-
|
|
5936
|
+
if (error instanceof _mastra_core_error.MastraError && error.category === _mastra_core_error.ErrorCategory.USER) throw error;
|
|
5937
|
+
const mastraError = new _mastra_core_error.MastraError({
|
|
5943
5938
|
id: (0, _mastra_core_storage.createStorageErrorId)("MONGODB", "LIST_THREADS", "FAILED"),
|
|
5944
5939
|
domain: _mastra_core_error.ErrorDomain.STORAGE,
|
|
5945
5940
|
category: _mastra_core_error.ErrorCategory.THIRD_PARTY,
|
|
@@ -5948,6 +5943,9 @@ var MemoryStorageMongoDB = class MemoryStorageMongoDB extends _mastra_core_stora
|
|
|
5948
5943
|
hasMetadataFilter: !!filter?.metadata
|
|
5949
5944
|
}
|
|
5950
5945
|
}, error);
|
|
5946
|
+
this.logger?.error?.(mastraError.toString());
|
|
5947
|
+
this.logger?.trackException?.(mastraError);
|
|
5948
|
+
throw mastraError;
|
|
5951
5949
|
}
|
|
5952
5950
|
}
|
|
5953
5951
|
async saveThread({ thread }) {
|