@mastra/convex 1.4.0 → 1.5.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/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { mastraCache, mastraNativeVectorAction, mastraNativeVectorMutation, mastraNativeVectorQuery, mastraStorage } from './chunk-MC2EQATP.js';
1
+ export { mastraCache, mastraNativeVectorAction, mastraNativeVectorMutation, mastraNativeVectorQuery, mastraStorage } from './chunk-SQMTQ7ZD.js';
2
2
  export { TABLE_BACKGROUND_TASKS, TABLE_CHANNEL_CONFIG, TABLE_CHANNEL_INSTALLATIONS, TABLE_MESSAGES, TABLE_OBSERVATIONAL_MEMORY, TABLE_RESOURCES, TABLE_SCHEDULES, TABLE_SCHEDULE_TRIGGERS, TABLE_SCORERS, TABLE_THREADS, TABLE_WORKFLOW_SNAPSHOT, defineMastraNativeVectorTable, mastraBackgroundTasksTable, mastraCacheListItemsTable, mastraCacheTable, mastraChannelConfigTable, mastraChannelInstallationsTable, mastraDocumentsTable, mastraMessagesTable, mastraObservationalMemoryTable, mastraResourcesTable, mastraScheduleTriggersTable, mastraSchedulesTable, mastraScoresTable, mastraThreadsTable, mastraVectorIndexesTable, mastraVectorsTable, mastraWorkflowSnapshotsTable } from './chunk-QWWFHN52.js';
3
3
  import { MastraServerCache } from '@mastra/core/cache';
4
- import { MastraCompositeStore, createVectorErrorId, MemoryStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_RESOURCES, createStorageErrorId, normalizePerPage, calculatePagination, filterByDateRange, safelyParseJSON, WorkflowsStorage, TABLE_WORKFLOW_SNAPSHOT, ScoresStorage, TABLE_SCORERS, ChannelsStorage, TABLE_CHANNEL_INSTALLATIONS, TABLE_CHANNEL_CONFIG, SchedulesStorage, TABLE_SCHEDULE_TRIGGERS, TABLE_SCHEDULES, BackgroundTasksStorage, TABLE_BACKGROUND_TASKS, normalizeScheduleTarget } from '@mastra/core/storage';
4
+ import { MastraCompositeStore, createVectorErrorId, MemoryStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_RESOURCES, createStorageErrorId, normalizePerPage, calculatePagination, validateStorageMetadataFilter, filterByDateRange, storageMessageMatchesMetadataFilter, safelyParseJSON, WorkflowsStorage, TABLE_WORKFLOW_SNAPSHOT, ScoresStorage, TABLE_SCORERS, ChannelsStorage, TABLE_CHANNEL_INSTALLATIONS, TABLE_CHANNEL_CONFIG, SchedulesStorage, TABLE_SCHEDULE_TRIGGERS, TABLE_SCHEDULES, BackgroundTasksStorage, TABLE_BACKGROUND_TASKS, normalizeScheduleTarget } from '@mastra/core/storage';
5
5
  import { MastraBase } from '@mastra/core/base';
6
6
  import { MessageList } from '@mastra/core/agent';
7
7
  import { MastraError, ErrorCategory, ErrorDomain } from '@mastra/core/error';
@@ -1161,6 +1161,7 @@ var MemoryConvex = class extends MemoryStorage {
1161
1161
  }
1162
1162
  async listMessages(args) {
1163
1163
  const { threadId, resourceId, include, filter, perPage: perPageInput, page = 0, orderBy } = args;
1164
+ const metadataFilter = validateStorageMetadataFilter(filter?.metadata);
1164
1165
  const threadIds = Array.isArray(threadId) ? threadId : [threadId];
1165
1166
  if (threadIds.length === 0 || threadIds.some((id) => !id.trim())) {
1166
1167
  throw new MastraError(
@@ -1199,6 +1200,7 @@ var MemoryConvex = class extends MemoryStorage {
1199
1200
  rows = rows.filter((row) => row.resourceId === resourceId);
1200
1201
  }
1201
1202
  rows = filterByDateRange(rows, (row) => new Date(row.createdAt), filter?.dateRange);
1203
+ rows = rows.filter((row) => storageMessageMatchesMetadataFilter(row.content, metadataFilter));
1202
1204
  rows.sort((a, b) => {
1203
1205
  const aValue = field === "createdAt" || field === "updatedAt" ? new Date(a[field]).getTime() : a[field];
1204
1206
  const bValue = field === "createdAt" || field === "updatedAt" ? new Date(b[field]).getTime() : b[field];
@@ -1213,7 +1215,7 @@ var MemoryConvex = class extends MemoryStorage {
1213
1215
  const messageIds = new Set(messages.map((msg) => msg.id));
1214
1216
  if (include && include.length > 0) {
1215
1217
  const preloadedThreads = /* @__PURE__ */ new Map();
1216
- if (!resourceId && !filter?.dateRange) {
1218
+ if (!resourceId && !filter?.dateRange && !metadataFilter) {
1217
1219
  for (const tid of threadIds) {
1218
1220
  preloadedThreads.set(
1219
1221
  tid,
@@ -1230,7 +1232,7 @@ var MemoryConvex = class extends MemoryStorage {
1230
1232
  }
1231
1233
  }
1232
1234
  messages = this._sortMessages(messages, field, direction);
1233
- const hasMore = include && include.length > 0 ? new Set(messages.filter((m) => m.threadId === threadId).map((m) => m.id)).size < totalThreadMessages : perPageInput === false ? false : offset + perPage < totalThreadMessages;
1235
+ const hasMore = metadataFilter ? perPageInput !== false && offset + perPage < totalThreadMessages : include && include.length > 0 ? new Set(messages.filter((m) => m.threadId === threadId).map((m) => m.id)).size < totalThreadMessages : perPageInput === false ? false : offset + perPage < totalThreadMessages;
1234
1236
  return {
1235
1237
  messages,
1236
1238
  total: totalThreadMessages,
@@ -1241,6 +1243,7 @@ var MemoryConvex = class extends MemoryStorage {
1241
1243
  }
1242
1244
  async listMessagesByResourceId(args) {
1243
1245
  const { resourceId, filter, perPage: perPageInput, page = 0, orderBy } = args;
1246
+ const metadataFilter = validateStorageMetadataFilter(filter?.metadata);
1244
1247
  const { field, direction } = this.parseOrderBy(orderBy, "ASC");
1245
1248
  const perPage = normalizePerPage(perPageInput, 40);
1246
1249
  if (page < 0) {
@@ -1269,6 +1272,7 @@ var MemoryConvex = class extends MemoryStorage {
1269
1272
  const { offset, perPage: perPageForResponse } = calculatePagination(page, perPageInput, perPage);
1270
1273
  let rows = await this.#db.queryTable(TABLE_MESSAGES, [{ field: "resourceId", value: resourceId }]);
1271
1274
  rows = filterByDateRange(rows, (row) => new Date(row.createdAt), filter?.dateRange);
1275
+ rows = rows.filter((row) => storageMessageMatchesMetadataFilter(row.content, metadataFilter));
1272
1276
  rows = this._sortStoredMessages(rows, field, direction);
1273
1277
  const total = rows.length;
1274
1278
  const paginatedRows = rows.slice(offset, offset + perPage);