@mastra/lance 1.0.0-beta.11 → 1.0.0-beta.12
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 +46 -0
- package/dist/docs/README.md +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/SOURCE_MAP.json +1 -1
- package/dist/docs/rag/01-vector-databases.md +3 -3
- package/dist/index.cjs +54 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +54 -18
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/memory/index.d.ts +2 -2
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -950,27 +950,63 @@ var StoreMemoryLance = class extends MemoryStorage {
|
|
|
950
950
|
);
|
|
951
951
|
}
|
|
952
952
|
}
|
|
953
|
-
async
|
|
953
|
+
async listThreads(args) {
|
|
954
|
+
const { page = 0, perPage: perPageInput, orderBy, filter } = args;
|
|
955
|
+
try {
|
|
956
|
+
this.validatePaginationInput(page, perPageInput ?? 100);
|
|
957
|
+
} catch (error) {
|
|
958
|
+
throw new MastraError(
|
|
959
|
+
{
|
|
960
|
+
id: createStorageErrorId("LANCE", "LIST_THREADS", "INVALID_PAGE"),
|
|
961
|
+
domain: ErrorDomain.STORAGE,
|
|
962
|
+
category: ErrorCategory.USER,
|
|
963
|
+
details: { page, ...perPageInput !== void 0 && { perPage: perPageInput } }
|
|
964
|
+
},
|
|
965
|
+
error instanceof Error ? error : new Error("Invalid pagination parameters")
|
|
966
|
+
);
|
|
967
|
+
}
|
|
968
|
+
const perPage = normalizePerPage(perPageInput, 100);
|
|
969
|
+
try {
|
|
970
|
+
this.validateMetadataKeys(filter?.metadata);
|
|
971
|
+
} catch (error) {
|
|
972
|
+
throw new MastraError(
|
|
973
|
+
{
|
|
974
|
+
id: createStorageErrorId("LANCE", "LIST_THREADS", "INVALID_METADATA_KEY"),
|
|
975
|
+
domain: ErrorDomain.STORAGE,
|
|
976
|
+
category: ErrorCategory.USER,
|
|
977
|
+
details: { metadataKeys: filter?.metadata ? Object.keys(filter.metadata).join(", ") : "" }
|
|
978
|
+
},
|
|
979
|
+
error instanceof Error ? error : new Error("Invalid metadata key")
|
|
980
|
+
);
|
|
981
|
+
}
|
|
954
982
|
try {
|
|
955
|
-
const { resourceId, page = 0, perPage: perPageInput, orderBy } = args;
|
|
956
|
-
const perPage = normalizePerPage(perPageInput, 100);
|
|
957
|
-
if (page < 0) {
|
|
958
|
-
throw new MastraError(
|
|
959
|
-
{
|
|
960
|
-
id: createStorageErrorId("LANCE", "LIST_THREADS_BY_RESOURCE_ID", "INVALID_PAGE"),
|
|
961
|
-
domain: ErrorDomain.STORAGE,
|
|
962
|
-
category: ErrorCategory.USER,
|
|
963
|
-
details: { page }
|
|
964
|
-
},
|
|
965
|
-
new Error("page must be >= 0")
|
|
966
|
-
);
|
|
967
|
-
}
|
|
968
983
|
const { offset, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
|
|
969
984
|
const { field, direction } = this.parseOrderBy(orderBy);
|
|
970
985
|
const table = await this.client.openTable(TABLE_THREADS);
|
|
971
|
-
const
|
|
972
|
-
|
|
973
|
-
|
|
986
|
+
const whereClauses = [];
|
|
987
|
+
if (filter?.resourceId) {
|
|
988
|
+
whereClauses.push(`\`resourceId\` = '${this.escapeSql(filter.resourceId)}'`);
|
|
989
|
+
}
|
|
990
|
+
const whereClause = whereClauses.length > 0 ? whereClauses.join(" AND ") : "";
|
|
991
|
+
const query = whereClause ? table.query().where(whereClause) : table.query();
|
|
992
|
+
let records = await query.toArray();
|
|
993
|
+
if (filter?.metadata && Object.keys(filter.metadata).length > 0) {
|
|
994
|
+
records = records.filter((record) => {
|
|
995
|
+
if (!record.metadata) return false;
|
|
996
|
+
let recordMeta;
|
|
997
|
+
if (typeof record.metadata === "string") {
|
|
998
|
+
try {
|
|
999
|
+
recordMeta = JSON.parse(record.metadata);
|
|
1000
|
+
} catch {
|
|
1001
|
+
return false;
|
|
1002
|
+
}
|
|
1003
|
+
} else {
|
|
1004
|
+
recordMeta = record.metadata;
|
|
1005
|
+
}
|
|
1006
|
+
return Object.entries(filter.metadata).every(([key, value]) => recordMeta[key] === value);
|
|
1007
|
+
});
|
|
1008
|
+
}
|
|
1009
|
+
const total = records.length;
|
|
974
1010
|
records.sort((a, b) => {
|
|
975
1011
|
const aValue = ["createdAt", "updatedAt"].includes(field) ? new Date(a[field]).getTime() : a[field];
|
|
976
1012
|
const bValue = ["createdAt", "updatedAt"].includes(field) ? new Date(b[field]).getTime() : b[field];
|
|
@@ -997,7 +1033,7 @@ var StoreMemoryLance = class extends MemoryStorage {
|
|
|
997
1033
|
} catch (error) {
|
|
998
1034
|
throw new MastraError(
|
|
999
1035
|
{
|
|
1000
|
-
id: createStorageErrorId("LANCE", "
|
|
1036
|
+
id: createStorageErrorId("LANCE", "LIST_THREADS", "FAILED"),
|
|
1001
1037
|
domain: ErrorDomain.STORAGE,
|
|
1002
1038
|
category: ErrorCategory.THIRD_PARTY
|
|
1003
1039
|
},
|