@mastra/mysql 0.4.0 → 0.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/CHANGELOG.md +25 -0
- package/dist/index.cjs +21 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +22 -2
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/package.json +9 -8
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MastraError, ErrorCategory, ErrorDomain } from '@mastra/core/error';
|
|
2
|
-
import { StoreOperations, TABLE_CONFIGS, TABLE_WORKFLOW_SNAPSHOT, TABLE_SPANS, AgentsStorage, TABLE_AGENTS, TABLE_AGENT_VERSIONS, AGENTS_SCHEMA, AGENT_VERSIONS_SCHEMA, createStorageErrorId, normalizePerPage, calculatePagination, BlobStore, SKILL_BLOBS_SCHEMA, TABLE_SKILL_BLOBS, DatasetsStorage, TABLE_DATASETS, TABLE_DATASET_ITEMS, TABLE_DATASET_VERSIONS, DATASETS_SCHEMA, DATASET_ITEMS_SCHEMA, DATASET_VERSIONS_SCHEMA, TABLE_EXPERIMENTS, TABLE_EXPERIMENT_RESULTS, hasErrorCode, ExperimentsStorage, EXPERIMENTS_SCHEMA, EXPERIMENT_RESULTS_SCHEMA, MCPClientsStorage, TABLE_MCP_CLIENTS, TABLE_MCP_CLIENT_VERSIONS, MCP_CLIENTS_SCHEMA, MCP_CLIENT_VERSIONS_SCHEMA, MCPServersStorage, TABLE_MCP_SERVERS, TABLE_MCP_SERVER_VERSIONS, MCP_SERVERS_SCHEMA, MCP_SERVER_VERSIONS_SCHEMA, MemoryStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_RESOURCES, TABLE_SCHEMAS, OBSERVATIONAL_MEMORY_TABLE_SCHEMA, ObservabilityStorage, SPAN_SCHEMA, listTracesArgsSchema, TraceStatus, toTraceSpans, PromptBlocksStorage, TABLE_PROMPT_BLOCKS, TABLE_PROMPT_BLOCK_VERSIONS, PROMPT_BLOCKS_SCHEMA, PROMPT_BLOCK_VERSIONS_SCHEMA, ScorerDefinitionsStorage, TABLE_SCORER_DEFINITIONS, TABLE_SCORER_DEFINITION_VERSIONS, SCORER_DEFINITIONS_SCHEMA, SCORER_DEFINITION_VERSIONS_SCHEMA, ScoresStorage, TABLE_SCORERS, SCORERS_SCHEMA, SkillsStorage, TABLE_SKILLS, TABLE_SKILL_VERSIONS, SKILLS_SCHEMA, SKILL_VERSIONS_SCHEMA, WorkflowsStorage, WorkspacesStorage, TABLE_WORKSPACES, TABLE_WORKSPACE_VERSIONS, WORKSPACES_SCHEMA, WORKSPACE_VERSIONS_SCHEMA, MastraCompositeStore, TABLE_FAVORITES, BackgroundTasksStorage, TABLE_BACKGROUND_TASKS, ChannelsStorage, TABLE_CHANNEL_INSTALLATIONS, TABLE_CHANNEL_CONFIG, FavoritesStorage, FAVORITES_SCHEMA, SchedulesStorage, TABLE_SCHEDULES, TABLE_SCHEDULE_TRIGGERS, ToolProviderConnectionsStorage, TABLE_TOOL_PROVIDER_CONNECTIONS, TOOL_PROVIDER_CONNECTIONS_SCHEMA, normalizeScheduleTarget } from '@mastra/core/storage';
|
|
2
|
+
import { StoreOperations, TABLE_CONFIGS, TABLE_WORKFLOW_SNAPSHOT, TABLE_SPANS, AgentsStorage, TABLE_AGENTS, TABLE_AGENT_VERSIONS, AGENTS_SCHEMA, AGENT_VERSIONS_SCHEMA, createStorageErrorId, normalizePerPage, calculatePagination, BlobStore, SKILL_BLOBS_SCHEMA, TABLE_SKILL_BLOBS, DatasetsStorage, TABLE_DATASETS, TABLE_DATASET_ITEMS, TABLE_DATASET_VERSIONS, DATASETS_SCHEMA, DATASET_ITEMS_SCHEMA, DATASET_VERSIONS_SCHEMA, TABLE_EXPERIMENTS, TABLE_EXPERIMENT_RESULTS, hasErrorCode, ExperimentsStorage, EXPERIMENTS_SCHEMA, EXPERIMENT_RESULTS_SCHEMA, MCPClientsStorage, TABLE_MCP_CLIENTS, TABLE_MCP_CLIENT_VERSIONS, MCP_CLIENTS_SCHEMA, MCP_CLIENT_VERSIONS_SCHEMA, MCPServersStorage, TABLE_MCP_SERVERS, TABLE_MCP_SERVER_VERSIONS, MCP_SERVERS_SCHEMA, MCP_SERVER_VERSIONS_SCHEMA, MemoryStorage, TABLE_THREADS, TABLE_MESSAGES, TABLE_RESOURCES, TABLE_SCHEMAS, OBSERVATIONAL_MEMORY_TABLE_SCHEMA, validateStorageMetadataFilter, ObservabilityStorage, SPAN_SCHEMA, listTracesArgsSchema, TraceStatus, toTraceSpans, PromptBlocksStorage, TABLE_PROMPT_BLOCKS, TABLE_PROMPT_BLOCK_VERSIONS, PROMPT_BLOCKS_SCHEMA, PROMPT_BLOCK_VERSIONS_SCHEMA, ScorerDefinitionsStorage, TABLE_SCORER_DEFINITIONS, TABLE_SCORER_DEFINITION_VERSIONS, SCORER_DEFINITIONS_SCHEMA, SCORER_DEFINITION_VERSIONS_SCHEMA, ScoresStorage, TABLE_SCORERS, SCORERS_SCHEMA, SkillsStorage, TABLE_SKILLS, TABLE_SKILL_VERSIONS, SKILLS_SCHEMA, SKILL_VERSIONS_SCHEMA, WorkflowsStorage, WorkspacesStorage, TABLE_WORKSPACES, TABLE_WORKSPACE_VERSIONS, WORKSPACES_SCHEMA, WORKSPACE_VERSIONS_SCHEMA, MastraCompositeStore, TABLE_FAVORITES, BackgroundTasksStorage, TABLE_BACKGROUND_TASKS, ChannelsStorage, TABLE_CHANNEL_INSTALLATIONS, TABLE_CHANNEL_CONFIG, FavoritesStorage, FAVORITES_SCHEMA, SchedulesStorage, TABLE_SCHEDULES, TABLE_SCHEDULE_TRIGGERS, ToolProviderConnectionsStorage, TABLE_TOOL_PROVIDER_CONNECTIONS, TOOL_PROVIDER_CONNECTIONS_SCHEMA, normalizeScheduleTarget } from '@mastra/core/storage';
|
|
3
3
|
import { createPool } from 'mysql2/promise';
|
|
4
4
|
import { parseSqlIdentifier } from '@mastra/core/utils';
|
|
5
5
|
import { randomUUID } from 'crypto';
|
|
@@ -5214,6 +5214,22 @@ function parseJSON3(value) {
|
|
|
5214
5214
|
return null;
|
|
5215
5215
|
}
|
|
5216
5216
|
}
|
|
5217
|
+
function addMySQLMessageMetadataFilter(conditions, params, metadataFilter) {
|
|
5218
|
+
if (!metadataFilter) return;
|
|
5219
|
+
for (const [key, value] of Object.entries(metadataFilter)) {
|
|
5220
|
+
const path = `$.metadata.${key}`;
|
|
5221
|
+
conditions.push(`JSON_VALID(${quoteIdentifier("content", "column name")})`);
|
|
5222
|
+
conditions.push(`JSON_CONTAINS_PATH(${quoteIdentifier("content", "column name")}, 'one', ?)`);
|
|
5223
|
+
params.push(path);
|
|
5224
|
+
if (value === null) {
|
|
5225
|
+
conditions.push(`JSON_TYPE(JSON_EXTRACT(${quoteIdentifier("content", "column name")}, ?)) = 'NULL'`);
|
|
5226
|
+
params.push(path);
|
|
5227
|
+
} else {
|
|
5228
|
+
conditions.push(`JSON_EXTRACT(${quoteIdentifier("content", "column name")}, ?) = CAST(? AS JSON)`);
|
|
5229
|
+
params.push(path, JSON.stringify(value));
|
|
5230
|
+
}
|
|
5231
|
+
}
|
|
5232
|
+
}
|
|
5217
5233
|
var MemoryMySQL = class _MemoryMySQL extends MemoryStorage {
|
|
5218
5234
|
supportsObservationalMemory = true;
|
|
5219
5235
|
pool;
|
|
@@ -6069,6 +6085,7 @@ var MemoryMySQL = class _MemoryMySQL extends MemoryStorage {
|
|
|
6069
6085
|
const { threadId, resourceId, filter, orderBy, page = 0, perPage: perPageInput } = args;
|
|
6070
6086
|
const selectBy = args.selectBy;
|
|
6071
6087
|
const include = args.include ?? selectBy?.include;
|
|
6088
|
+
const metadataFilter = validateStorageMetadataFilter(filter?.metadata);
|
|
6072
6089
|
const threadIds = Array.isArray(threadId) ? threadId : [threadId];
|
|
6073
6090
|
if (threadIds.length === 0 || threadIds.some((id) => !id.trim())) {
|
|
6074
6091
|
throw emitValidationError("threadId must be a non-empty string or array of non-empty strings");
|
|
@@ -6115,6 +6132,7 @@ var MemoryMySQL = class _MemoryMySQL extends MemoryStorage {
|
|
|
6115
6132
|
conditions.push(`${quoteIdentifier("createdAt", "column name")} ${endOp} ?`);
|
|
6116
6133
|
params.push(transformToSqlValue(filter.dateRange.end));
|
|
6117
6134
|
}
|
|
6135
|
+
addMySQLMessageMetadataFilter(conditions, params, metadataFilter);
|
|
6118
6136
|
if (selectBy?.vectorSearchString) {
|
|
6119
6137
|
conditions.push(`${quoteIdentifier("content", "column name")} LIKE ?`);
|
|
6120
6138
|
params.push(`%${selectBy.vectorSearchString}%`);
|
|
@@ -6196,7 +6214,7 @@ var MemoryMySQL = class _MemoryMySQL extends MemoryStorage {
|
|
|
6196
6214
|
const mainThreadMessageCount = messages.filter(
|
|
6197
6215
|
(msg) => msg.threadId !== void 0 && threadIdSet.has(msg.threadId)
|
|
6198
6216
|
).length;
|
|
6199
|
-
const hasMore =
|
|
6217
|
+
const hasMore = metadataFilter || !include?.length || mainThreadMessageCount < total ? baseHasMore : false;
|
|
6200
6218
|
return {
|
|
6201
6219
|
messages,
|
|
6202
6220
|
total,
|
|
@@ -6225,6 +6243,7 @@ var MemoryMySQL = class _MemoryMySQL extends MemoryStorage {
|
|
|
6225
6243
|
}
|
|
6226
6244
|
async listMessagesByResourceId(args) {
|
|
6227
6245
|
const { resourceId, include, filter, perPage: perPageInput, page = 0, orderBy } = args;
|
|
6246
|
+
const metadataFilter = validateStorageMetadataFilter(filter?.metadata);
|
|
6228
6247
|
if (!resourceId || typeof resourceId !== "string" || resourceId.trim().length === 0) {
|
|
6229
6248
|
throw new MastraError(
|
|
6230
6249
|
{
|
|
@@ -6265,6 +6284,7 @@ var MemoryMySQL = class _MemoryMySQL extends MemoryStorage {
|
|
|
6265
6284
|
conditions.push(`${quoteIdentifier("createdAt", "column name")} ${endOp} ?`);
|
|
6266
6285
|
params.push(transformToSqlValue(filter.dateRange.end));
|
|
6267
6286
|
}
|
|
6287
|
+
addMySQLMessageMetadataFilter(conditions, params, metadataFilter);
|
|
6268
6288
|
const whereSql = `WHERE ${conditions.join(" AND ")}`;
|
|
6269
6289
|
const tableName = formatTableName(TABLE_MESSAGES);
|
|
6270
6290
|
const [countRows] = await this.pool.execute(
|