@mastra/pg 1.23.0-alpha.7 → 1.23.1-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/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/reference-rag-vector-databases.md +1 -1
- package/dist/index.cjs +62 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +62 -25
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/docs/SKILL.md
CHANGED
|
@@ -650,7 +650,7 @@ Key metadata considerations:
|
|
|
650
650
|
|
|
651
651
|
## Deleting vectors
|
|
652
652
|
|
|
653
|
-
|
|
653
|
+
Use `deleteVectors` with a metadata filter to remove embeddings associated with a document. This is useful for cleaning up stale vectors after a document is deleted or updated.
|
|
654
654
|
|
|
655
655
|
### Delete by Metadata Filter
|
|
656
656
|
|
package/dist/index.cjs
CHANGED
|
@@ -11064,13 +11064,36 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11064
11064
|
* asked for a page after the last row, because there is then no row to carry the
|
|
11065
11065
|
* count on.
|
|
11066
11066
|
*/
|
|
11067
|
-
async #fetchMessagePage({ selectStatement, tableName, whereClause, orderByStatement, queryParams, perPageInput, perPage, offset }) {
|
|
11067
|
+
async #fetchMessagePage({ selectStatement, tableName, whereClause, orderByStatement, queryParams, perPageInput, perPage, offset, includeTotal = true }) {
|
|
11068
|
+
if (includeTotal === false && perPageInput !== false) {
|
|
11069
|
+
const peekLimit = perPage + 1;
|
|
11070
|
+
const rows = await this.#db.readClient.manyOrNone(`${selectStatement} FROM ${tableName} ${whereClause} ${orderByStatement} LIMIT $${queryParams.length + 1} OFFSET $${queryParams.length + 2}`, [
|
|
11071
|
+
...queryParams,
|
|
11072
|
+
peekLimit,
|
|
11073
|
+
offset
|
|
11074
|
+
]) || [];
|
|
11075
|
+
const hasMore = rows.length > perPage;
|
|
11076
|
+
const messages = hasMore ? rows.slice(0, perPage) : rows;
|
|
11077
|
+
return {
|
|
11078
|
+
total: offset + messages.length,
|
|
11079
|
+
messages,
|
|
11080
|
+
hasMore
|
|
11081
|
+
};
|
|
11082
|
+
}
|
|
11068
11083
|
const limitClause = perPageInput === false ? "" : ` LIMIT $${queryParams.length + 1} OFFSET $${queryParams.length + 2}`;
|
|
11069
11084
|
const dataParams = perPageInput === false ? queryParams : [
|
|
11070
11085
|
...queryParams,
|
|
11071
11086
|
perPage,
|
|
11072
11087
|
offset
|
|
11073
11088
|
];
|
|
11089
|
+
if (includeTotal === false) {
|
|
11090
|
+
const rows = await this.#db.readClient.manyOrNone(`${selectStatement} FROM ${tableName} ${whereClause} ${orderByStatement}`, dataParams) || [];
|
|
11091
|
+
return {
|
|
11092
|
+
total: rows.length,
|
|
11093
|
+
messages: rows,
|
|
11094
|
+
hasMore: false
|
|
11095
|
+
};
|
|
11096
|
+
}
|
|
11074
11097
|
const rows = await this.#db.readClient.manyOrNone(`${selectStatement}, (SELECT COUNT(*) FROM ${tableName} ${whereClause}) AS "__total" FROM ${tableName} ${whereClause} ${orderByStatement}${limitClause}`, dataParams) || [];
|
|
11075
11098
|
if (rows.length > 0) return {
|
|
11076
11099
|
total: Number(rows[0].__total),
|
|
@@ -11087,7 +11110,7 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11087
11110
|
};
|
|
11088
11111
|
}
|
|
11089
11112
|
async listMessages(args) {
|
|
11090
|
-
const { threadId, resourceId, include, filter, perPage: perPageInput, page = 0, orderBy } = args;
|
|
11113
|
+
const { threadId, resourceId, include, filter, perPage: perPageInput, page = 0, orderBy, includeTotal = true } = args;
|
|
11091
11114
|
const threadIds = (Array.isArray(threadId) ? threadId : [threadId]).filter((id) => typeof id === "string");
|
|
11092
11115
|
if (threadIds.length === 0 || threadIds.some((id) => !id.trim())) throw new _mastra_core_error.MastraError({
|
|
11093
11116
|
id: (0, _mastra_core_storage.createStorageErrorId)("PG", "LIST_MESSAGES", "INVALID_THREAD_ID"),
|
|
@@ -11173,20 +11196,27 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11173
11196
|
}) : null;
|
|
11174
11197
|
let total;
|
|
11175
11198
|
let messages;
|
|
11199
|
+
let peekedHasMore;
|
|
11176
11200
|
if (metadataFilter) {
|
|
11177
11201
|
const filteredRows = (await this.#db.readClient.manyOrNone(`${selectStatement} FROM ${tableName} ${whereClause} ${orderByStatement}`, queryParams) || []).filter((row) => (0, _mastra_core_storage.storageMessageMatchesMetadataFilter)(row.content, metadataFilter));
|
|
11178
11202
|
total = filteredRows.length;
|
|
11179
11203
|
messages = perPageInput === false ? filteredRows : filteredRows.slice(offset, offset + perPage);
|
|
11180
|
-
} else
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11184
|
-
|
|
11185
|
-
|
|
11186
|
-
|
|
11187
|
-
|
|
11188
|
-
|
|
11189
|
-
|
|
11204
|
+
} else {
|
|
11205
|
+
const pageResult = await this.#fetchMessagePage({
|
|
11206
|
+
selectStatement,
|
|
11207
|
+
tableName,
|
|
11208
|
+
whereClause,
|
|
11209
|
+
orderByStatement,
|
|
11210
|
+
queryParams,
|
|
11211
|
+
perPageInput,
|
|
11212
|
+
perPage,
|
|
11213
|
+
offset,
|
|
11214
|
+
includeTotal
|
|
11215
|
+
});
|
|
11216
|
+
total = pageResult.total;
|
|
11217
|
+
messages = pageResult.messages;
|
|
11218
|
+
peekedHasMore = pageResult.hasMore;
|
|
11219
|
+
}
|
|
11190
11220
|
const primaryPageCount = messages.length;
|
|
11191
11221
|
if (total === 0 && messages.length === 0 && (!include || include.length === 0)) return {
|
|
11192
11222
|
messages: [],
|
|
@@ -11211,7 +11241,7 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11211
11241
|
const finalMessages = this._sortMessages(list.get.all.db(), field, direction);
|
|
11212
11242
|
const threadIdSet = new Set(threadIds);
|
|
11213
11243
|
const allThreadMessagesReturned = new Set(finalMessages.filter((m) => m.threadId && threadIdSet.has(m.threadId)).map((m) => m.id)).size >= total;
|
|
11214
|
-
const hasMore = metadataFilter ? perPageInput !== false && offset + primaryPageCount < total : perPageInput !== false && !allThreadMessagesReturned && offset + perPage < total;
|
|
11244
|
+
const hasMore = peekedHasMore !== void 0 ? peekedHasMore : metadataFilter ? perPageInput !== false && offset + primaryPageCount < total : perPageInput !== false && !allThreadMessagesReturned && offset + perPage < total;
|
|
11215
11245
|
return {
|
|
11216
11246
|
messages: finalMessages,
|
|
11217
11247
|
total,
|
|
@@ -11236,7 +11266,7 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11236
11266
|
}
|
|
11237
11267
|
}
|
|
11238
11268
|
async listMessagesByResourceId(args) {
|
|
11239
|
-
const { resourceId, include, filter, perPage: perPageInput, page = 0, orderBy } = args;
|
|
11269
|
+
const { resourceId, include, filter, perPage: perPageInput, page = 0, orderBy, includeTotal = true } = args;
|
|
11240
11270
|
if (!(resourceId !== void 0 && resourceId !== null && resourceId.trim() !== "")) throw new _mastra_core_error.MastraError({
|
|
11241
11271
|
id: (0, _mastra_core_storage.createStorageErrorId)("PG", "LIST_MESSAGES_BY_RESOURCE_ID", "INVALID_QUERY"),
|
|
11242
11272
|
domain: _mastra_core_error.ErrorDomain.STORAGE,
|
|
@@ -11319,20 +11349,27 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11319
11349
|
}) : null;
|
|
11320
11350
|
let total;
|
|
11321
11351
|
let messages;
|
|
11352
|
+
let peekedHasMore;
|
|
11322
11353
|
if (metadataFilter) {
|
|
11323
11354
|
const filteredRows = (await this.#db.readClient.manyOrNone(`${selectStatement} FROM ${tableName} ${whereClause} ${orderByStatement}`, queryParams) || []).filter((row) => (0, _mastra_core_storage.storageMessageMatchesMetadataFilter)(row.content, metadataFilter));
|
|
11324
11355
|
total = filteredRows.length;
|
|
11325
11356
|
messages = perPageInput === false ? filteredRows : filteredRows.slice(offset, offset + perPage);
|
|
11326
|
-
} else
|
|
11327
|
-
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
|
|
11331
|
-
|
|
11332
|
-
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11357
|
+
} else {
|
|
11358
|
+
const pageResult = await this.#fetchMessagePage({
|
|
11359
|
+
selectStatement,
|
|
11360
|
+
tableName,
|
|
11361
|
+
whereClause,
|
|
11362
|
+
orderByStatement,
|
|
11363
|
+
queryParams,
|
|
11364
|
+
perPageInput,
|
|
11365
|
+
perPage,
|
|
11366
|
+
offset,
|
|
11367
|
+
includeTotal
|
|
11368
|
+
});
|
|
11369
|
+
total = pageResult.total;
|
|
11370
|
+
messages = pageResult.messages;
|
|
11371
|
+
peekedHasMore = pageResult.hasMore;
|
|
11372
|
+
}
|
|
11336
11373
|
if (total === 0 && messages.length === 0 && (!include || include.length === 0)) return {
|
|
11337
11374
|
messages: [],
|
|
11338
11375
|
total: 0,
|
|
@@ -11354,7 +11391,7 @@ var MemoryPG = class MemoryPG extends _mastra_core_storage.MemoryStorage {
|
|
|
11354
11391
|
const messagesWithParsedContent = messages.map((row) => this.parseRow(row));
|
|
11355
11392
|
const list = new _mastra_core_agent.MessageList().add(messagesWithParsedContent, "memory");
|
|
11356
11393
|
const finalMessages = this._sortMessages(list.get.all.db(), field, direction);
|
|
11357
|
-
const hasMore = perPageInput !== false && offset + perPage < total;
|
|
11394
|
+
const hasMore = peekedHasMore !== void 0 ? peekedHasMore : perPageInput !== false && offset + perPage < total;
|
|
11358
11395
|
return {
|
|
11359
11396
|
messages: finalMessages,
|
|
11360
11397
|
total,
|