@mastra/lance 1.2.1 → 1.2.2
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 +38 -0
- package/dist/docs/SKILL.md +3 -3
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/index.cjs +22 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +22 -19
- package/dist/index.js.map +1 -1
- package/dist/storage/db/index.d.ts +1 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/package.json +6 -6
- /package/dist/docs/references/{docs-rag-vector-databases.md → guides-rag-vector-databases.md} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# @mastra/lance
|
|
2
2
|
|
|
3
|
+
## 1.2.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fixed message, thread, and resource updates to avoid recreating incomplete records when an update target is missing. ([#20535](https://github.com/mastra-ai/mastra/pull/20535))
|
|
8
|
+
|
|
9
|
+
- Fixed nine storage adapters declaring a `@mastra/core` peer range that permitted core versions too old to load them. Each adapter imports `storageMessageMatchesMetadataFilter` from `@mastra/core/storage`, which core only exports from 1.53.0, but every one of them still advertised a floor below that — as low as `>=1.0.0-0`. Package managers accepted the incompatible pair without a warning and the install then failed at import time: ([#20591](https://github.com/mastra-ai/mastra/pull/20591))
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
SyntaxError: The requested module '@mastra/core/storage' does not provide an export named 'storageMessageMatchesMetadataFilter'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
All nine now declare `>=1.53.0-0 <2.0.0-0`, so npm and pnpm surface a peer conflict at install time instead of letting the project break on first import.
|
|
16
|
+
|
|
17
|
+
Fixes [#20586](https://github.com/mastra-ai/mastra/issues/20586).
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [[`4844167`](https://github.com/mastra-ai/mastra/commit/4844167cff2d5ec5004e94edd34970833040fa3f), [`c5e56ff`](https://github.com/mastra-ai/mastra/commit/c5e56ff3bcabdf062708f2d48744fec304df6792), [`594f7b2`](https://github.com/mastra-ai/mastra/commit/594f7b28f5263fb9982fd50d95c471fb971ea984), [`7f4e26d`](https://github.com/mastra-ai/mastra/commit/7f4e26dd57bd9b23c278ea21235ab823a3810a6c), [`311f943`](https://github.com/mastra-ai/mastra/commit/311f943bee60e8fdf5c84499ea50e884276c936c), [`322daa6`](https://github.com/mastra-ai/mastra/commit/322daa6d90552909204044790d850958f6745fed), [`db4e6ff`](https://github.com/mastra-ai/mastra/commit/db4e6ff744503112eb64deeaf6c2b54bf26a54c7), [`5faf93f`](https://github.com/mastra-ai/mastra/commit/5faf93f03e19daea394b9e2a923f2e4f833407f2), [`82201f7`](https://github.com/mastra-ai/mastra/commit/82201f75fae8e050a8de2df08b74875ee74c6b83), [`cadaa13`](https://github.com/mastra-ai/mastra/commit/cadaa1372e1077c8e85eb64c5499ba8803caa323), [`0c89896`](https://github.com/mastra-ai/mastra/commit/0c8989673fb7d106837098398131e570c6023b68), [`6d19a65`](https://github.com/mastra-ai/mastra/commit/6d19a6517f5da3911023d446b7e2d5dad8adb1cb), [`23b4238`](https://github.com/mastra-ai/mastra/commit/23b423844ad0bcf2a502a68dd62866d6160f9f6d), [`80ad891`](https://github.com/mastra-ai/mastra/commit/80ad891f8cd10379aa5b5af7510c763783b2ab56), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`e320a76`](https://github.com/mastra-ai/mastra/commit/e320a763feaf65c6be3cebecf746defcbde161b3), [`03b4918`](https://github.com/mastra-ai/mastra/commit/03b4918c80d188ce375334c393e131c6e94bd7eb), [`14ef73a`](https://github.com/mastra-ai/mastra/commit/14ef73a4bbd73e7808414816eb0628ce1d80b5d7), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c), [`0a6598b`](https://github.com/mastra-ai/mastra/commit/0a6598bde80bde008986ad6616bed9632b9294cb), [`06000d7`](https://github.com/mastra-ai/mastra/commit/06000d73712911572e913b8a83339270296d0a22), [`1d677d5`](https://github.com/mastra-ai/mastra/commit/1d677d5f99d7db403f7828585e8c25f299f72628), [`9e1dad8`](https://github.com/mastra-ai/mastra/commit/9e1dad8f7b1cab2bb7ade90e5b7561f24577b88a), [`2f43145`](https://github.com/mastra-ai/mastra/commit/2f4314504c03cbba280414ac81ba3197448ee6b0), [`4e35a56`](https://github.com/mastra-ai/mastra/commit/4e35a56cdf8d74a5ff6d5eda01f2c1deaf6cc7be), [`d94b8e1`](https://github.com/mastra-ai/mastra/commit/d94b8e1cee67416d518a8c30099040061bef6a1c), [`93e28ec`](https://github.com/mastra-ai/mastra/commit/93e28ecce9031c02397e0ae8406593e5c7a95883), [`729dab4`](https://github.com/mastra-ai/mastra/commit/729dab408faccfaef0cbb048e5a4338f9172847e), [`484003d`](https://github.com/mastra-ai/mastra/commit/484003d33ff59330c86b19863e4a38732d7e4155), [`3de0188`](https://github.com/mastra-ai/mastra/commit/3de0188bfaf9a9c09c95fe322b53838cf52c70b6), [`34d34d8`](https://github.com/mastra-ai/mastra/commit/34d34d8c811df512fef4dd5459f79b7821be1866), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c), [`933d291`](https://github.com/mastra-ai/mastra/commit/933d291146b789c19442ad206f94da3e4be90c64), [`a1cb98d`](https://github.com/mastra-ai/mastra/commit/a1cb98d11990b560b98482292a1f34aa1a2d9092), [`598ad82`](https://github.com/mastra-ai/mastra/commit/598ad82d41c41389a686338a1d0e50b7400e1938), [`1fd6aad`](https://github.com/mastra-ai/mastra/commit/1fd6aad1ea4a9d32f65efa832307c35e981a4c0a)]:
|
|
20
|
+
- @mastra/core@1.56.0
|
|
21
|
+
|
|
22
|
+
## 1.2.2-alpha.0
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Fixed message, thread, and resource updates to avoid recreating incomplete records when an update target is missing. ([#20535](https://github.com/mastra-ai/mastra/pull/20535))
|
|
27
|
+
|
|
28
|
+
- Fixed nine storage adapters declaring a `@mastra/core` peer range that permitted core versions too old to load them. Each adapter imports `storageMessageMatchesMetadataFilter` from `@mastra/core/storage`, which core only exports from 1.53.0, but every one of them still advertised a floor below that — as low as `>=1.0.0-0`. Package managers accepted the incompatible pair without a warning and the install then failed at import time: ([#20591](https://github.com/mastra-ai/mastra/pull/20591))
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
SyntaxError: The requested module '@mastra/core/storage' does not provide an export named 'storageMessageMatchesMetadataFilter'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
All nine now declare `>=1.53.0-0 <2.0.0-0`, so npm and pnpm surface a peer conflict at install time instead of letting the project break on first import.
|
|
35
|
+
|
|
36
|
+
Fixes [#20586](https://github.com/mastra-ai/mastra/issues/20586).
|
|
37
|
+
|
|
38
|
+
- Updated dependencies [[`82201f7`](https://github.com/mastra-ai/mastra/commit/82201f75fae8e050a8de2df08b74875ee74c6b83), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`fb18da5`](https://github.com/mastra-ai/mastra/commit/fb18da56fc35689ae370621a8f10b5b0d8606e20), [`0a6598b`](https://github.com/mastra-ai/mastra/commit/0a6598bde80bde008986ad6616bed9632b9294cb), [`9e1dad8`](https://github.com/mastra-ai/mastra/commit/9e1dad8f7b1cab2bb7ade90e5b7561f24577b88a), [`2f43145`](https://github.com/mastra-ai/mastra/commit/2f4314504c03cbba280414ac81ba3197448ee6b0), [`34d34d8`](https://github.com/mastra-ai/mastra/commit/34d34d8c811df512fef4dd5459f79b7821be1866)]:
|
|
39
|
+
- @mastra/core@1.56.0-alpha.6
|
|
40
|
+
|
|
3
41
|
## 1.2.1
|
|
4
42
|
|
|
5
43
|
### Patch Changes
|
package/dist/docs/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: mastra-lance
|
|
|
3
3
|
description: Documentation for @mastra/lance. Use when working with @mastra/lance APIs, configuration, or implementation.
|
|
4
4
|
metadata:
|
|
5
5
|
package: "@mastra/lance"
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.2"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## When to use
|
|
@@ -14,9 +14,9 @@ Use this skill whenever you are working with @mastra/lance to obtain the domain-
|
|
|
14
14
|
|
|
15
15
|
Read the individual reference documents for detailed explanations and code examples.
|
|
16
16
|
|
|
17
|
-
###
|
|
17
|
+
### Guides
|
|
18
18
|
|
|
19
|
-
- [Storing embeddings in a vector database](references/
|
|
19
|
+
- [Storing embeddings in a vector database](references/guides-rag-vector-databases.md) - Guide on vector storage options in Mastra, including embedded and dedicated vector databases for similarity search.
|
|
20
20
|
|
|
21
21
|
### Reference
|
|
22
22
|
|
package/dist/index.cjs
CHANGED
|
@@ -314,14 +314,14 @@ var LanceDB = class extends _mastra_core_base.MastraBase {
|
|
|
314
314
|
}, error);
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
async
|
|
317
|
+
async update({ tableName, record }) {
|
|
318
318
|
try {
|
|
319
319
|
if (!this.client) throw new Error("LanceDB client not initialized. Call LanceStorage.create() first.");
|
|
320
|
-
if (!tableName) throw new Error("tableName is required for
|
|
321
|
-
if (!record || Object.keys(record).length === 0) throw new Error("record is required and cannot be empty for
|
|
320
|
+
if (!tableName) throw new Error("tableName is required for update.");
|
|
321
|
+
if (!record || Object.keys(record).length === 0) throw new Error("record is required and cannot be empty for update.");
|
|
322
322
|
} catch (validationError) {
|
|
323
323
|
throw new _mastra_core_error.MastraError({
|
|
324
|
-
id: (0, _mastra_core_storage.createStorageErrorId)("LANCE", "
|
|
324
|
+
id: (0, _mastra_core_storage.createStorageErrorId)("LANCE", "UPDATE", "INVALID_ARGS"),
|
|
325
325
|
domain: _mastra_core_error.ErrorDomain.STORAGE,
|
|
326
326
|
category: _mastra_core_error.ErrorCategory.USER,
|
|
327
327
|
text: validationError.message,
|
|
@@ -338,10 +338,10 @@ var LanceDB = class extends _mastra_core_base.MastraBase {
|
|
|
338
338
|
}
|
|
339
339
|
const filteredRecord = await this.filterRecordToKnownColumns(tableName, processedRecord);
|
|
340
340
|
if (Object.keys(filteredRecord).length === 0) return;
|
|
341
|
-
await table.mergeInsert(primaryId).whenMatchedUpdateAll().
|
|
341
|
+
await table.mergeInsert(primaryId).whenMatchedUpdateAll().execute([filteredRecord]);
|
|
342
342
|
} catch (error) {
|
|
343
343
|
throw new _mastra_core_error.MastraError({
|
|
344
|
-
id: (0, _mastra_core_storage.createStorageErrorId)("LANCE", "
|
|
344
|
+
id: (0, _mastra_core_storage.createStorageErrorId)("LANCE", "UPDATE", "FAILED"),
|
|
345
345
|
domain: _mastra_core_error.ErrorDomain.STORAGE,
|
|
346
346
|
category: _mastra_core_error.ErrorCategory.THIRD_PARTY,
|
|
347
347
|
details: { tableName }
|
|
@@ -689,7 +689,7 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
689
689
|
createdAt: new Date(thread.createdAt).getTime(),
|
|
690
690
|
updatedAt: now
|
|
691
691
|
};
|
|
692
|
-
await threadsTable.mergeInsert("id").whenMatchedUpdateAll().
|
|
692
|
+
await threadsTable.mergeInsert("id").whenMatchedUpdateAll().execute([record]);
|
|
693
693
|
}
|
|
694
694
|
}
|
|
695
695
|
} catch (error) {
|
|
@@ -760,7 +760,7 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
760
760
|
metadata: JSON.stringify(mergedMetadata),
|
|
761
761
|
updatedAt: (/* @__PURE__ */ new Date()).getTime()
|
|
762
762
|
};
|
|
763
|
-
await (await this.client.openTable(_mastra_core_storage.TABLE_THREADS)).mergeInsert("id").whenMatchedUpdateAll().
|
|
763
|
+
await (await this.client.openTable(_mastra_core_storage.TABLE_THREADS)).mergeInsert("id").whenMatchedUpdateAll().execute([record]);
|
|
764
764
|
const updatedThread = await this.getThreadById({ threadId: id });
|
|
765
765
|
if (!updatedThread) throw new Error(`Failed to retrieve updated thread ${id}`);
|
|
766
766
|
return updatedThread;
|
|
@@ -945,13 +945,13 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
945
945
|
try {
|
|
946
946
|
const { messages } = args;
|
|
947
947
|
if (messages.length === 0) return { messages: [] };
|
|
948
|
-
const
|
|
949
|
-
if (!threadId) throw new Error("Thread ID is required");
|
|
948
|
+
const threadIds = /* @__PURE__ */ new Set();
|
|
950
949
|
for (const message of messages) {
|
|
951
950
|
if (!message.id) throw new Error("Message ID is required");
|
|
952
951
|
if (!message.threadId) throw new Error("Thread ID is required for all messages");
|
|
953
952
|
if (message.resourceId === null || message.resourceId === void 0) throw new Error("Resource ID cannot be null or undefined");
|
|
954
953
|
if (!message.content) throw new Error("Message content is required");
|
|
954
|
+
threadIds.add(message.threadId);
|
|
955
955
|
}
|
|
956
956
|
const transformedMessages = messages.map((message) => {
|
|
957
957
|
const { threadId, type, ...rest } = message;
|
|
@@ -962,13 +962,13 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
962
962
|
content: JSON.stringify(message.content)
|
|
963
963
|
};
|
|
964
964
|
});
|
|
965
|
-
await (await this.client.openTable(_mastra_core_storage.TABLE_MESSAGES)).mergeInsert("id").whenMatchedUpdateAll().whenNotMatchedInsertAll().execute(transformedMessages);
|
|
966
965
|
const threadsTable = await this.client.openTable(_mastra_core_storage.TABLE_THREADS);
|
|
967
|
-
const
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
966
|
+
const currentTime = (/* @__PURE__ */ new Date()).getTime();
|
|
967
|
+
for (const id of threadIds) if ((await threadsTable.mergeInsert("id").whenMatchedUpdateAll().execute([{
|
|
968
|
+
id,
|
|
969
|
+
updatedAt: currentTime
|
|
970
|
+
}])).numUpdatedRows === 0) throw new Error(`Cannot save messages because parent thread ${id} does not exist`);
|
|
971
|
+
await (await this.client.openTable(_mastra_core_storage.TABLE_MESSAGES)).mergeInsert("id").whenMatchedUpdateAll().whenNotMatchedInsertAll().execute(transformedMessages);
|
|
972
972
|
return { messages: new _mastra_core_agent.MessageList().add(messages, "memory").get.all.db() };
|
|
973
973
|
} catch (error) {
|
|
974
974
|
throw new _mastra_core_error.MastraError({
|
|
@@ -1202,7 +1202,7 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
1202
1202
|
if ("parts" in updates.content && updates.content.parts !== void 0) newContent.parts = updates.content.parts;
|
|
1203
1203
|
updatePayload.content = JSON.stringify(newContent);
|
|
1204
1204
|
}
|
|
1205
|
-
await this.#db.
|
|
1205
|
+
await this.#db.update({
|
|
1206
1206
|
tableName: _mastra_core_storage.TABLE_MESSAGES,
|
|
1207
1207
|
record: {
|
|
1208
1208
|
id,
|
|
@@ -1215,7 +1215,7 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
1215
1215
|
});
|
|
1216
1216
|
if (updatedMessage) updatedMessages.push(this.parseMessageData(updatedMessage));
|
|
1217
1217
|
}
|
|
1218
|
-
for (const threadId of affectedThreadIds) await this.#db.
|
|
1218
|
+
for (const threadId of affectedThreadIds) await this.#db.update({
|
|
1219
1219
|
tableName: _mastra_core_storage.TABLE_THREADS,
|
|
1220
1220
|
record: {
|
|
1221
1221
|
id: threadId,
|
|
@@ -1332,7 +1332,10 @@ var StoreMemoryLance = class extends _mastra_core_storage.MemoryStorage {
|
|
|
1332
1332
|
metadata: updatedResource.metadata ? JSON.stringify(updatedResource.metadata) : "",
|
|
1333
1333
|
updatedAt: updatedResource.updatedAt.getTime()
|
|
1334
1334
|
};
|
|
1335
|
-
await (await this.client.openTable(_mastra_core_storage.TABLE_RESOURCES)).mergeInsert("id").whenMatchedUpdateAll().
|
|
1335
|
+
if ((await (await this.client.openTable(_mastra_core_storage.TABLE_RESOURCES)).mergeInsert("id").whenMatchedUpdateAll().execute([record])).numUpdatedRows === 0) {
|
|
1336
|
+
if (attempt < maxRetries - 1) continue;
|
|
1337
|
+
throw new Error(`Resource ${resourceId} disappeared while it was being updated`);
|
|
1338
|
+
}
|
|
1336
1339
|
return updatedResource;
|
|
1337
1340
|
} catch (error) {
|
|
1338
1341
|
if (error.message?.includes("Commit conflict") && attempt < maxRetries - 1) {
|