@mastra/dsql 1.3.0-alpha.0 → 1.3.0-alpha.1

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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # @mastra/dsql
2
2
 
3
+ ## 1.3.0-alpha.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed resource-scoped message includes across storage adapters so included context cannot cross resource boundaries. ([#20984](https://github.com/mastra-ai/mastra/pull/20984))
8
+
9
+ - Updated dependencies [[`6445eba`](https://github.com/mastra-ai/mastra/commit/6445eba6020abac681aba1cc9289f446cb400cbe), [`df31eb0`](https://github.com/mastra-ai/mastra/commit/df31eb0c7087d782a0d9346e467f9a4af4b0eef6), [`fcd0667`](https://github.com/mastra-ai/mastra/commit/fcd0667a4e378be35c9a1b1eb19cce78fbfd7282), [`bab06b1`](https://github.com/mastra-ai/mastra/commit/bab06b18923873a584bdfc71a6b4ec7fb4727fb7)]:
10
+ - @mastra/core@1.58.0-alpha.5
11
+
3
12
  ## 1.3.0-alpha.0
4
13
 
5
14
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -2173,7 +2173,14 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2173
2173
  }, error);
2174
2174
  });
2175
2175
  }
2176
- async _getIncludedMessages({ include }) {
2176
+ /**
2177
+ * Fetches the messages named by `include` together with their surrounding context.
2178
+ *
2179
+ * @param include - Message ids to pin, each with an optional before/after window.
2180
+ * @param resourceId - When set, restricts both the pinned messages and their context
2181
+ * to that resource so an id from another resource returns nothing.
2182
+ */
2183
+ async _getIncludedMessages({ include, resourceId }) {
2177
2184
  if (!include || include.length === 0) return null;
2178
2185
  const unionQueries = [];
2179
2186
  const params = [];
@@ -2184,17 +2191,18 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2184
2191
  });
2185
2192
  for (const inc of include) {
2186
2193
  const { id, withPreviousMessages = 0, withNextMessages = 0 } = inc;
2194
+ const resourceCondition = resourceId ? ` AND "resourceId" = $${paramIdx + 3}` : "";
2187
2195
  unionQueries.push(`
2188
2196
  SELECT * FROM (
2189
2197
  WITH target_thread AS (
2190
- SELECT thread_id FROM ${tableName} WHERE id = $${paramIdx}
2198
+ SELECT thread_id FROM ${tableName} WHERE id = $${paramIdx}${resourceCondition}
2191
2199
  ),
2192
2200
  ordered_messages AS (
2193
2201
  SELECT
2194
2202
  *,
2195
2203
  ROW_NUMBER() OVER (ORDER BY "createdAt" ASC) as row_num
2196
2204
  FROM ${tableName}
2197
- WHERE thread_id = (SELECT thread_id FROM target_thread)
2205
+ WHERE thread_id = (SELECT thread_id FROM target_thread)${resourceCondition}
2198
2206
  )
2199
2207
  SELECT
2200
2208
  m.id,
@@ -2220,6 +2228,10 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2220
2228
  `);
2221
2229
  params.push(id, withPreviousMessages, withNextMessages);
2222
2230
  paramIdx += 3;
2231
+ if (resourceId) {
2232
+ params.push(resourceId);
2233
+ paramIdx += 1;
2234
+ }
2223
2235
  }
2224
2236
  const finalQuery = unionQueries.join(" UNION ALL ") + " ORDER BY \"createdAt\" ASC";
2225
2237
  const includedRows = await this.#db.client.manyOrNone(finalQuery, params);
@@ -2345,7 +2357,10 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2345
2357
  };
2346
2358
  const messageIds = new Set(messages.map((m) => m.id));
2347
2359
  if (include && include.length > 0) {
2348
- const includeMessages = await this._getIncludedMessages({ include });
2360
+ const includeMessages = await this._getIncludedMessages({
2361
+ include,
2362
+ resourceId
2363
+ });
2349
2364
  if (includeMessages) {
2350
2365
  for (const includeMsg of includeMessages) if (!messageIds.has(includeMsg.id)) {
2351
2366
  messages.push(includeMsg);