@mastra/pg 1.10.1-alpha.0 → 1.10.1-alpha.2
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 +30 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-memory-semantic-recall.md +68 -6
- package/dist/docs/references/reference-storage-composite.md +1 -1
- package/dist/docs/references/reference-storage-dynamodb.md +1 -1
- package/dist/docs/references/reference-storage-postgresql.md +1 -1
- package/dist/index.cjs +187 -244
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +187 -244
- package/dist/index.js.map +1 -1
- package/dist/storage/domains/agents/index.d.ts +0 -1
- package/dist/storage/domains/agents/index.d.ts.map +1 -1
- package/dist/storage/domains/mcp-clients/index.d.ts +0 -1
- package/dist/storage/domains/mcp-clients/index.d.ts.map +1 -1
- package/dist/storage/domains/mcp-servers/index.d.ts +0 -1
- package/dist/storage/domains/mcp-servers/index.d.ts.map +1 -1
- package/dist/storage/domains/memory/index.d.ts +2 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/dist/storage/domains/prompt-blocks/index.d.ts +0 -1
- package/dist/storage/domains/prompt-blocks/index.d.ts.map +1 -1
- package/dist/storage/domains/scorer-definitions/index.d.ts +0 -1
- package/dist/storage/domains/scorer-definitions/index.d.ts.map +1 -1
- package/dist/storage/domains/skills/index.d.ts +0 -1
- package/dist/storage/domains/skills/index.d.ts.map +1 -1
- package/dist/storage/domains/utils.d.ts +18 -0
- package/dist/storage/domains/utils.d.ts.map +1 -1
- package/dist/storage/domains/workspaces/index.d.ts +0 -1
- package/dist/storage/domains/workspaces/index.d.ts.map +1 -1
- package/dist/storage/test-utils.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -2013,7 +2013,6 @@ var PoolAdapter = class {
|
|
|
2013
2013
|
constructor($pool) {
|
|
2014
2014
|
this.$pool = $pool;
|
|
2015
2015
|
}
|
|
2016
|
-
$pool;
|
|
2017
2016
|
connect() {
|
|
2018
2017
|
return this.$pool.connect();
|
|
2019
2018
|
}
|
|
@@ -2082,7 +2081,6 @@ var TransactionClient = class {
|
|
|
2082
2081
|
constructor(client) {
|
|
2083
2082
|
this.client = client;
|
|
2084
2083
|
}
|
|
2085
|
-
client;
|
|
2086
2084
|
async none(query, values) {
|
|
2087
2085
|
await this.client.query(query, values);
|
|
2088
2086
|
return null;
|
|
@@ -3426,6 +3424,15 @@ function getTableName2({ indexName, schemaName }) {
|
|
|
3426
3424
|
const quotedSchemaName = schemaName;
|
|
3427
3425
|
return quotedSchemaName ? `${quotedSchemaName}.${quotedIndexName}` : quotedIndexName;
|
|
3428
3426
|
}
|
|
3427
|
+
function parseJsonResilient(value, _fieldName) {
|
|
3428
|
+
if (value == null) return void 0;
|
|
3429
|
+
if (typeof value !== "string") return value;
|
|
3430
|
+
try {
|
|
3431
|
+
return JSON.parse(value);
|
|
3432
|
+
} catch {
|
|
3433
|
+
return value;
|
|
3434
|
+
}
|
|
3435
|
+
}
|
|
3429
3436
|
function transformFromSqlRow({
|
|
3430
3437
|
tableName,
|
|
3431
3438
|
sqlRow
|
|
@@ -3687,38 +3694,13 @@ var AgentsPG = class _AgentsPG extends AgentsStorage {
|
|
|
3687
3694
|
await this.#db.clearTable({ tableName: TABLE_AGENT_VERSIONS });
|
|
3688
3695
|
await this.#db.clearTable({ tableName: TABLE_AGENTS });
|
|
3689
3696
|
}
|
|
3690
|
-
parseJson(value, fieldName) {
|
|
3691
|
-
if (!value) return void 0;
|
|
3692
|
-
if (typeof value !== "string") return value;
|
|
3693
|
-
try {
|
|
3694
|
-
return JSON.parse(value);
|
|
3695
|
-
} catch (error) {
|
|
3696
|
-
if (error instanceof MastraError) throw error;
|
|
3697
|
-
const details = {
|
|
3698
|
-
value: value.length > 100 ? value.substring(0, 100) + "..." : value
|
|
3699
|
-
};
|
|
3700
|
-
if (fieldName) {
|
|
3701
|
-
details.field = fieldName;
|
|
3702
|
-
}
|
|
3703
|
-
throw new MastraError(
|
|
3704
|
-
{
|
|
3705
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
3706
|
-
domain: ErrorDomain.STORAGE,
|
|
3707
|
-
category: ErrorCategory.SYSTEM,
|
|
3708
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
3709
|
-
details
|
|
3710
|
-
},
|
|
3711
|
-
error
|
|
3712
|
-
);
|
|
3713
|
-
}
|
|
3714
|
-
}
|
|
3715
3697
|
parseRow(row) {
|
|
3716
3698
|
return {
|
|
3717
3699
|
id: row.id,
|
|
3718
3700
|
status: row.status,
|
|
3719
3701
|
activeVersionId: row.activeVersionId,
|
|
3720
3702
|
authorId: row.authorId,
|
|
3721
|
-
metadata:
|
|
3703
|
+
metadata: parseJsonResilient(row.metadata),
|
|
3722
3704
|
createdAt: row.createdAtZ || row.createdAt,
|
|
3723
3705
|
updatedAt: row.updatedAtZ || row.updatedAt
|
|
3724
3706
|
};
|
|
@@ -3947,7 +3929,14 @@ var AgentsPG = class _AgentsPG extends AgentsStorage {
|
|
|
3947
3929
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
3948
3930
|
[...queryParams, limitValue, offset]
|
|
3949
3931
|
);
|
|
3950
|
-
const agents = (dataResult || []).
|
|
3932
|
+
const agents = (dataResult || []).flatMap((row) => {
|
|
3933
|
+
try {
|
|
3934
|
+
return [this.parseRow(row)];
|
|
3935
|
+
} catch (err) {
|
|
3936
|
+
this.logger?.warn?.("[PG] Failed to map agent row, skipping", { id: row?.id, error: err });
|
|
3937
|
+
return [];
|
|
3938
|
+
}
|
|
3939
|
+
});
|
|
3951
3940
|
return {
|
|
3952
3941
|
agents,
|
|
3953
3942
|
total,
|
|
@@ -4135,7 +4124,14 @@ var AgentsPG = class _AgentsPG extends AgentsStorage {
|
|
|
4135
4124
|
`SELECT * FROM ${tableName} WHERE "agentId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
4136
4125
|
[agentId, limitValue, offset]
|
|
4137
4126
|
);
|
|
4138
|
-
const versions = (dataResult || []).
|
|
4127
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
4128
|
+
try {
|
|
4129
|
+
return [this.parseVersionRow(row)];
|
|
4130
|
+
} catch (err) {
|
|
4131
|
+
this.logger?.warn?.("[PG] Failed to map agent version row, skipping", { id: row?.id, error: err });
|
|
4132
|
+
return [];
|
|
4133
|
+
}
|
|
4134
|
+
});
|
|
4139
4135
|
return {
|
|
4140
4136
|
versions,
|
|
4141
4137
|
total,
|
|
@@ -4234,22 +4230,22 @@ var AgentsPG = class _AgentsPG extends AgentsStorage {
|
|
|
4234
4230
|
name: row.name,
|
|
4235
4231
|
description: row.description,
|
|
4236
4232
|
instructions: this.deserializeInstructions(row.instructions),
|
|
4237
|
-
model:
|
|
4238
|
-
tools:
|
|
4239
|
-
defaultOptions:
|
|
4240
|
-
workflows:
|
|
4241
|
-
agents:
|
|
4242
|
-
integrationTools:
|
|
4243
|
-
inputProcessors:
|
|
4244
|
-
outputProcessors:
|
|
4245
|
-
memory:
|
|
4246
|
-
scorers:
|
|
4247
|
-
mcpClients:
|
|
4248
|
-
requestContextSchema:
|
|
4249
|
-
workspace:
|
|
4250
|
-
skills:
|
|
4233
|
+
model: parseJsonResilient(row.model),
|
|
4234
|
+
tools: parseJsonResilient(row.tools),
|
|
4235
|
+
defaultOptions: parseJsonResilient(row.defaultOptions),
|
|
4236
|
+
workflows: parseJsonResilient(row.workflows),
|
|
4237
|
+
agents: parseJsonResilient(row.agents),
|
|
4238
|
+
integrationTools: parseJsonResilient(row.integrationTools),
|
|
4239
|
+
inputProcessors: parseJsonResilient(row.inputProcessors),
|
|
4240
|
+
outputProcessors: parseJsonResilient(row.outputProcessors),
|
|
4241
|
+
memory: parseJsonResilient(row.memory),
|
|
4242
|
+
scorers: parseJsonResilient(row.scorers),
|
|
4243
|
+
mcpClients: parseJsonResilient(row.mcpClients),
|
|
4244
|
+
requestContextSchema: parseJsonResilient(row.requestContextSchema),
|
|
4245
|
+
workspace: parseJsonResilient(row.workspace),
|
|
4246
|
+
skills: parseJsonResilient(row.skills),
|
|
4251
4247
|
skillsFormat: row.skillsFormat,
|
|
4252
|
-
changedFields:
|
|
4248
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
4253
4249
|
changeMessage: row.changeMessage,
|
|
4254
4250
|
createdAt: row.createdAtZ || row.createdAt
|
|
4255
4251
|
};
|
|
@@ -6689,7 +6685,14 @@ var MCPClientsPG = class _MCPClientsPG extends MCPClientsStorage {
|
|
|
6689
6685
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
6690
6686
|
[...queryParams, limitValue, offset]
|
|
6691
6687
|
);
|
|
6692
|
-
const mcpClients = (dataResult || []).
|
|
6688
|
+
const mcpClients = (dataResult || []).flatMap((row) => {
|
|
6689
|
+
try {
|
|
6690
|
+
return [this.parseMCPClientRow(row)];
|
|
6691
|
+
} catch (err) {
|
|
6692
|
+
this.logger?.warn?.("[PG] Failed to map mcp client row, skipping", { id: row?.id, error: err });
|
|
6693
|
+
return [];
|
|
6694
|
+
}
|
|
6695
|
+
});
|
|
6693
6696
|
return {
|
|
6694
6697
|
mcpClients,
|
|
6695
6698
|
total,
|
|
@@ -6875,7 +6878,14 @@ var MCPClientsPG = class _MCPClientsPG extends MCPClientsStorage {
|
|
|
6875
6878
|
`SELECT * FROM ${tableName} WHERE "mcpClientId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
6876
6879
|
[mcpClientId, limitValue, offset]
|
|
6877
6880
|
);
|
|
6878
|
-
const versions = (dataResult || []).
|
|
6881
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
6882
|
+
try {
|
|
6883
|
+
return [this.parseVersionRow(row)];
|
|
6884
|
+
} catch (err) {
|
|
6885
|
+
this.logger?.warn?.("[PG] Failed to map mcp client version row, skipping", { id: row?.id, error: err });
|
|
6886
|
+
return [];
|
|
6887
|
+
}
|
|
6888
|
+
});
|
|
6879
6889
|
return {
|
|
6880
6890
|
versions,
|
|
6881
6891
|
total,
|
|
@@ -6962,38 +6972,13 @@ var MCPClientsPG = class _MCPClientsPG extends MCPClientsStorage {
|
|
|
6962
6972
|
// ==========================================================================
|
|
6963
6973
|
// Private Helper Methods
|
|
6964
6974
|
// ==========================================================================
|
|
6965
|
-
parseJson(value, fieldName) {
|
|
6966
|
-
if (!value) return void 0;
|
|
6967
|
-
if (typeof value !== "string") return value;
|
|
6968
|
-
try {
|
|
6969
|
-
return JSON.parse(value);
|
|
6970
|
-
} catch (error) {
|
|
6971
|
-
if (error instanceof MastraError) throw error;
|
|
6972
|
-
const details = {
|
|
6973
|
-
value: value.length > 100 ? value.substring(0, 100) + "..." : value
|
|
6974
|
-
};
|
|
6975
|
-
if (fieldName) {
|
|
6976
|
-
details.field = fieldName;
|
|
6977
|
-
}
|
|
6978
|
-
throw new MastraError(
|
|
6979
|
-
{
|
|
6980
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
6981
|
-
domain: ErrorDomain.STORAGE,
|
|
6982
|
-
category: ErrorCategory.SYSTEM,
|
|
6983
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
6984
|
-
details
|
|
6985
|
-
},
|
|
6986
|
-
error
|
|
6987
|
-
);
|
|
6988
|
-
}
|
|
6989
|
-
}
|
|
6990
6975
|
parseMCPClientRow(row) {
|
|
6991
6976
|
return {
|
|
6992
6977
|
id: row.id,
|
|
6993
6978
|
status: row.status,
|
|
6994
6979
|
activeVersionId: row.activeVersionId,
|
|
6995
6980
|
authorId: row.authorId,
|
|
6996
|
-
metadata:
|
|
6981
|
+
metadata: parseJsonResilient(row.metadata),
|
|
6997
6982
|
createdAt: new Date(row.createdAtZ || row.createdAt),
|
|
6998
6983
|
updatedAt: new Date(row.updatedAtZ || row.updatedAt)
|
|
6999
6984
|
};
|
|
@@ -7005,8 +6990,8 @@ var MCPClientsPG = class _MCPClientsPG extends MCPClientsStorage {
|
|
|
7005
6990
|
versionNumber: row.versionNumber,
|
|
7006
6991
|
name: row.name,
|
|
7007
6992
|
description: row.description,
|
|
7008
|
-
servers:
|
|
7009
|
-
changedFields:
|
|
6993
|
+
servers: parseJsonResilient(row.servers),
|
|
6994
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
7010
6995
|
changeMessage: row.changeMessage,
|
|
7011
6996
|
createdAt: new Date(row.createdAtZ || row.createdAt)
|
|
7012
6997
|
};
|
|
@@ -7313,7 +7298,14 @@ var MCPServersPG = class _MCPServersPG extends MCPServersStorage {
|
|
|
7313
7298
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
7314
7299
|
[...queryParams, limitValue, offset]
|
|
7315
7300
|
);
|
|
7316
|
-
const mcpServers = (dataResult || []).
|
|
7301
|
+
const mcpServers = (dataResult || []).flatMap((row) => {
|
|
7302
|
+
try {
|
|
7303
|
+
return [this.parseMCPServerRow(row)];
|
|
7304
|
+
} catch (err) {
|
|
7305
|
+
this.logger?.warn?.("[PG] Failed to map mcp server row, skipping", { id: row?.id, error: err });
|
|
7306
|
+
return [];
|
|
7307
|
+
}
|
|
7308
|
+
});
|
|
7317
7309
|
return {
|
|
7318
7310
|
mcpServers,
|
|
7319
7311
|
total,
|
|
@@ -7509,7 +7501,14 @@ var MCPServersPG = class _MCPServersPG extends MCPServersStorage {
|
|
|
7509
7501
|
`SELECT * FROM ${tableName} WHERE "mcpServerId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
7510
7502
|
[mcpServerId, limitValue, offset]
|
|
7511
7503
|
);
|
|
7512
|
-
const versions = (dataResult || []).
|
|
7504
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
7505
|
+
try {
|
|
7506
|
+
return [this.parseVersionRow(row)];
|
|
7507
|
+
} catch (err) {
|
|
7508
|
+
this.logger?.warn?.("[PG] Failed to map mcp server version row, skipping", { id: row?.id, error: err });
|
|
7509
|
+
return [];
|
|
7510
|
+
}
|
|
7511
|
+
});
|
|
7513
7512
|
return {
|
|
7514
7513
|
versions,
|
|
7515
7514
|
total,
|
|
@@ -7596,38 +7595,13 @@ var MCPServersPG = class _MCPServersPG extends MCPServersStorage {
|
|
|
7596
7595
|
// ==========================================================================
|
|
7597
7596
|
// Private Helper Methods
|
|
7598
7597
|
// ==========================================================================
|
|
7599
|
-
parseJson(value, fieldName) {
|
|
7600
|
-
if (!value) return void 0;
|
|
7601
|
-
if (typeof value !== "string") return value;
|
|
7602
|
-
try {
|
|
7603
|
-
return JSON.parse(value);
|
|
7604
|
-
} catch (error) {
|
|
7605
|
-
if (error instanceof MastraError) throw error;
|
|
7606
|
-
const details = {
|
|
7607
|
-
valueLength: String(value.length)
|
|
7608
|
-
};
|
|
7609
|
-
if (fieldName) {
|
|
7610
|
-
details.field = fieldName;
|
|
7611
|
-
}
|
|
7612
|
-
throw new MastraError(
|
|
7613
|
-
{
|
|
7614
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
7615
|
-
domain: ErrorDomain.STORAGE,
|
|
7616
|
-
category: ErrorCategory.SYSTEM,
|
|
7617
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
7618
|
-
details
|
|
7619
|
-
},
|
|
7620
|
-
error
|
|
7621
|
-
);
|
|
7622
|
-
}
|
|
7623
|
-
}
|
|
7624
7598
|
parseMCPServerRow(row) {
|
|
7625
7599
|
return {
|
|
7626
7600
|
id: row.id,
|
|
7627
7601
|
status: row.status,
|
|
7628
7602
|
activeVersionId: row.activeVersionId,
|
|
7629
7603
|
authorId: row.authorId,
|
|
7630
|
-
metadata:
|
|
7604
|
+
metadata: parseJsonResilient(row.metadata),
|
|
7631
7605
|
createdAt: new Date(row.createdAtZ || row.createdAt),
|
|
7632
7606
|
updatedAt: new Date(row.updatedAtZ || row.updatedAt)
|
|
7633
7607
|
};
|
|
@@ -7641,14 +7615,14 @@ var MCPServersPG = class _MCPServersPG extends MCPServersStorage {
|
|
|
7641
7615
|
version: row.version,
|
|
7642
7616
|
description: row.description,
|
|
7643
7617
|
instructions: row.instructions,
|
|
7644
|
-
repository:
|
|
7618
|
+
repository: parseJsonResilient(row.repository),
|
|
7645
7619
|
releaseDate: row.releaseDate,
|
|
7646
7620
|
isLatest: row.isLatest,
|
|
7647
7621
|
packageCanonical: row.packageCanonical,
|
|
7648
|
-
tools:
|
|
7649
|
-
agents:
|
|
7650
|
-
workflows:
|
|
7651
|
-
changedFields:
|
|
7622
|
+
tools: parseJsonResilient(row.tools),
|
|
7623
|
+
agents: parseJsonResilient(row.agents),
|
|
7624
|
+
workflows: parseJsonResilient(row.workflows),
|
|
7625
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
7652
7626
|
changeMessage: row.changeMessage,
|
|
7653
7627
|
createdAt: new Date(row.createdAtZ || row.createdAt)
|
|
7654
7628
|
};
|
|
@@ -7855,12 +7829,21 @@ var MemoryPG = class _MemoryPG extends MemoryStorage {
|
|
|
7855
7829
|
resourceId: row.resourceId
|
|
7856
7830
|
};
|
|
7857
7831
|
}
|
|
7858
|
-
async getThreadById({
|
|
7832
|
+
async getThreadById({
|
|
7833
|
+
threadId,
|
|
7834
|
+
resourceId
|
|
7835
|
+
}) {
|
|
7859
7836
|
try {
|
|
7860
7837
|
const tableName = getTableName4({ indexName: TABLE_THREADS, schemaName: getSchemaName4(this.#schema) });
|
|
7838
|
+
let query = `SELECT * FROM ${tableName} WHERE id = $1`;
|
|
7839
|
+
let params = [threadId];
|
|
7840
|
+
if (resourceId !== void 0) {
|
|
7841
|
+
query += ` AND "resourceId" = $2`;
|
|
7842
|
+
params.push(resourceId);
|
|
7843
|
+
}
|
|
7861
7844
|
const thread = await this.#db.client.oneOrNone(
|
|
7862
|
-
|
|
7863
|
-
|
|
7845
|
+
query,
|
|
7846
|
+
params
|
|
7864
7847
|
);
|
|
7865
7848
|
if (!thread) {
|
|
7866
7849
|
return null;
|
|
@@ -11048,7 +11031,14 @@ var PromptBlocksPG = class _PromptBlocksPG extends PromptBlocksStorage {
|
|
|
11048
11031
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
11049
11032
|
[...queryParams, limitValue, offset]
|
|
11050
11033
|
);
|
|
11051
|
-
const promptBlocks = (dataResult || []).
|
|
11034
|
+
const promptBlocks = (dataResult || []).flatMap((row) => {
|
|
11035
|
+
try {
|
|
11036
|
+
return [this.parseBlockRow(row)];
|
|
11037
|
+
} catch (err) {
|
|
11038
|
+
this.logger?.warn?.("[PG] Failed to map prompt block row, skipping", { id: row?.id, error: err });
|
|
11039
|
+
return [];
|
|
11040
|
+
}
|
|
11041
|
+
});
|
|
11052
11042
|
return {
|
|
11053
11043
|
promptBlocks,
|
|
11054
11044
|
total,
|
|
@@ -11235,7 +11225,14 @@ var PromptBlocksPG = class _PromptBlocksPG extends PromptBlocksStorage {
|
|
|
11235
11225
|
`SELECT * FROM ${tableName} WHERE "blockId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
11236
11226
|
[blockId, limitValue, offset]
|
|
11237
11227
|
);
|
|
11238
|
-
const versions = (dataResult || []).
|
|
11228
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
11229
|
+
try {
|
|
11230
|
+
return [this.parseVersionRow(row)];
|
|
11231
|
+
} catch (err) {
|
|
11232
|
+
this.logger?.warn?.("[PG] Failed to map prompt block version row, skipping", { id: row?.id, error: err });
|
|
11233
|
+
return [];
|
|
11234
|
+
}
|
|
11235
|
+
});
|
|
11239
11236
|
return {
|
|
11240
11237
|
versions,
|
|
11241
11238
|
total,
|
|
@@ -11322,37 +11319,13 @@ var PromptBlocksPG = class _PromptBlocksPG extends PromptBlocksStorage {
|
|
|
11322
11319
|
// ==========================================================================
|
|
11323
11320
|
// Private Helper Methods
|
|
11324
11321
|
// ==========================================================================
|
|
11325
|
-
parseJson(value, fieldName) {
|
|
11326
|
-
if (!value) return void 0;
|
|
11327
|
-
if (typeof value !== "string") return value;
|
|
11328
|
-
try {
|
|
11329
|
-
return JSON.parse(value);
|
|
11330
|
-
} catch (error) {
|
|
11331
|
-
const details = {
|
|
11332
|
-
value: value.length > 100 ? value.substring(0, 100) + "..." : value
|
|
11333
|
-
};
|
|
11334
|
-
if (fieldName) {
|
|
11335
|
-
details.field = fieldName;
|
|
11336
|
-
}
|
|
11337
|
-
throw new MastraError(
|
|
11338
|
-
{
|
|
11339
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
11340
|
-
domain: ErrorDomain.STORAGE,
|
|
11341
|
-
category: ErrorCategory.SYSTEM,
|
|
11342
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
11343
|
-
details
|
|
11344
|
-
},
|
|
11345
|
-
error
|
|
11346
|
-
);
|
|
11347
|
-
}
|
|
11348
|
-
}
|
|
11349
11322
|
parseBlockRow(row) {
|
|
11350
11323
|
return {
|
|
11351
11324
|
id: row.id,
|
|
11352
11325
|
status: row.status,
|
|
11353
11326
|
activeVersionId: row.activeVersionId,
|
|
11354
11327
|
authorId: row.authorId,
|
|
11355
|
-
metadata:
|
|
11328
|
+
metadata: parseJsonResilient(row.metadata),
|
|
11356
11329
|
createdAt: new Date(row.createdAtZ || row.createdAt),
|
|
11357
11330
|
updatedAt: new Date(row.updatedAtZ || row.updatedAt)
|
|
11358
11331
|
};
|
|
@@ -11365,9 +11338,9 @@ var PromptBlocksPG = class _PromptBlocksPG extends PromptBlocksStorage {
|
|
|
11365
11338
|
name: row.name,
|
|
11366
11339
|
description: row.description,
|
|
11367
11340
|
content: row.content,
|
|
11368
|
-
rules:
|
|
11369
|
-
requestContextSchema:
|
|
11370
|
-
changedFields:
|
|
11341
|
+
rules: parseJsonResilient(row.rules),
|
|
11342
|
+
requestContextSchema: parseJsonResilient(row.requestContextSchema),
|
|
11343
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
11371
11344
|
changeMessage: row.changeMessage,
|
|
11372
11345
|
createdAt: new Date(row.createdAtZ || row.createdAt)
|
|
11373
11346
|
};
|
|
@@ -11984,7 +11957,14 @@ var ScorerDefinitionsPG = class _ScorerDefinitionsPG extends ScorerDefinitionsSt
|
|
|
11984
11957
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
11985
11958
|
[...queryParams, limitValue, offset]
|
|
11986
11959
|
);
|
|
11987
|
-
const scorerDefinitions = (dataResult || []).
|
|
11960
|
+
const scorerDefinitions = (dataResult || []).flatMap((row) => {
|
|
11961
|
+
try {
|
|
11962
|
+
return [this.parseScorerRow(row)];
|
|
11963
|
+
} catch (err) {
|
|
11964
|
+
this.logger?.warn?.("[PG] Failed to map scorer definition row, skipping", { id: row?.id, error: err });
|
|
11965
|
+
return [];
|
|
11966
|
+
}
|
|
11967
|
+
});
|
|
11988
11968
|
return {
|
|
11989
11969
|
scorerDefinitions,
|
|
11990
11970
|
total,
|
|
@@ -12175,7 +12155,17 @@ var ScorerDefinitionsPG = class _ScorerDefinitionsPG extends ScorerDefinitionsSt
|
|
|
12175
12155
|
`SELECT * FROM ${tableName} WHERE "scorerDefinitionId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
12176
12156
|
[scorerDefinitionId, limitValue, offset]
|
|
12177
12157
|
);
|
|
12178
|
-
const versions = (dataResult || []).
|
|
12158
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
12159
|
+
try {
|
|
12160
|
+
return [this.parseVersionRow(row)];
|
|
12161
|
+
} catch (err) {
|
|
12162
|
+
this.logger?.warn?.("[PG] Failed to map scorer definition version row, skipping", {
|
|
12163
|
+
id: row?.id,
|
|
12164
|
+
error: err
|
|
12165
|
+
});
|
|
12166
|
+
return [];
|
|
12167
|
+
}
|
|
12168
|
+
});
|
|
12179
12169
|
return {
|
|
12180
12170
|
versions,
|
|
12181
12171
|
total,
|
|
@@ -12263,38 +12253,13 @@ var ScorerDefinitionsPG = class _ScorerDefinitionsPG extends ScorerDefinitionsSt
|
|
|
12263
12253
|
// ==========================================================================
|
|
12264
12254
|
// Private Helper Methods
|
|
12265
12255
|
// ==========================================================================
|
|
12266
|
-
parseJson(value, fieldName) {
|
|
12267
|
-
if (!value) return void 0;
|
|
12268
|
-
if (typeof value !== "string") return value;
|
|
12269
|
-
try {
|
|
12270
|
-
return JSON.parse(value);
|
|
12271
|
-
} catch (error) {
|
|
12272
|
-
if (error instanceof MastraError) throw error;
|
|
12273
|
-
const details = {
|
|
12274
|
-
value: value.length > 100 ? value.substring(0, 100) + "..." : value
|
|
12275
|
-
};
|
|
12276
|
-
if (fieldName) {
|
|
12277
|
-
details.field = fieldName;
|
|
12278
|
-
}
|
|
12279
|
-
throw new MastraError(
|
|
12280
|
-
{
|
|
12281
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
12282
|
-
domain: ErrorDomain.STORAGE,
|
|
12283
|
-
category: ErrorCategory.SYSTEM,
|
|
12284
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
12285
|
-
details
|
|
12286
|
-
},
|
|
12287
|
-
error
|
|
12288
|
-
);
|
|
12289
|
-
}
|
|
12290
|
-
}
|
|
12291
12256
|
parseScorerRow(row) {
|
|
12292
12257
|
return {
|
|
12293
12258
|
id: row.id,
|
|
12294
12259
|
status: row.status,
|
|
12295
12260
|
activeVersionId: row.activeVersionId,
|
|
12296
12261
|
authorId: row.authorId,
|
|
12297
|
-
metadata:
|
|
12262
|
+
metadata: parseJsonResilient(row.metadata),
|
|
12298
12263
|
createdAt: new Date(row.createdAtZ || row.createdAt),
|
|
12299
12264
|
updatedAt: new Date(row.updatedAtZ || row.updatedAt)
|
|
12300
12265
|
};
|
|
@@ -12307,12 +12272,12 @@ var ScorerDefinitionsPG = class _ScorerDefinitionsPG extends ScorerDefinitionsSt
|
|
|
12307
12272
|
name: row.name,
|
|
12308
12273
|
description: row.description,
|
|
12309
12274
|
type: row.type,
|
|
12310
|
-
model:
|
|
12275
|
+
model: parseJsonResilient(row.model),
|
|
12311
12276
|
instructions: row.instructions,
|
|
12312
|
-
scoreRange:
|
|
12313
|
-
presetConfig:
|
|
12314
|
-
defaultSampling:
|
|
12315
|
-
changedFields:
|
|
12277
|
+
scoreRange: parseJsonResilient(row.scoreRange),
|
|
12278
|
+
presetConfig: parseJsonResilient(row.presetConfig),
|
|
12279
|
+
defaultSampling: parseJsonResilient(row.defaultSampling),
|
|
12280
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
12316
12281
|
changeMessage: row.changeMessage,
|
|
12317
12282
|
createdAt: new Date(row.createdAtZ || row.createdAt)
|
|
12318
12283
|
};
|
|
@@ -13054,7 +13019,14 @@ var SkillsPG = class _SkillsPG extends SkillsStorage {
|
|
|
13054
13019
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
13055
13020
|
[...queryParams, limitValue, offset]
|
|
13056
13021
|
);
|
|
13057
|
-
const skills = (dataResult || []).
|
|
13022
|
+
const skills = (dataResult || []).flatMap((row) => {
|
|
13023
|
+
try {
|
|
13024
|
+
return [this.parseSkillRow(row)];
|
|
13025
|
+
} catch (err) {
|
|
13026
|
+
this.logger?.warn?.("[PG] Failed to map skill row, skipping", { id: row?.id, error: err });
|
|
13027
|
+
return [];
|
|
13028
|
+
}
|
|
13029
|
+
});
|
|
13058
13030
|
return {
|
|
13059
13031
|
skills,
|
|
13060
13032
|
total,
|
|
@@ -13248,7 +13220,14 @@ var SkillsPG = class _SkillsPG extends SkillsStorage {
|
|
|
13248
13220
|
`SELECT * FROM ${tableName} WHERE "skillId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
13249
13221
|
[skillId, limitValue, offset]
|
|
13250
13222
|
);
|
|
13251
|
-
const versions = (dataResult || []).
|
|
13223
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
13224
|
+
try {
|
|
13225
|
+
return [this.parseVersionRow(row)];
|
|
13226
|
+
} catch (err) {
|
|
13227
|
+
this.logger?.warn?.("[PG] Failed to map skill version row, skipping", { id: row?.id, error: err });
|
|
13228
|
+
return [];
|
|
13229
|
+
}
|
|
13230
|
+
});
|
|
13252
13231
|
return {
|
|
13253
13232
|
versions,
|
|
13254
13233
|
total,
|
|
@@ -13335,31 +13314,6 @@ var SkillsPG = class _SkillsPG extends SkillsStorage {
|
|
|
13335
13314
|
// ==========================================================================
|
|
13336
13315
|
// Private Helper Methods
|
|
13337
13316
|
// ==========================================================================
|
|
13338
|
-
parseJson(value, fieldName) {
|
|
13339
|
-
if (!value) return void 0;
|
|
13340
|
-
if (typeof value !== "string") return value;
|
|
13341
|
-
try {
|
|
13342
|
-
return JSON.parse(value);
|
|
13343
|
-
} catch (error) {
|
|
13344
|
-
if (error instanceof MastraError) throw error;
|
|
13345
|
-
const details = {
|
|
13346
|
-
value: value.length > 100 ? value.substring(0, 100) + "..." : value
|
|
13347
|
-
};
|
|
13348
|
-
if (fieldName) {
|
|
13349
|
-
details.field = fieldName;
|
|
13350
|
-
}
|
|
13351
|
-
throw new MastraError(
|
|
13352
|
-
{
|
|
13353
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
13354
|
-
domain: ErrorDomain.STORAGE,
|
|
13355
|
-
category: ErrorCategory.SYSTEM,
|
|
13356
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
13357
|
-
details
|
|
13358
|
-
},
|
|
13359
|
-
error
|
|
13360
|
-
);
|
|
13361
|
-
}
|
|
13362
|
-
}
|
|
13363
13317
|
parseSkillRow(row) {
|
|
13364
13318
|
return {
|
|
13365
13319
|
id: row.id,
|
|
@@ -13379,14 +13333,14 @@ var SkillsPG = class _SkillsPG extends SkillsStorage {
|
|
|
13379
13333
|
description: row.description,
|
|
13380
13334
|
instructions: row.instructions,
|
|
13381
13335
|
license: row.license,
|
|
13382
|
-
compatibility:
|
|
13383
|
-
source:
|
|
13384
|
-
references:
|
|
13385
|
-
scripts:
|
|
13386
|
-
assets:
|
|
13387
|
-
metadata:
|
|
13388
|
-
tree:
|
|
13389
|
-
changedFields:
|
|
13336
|
+
compatibility: parseJsonResilient(row.compatibility),
|
|
13337
|
+
source: parseJsonResilient(row.source),
|
|
13338
|
+
references: parseJsonResilient(row.references),
|
|
13339
|
+
scripts: parseJsonResilient(row.scripts),
|
|
13340
|
+
assets: parseJsonResilient(row.assets),
|
|
13341
|
+
metadata: parseJsonResilient(row.metadata),
|
|
13342
|
+
tree: parseJsonResilient(row.tree),
|
|
13343
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
13390
13344
|
changeMessage: row.changeMessage,
|
|
13391
13345
|
createdAt: new Date(row.createdAtZ || row.createdAt)
|
|
13392
13346
|
};
|
|
@@ -14152,7 +14106,14 @@ var WorkspacesPG = class _WorkspacesPG extends WorkspacesStorage {
|
|
|
14152
14106
|
`SELECT * FROM ${tableName} ${whereClause} ORDER BY "${field}" ${direction} LIMIT $${paramIdx++} OFFSET $${paramIdx++}`,
|
|
14153
14107
|
[...queryParams, limitValue, offset]
|
|
14154
14108
|
);
|
|
14155
|
-
const workspaces = (dataResult || []).
|
|
14109
|
+
const workspaces = (dataResult || []).flatMap((row) => {
|
|
14110
|
+
try {
|
|
14111
|
+
return [this.parseWorkspaceRow(row)];
|
|
14112
|
+
} catch (err) {
|
|
14113
|
+
this.logger?.warn?.("[PG] Failed to map workspace row, skipping", { id: row?.id, error: err });
|
|
14114
|
+
return [];
|
|
14115
|
+
}
|
|
14116
|
+
});
|
|
14156
14117
|
return {
|
|
14157
14118
|
workspaces,
|
|
14158
14119
|
total,
|
|
@@ -14346,7 +14307,14 @@ var WorkspacesPG = class _WorkspacesPG extends WorkspacesStorage {
|
|
|
14346
14307
|
`SELECT * FROM ${tableName} WHERE "workspaceId" = $1 ORDER BY "${field}" ${direction} LIMIT $2 OFFSET $3`,
|
|
14347
14308
|
[workspaceId, limitValue, offset]
|
|
14348
14309
|
);
|
|
14349
|
-
const versions = (dataResult || []).
|
|
14310
|
+
const versions = (dataResult || []).flatMap((row) => {
|
|
14311
|
+
try {
|
|
14312
|
+
return [this.parseVersionRow(row)];
|
|
14313
|
+
} catch (err) {
|
|
14314
|
+
this.logger?.warn?.("[PG] Failed to map workspace version row, skipping", { id: row?.id, error: err });
|
|
14315
|
+
return [];
|
|
14316
|
+
}
|
|
14317
|
+
});
|
|
14350
14318
|
return {
|
|
14351
14319
|
versions,
|
|
14352
14320
|
total,
|
|
@@ -14433,38 +14401,13 @@ var WorkspacesPG = class _WorkspacesPG extends WorkspacesStorage {
|
|
|
14433
14401
|
// ==========================================================================
|
|
14434
14402
|
// Private Helper Methods
|
|
14435
14403
|
// ==========================================================================
|
|
14436
|
-
parseJson(value, fieldName) {
|
|
14437
|
-
if (!value) return void 0;
|
|
14438
|
-
if (typeof value !== "string") return value;
|
|
14439
|
-
try {
|
|
14440
|
-
return JSON.parse(value);
|
|
14441
|
-
} catch (error) {
|
|
14442
|
-
if (error instanceof MastraError) throw error;
|
|
14443
|
-
const details = {
|
|
14444
|
-
value: value.length > 100 ? value.substring(0, 100) + "..." : value
|
|
14445
|
-
};
|
|
14446
|
-
if (fieldName) {
|
|
14447
|
-
details.field = fieldName;
|
|
14448
|
-
}
|
|
14449
|
-
throw new MastraError(
|
|
14450
|
-
{
|
|
14451
|
-
id: createStorageErrorId("PG", "PARSE_JSON", "INVALID_JSON"),
|
|
14452
|
-
domain: ErrorDomain.STORAGE,
|
|
14453
|
-
category: ErrorCategory.SYSTEM,
|
|
14454
|
-
text: `Failed to parse JSON${fieldName ? ` for field "${fieldName}"` : ""}: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
14455
|
-
details
|
|
14456
|
-
},
|
|
14457
|
-
error
|
|
14458
|
-
);
|
|
14459
|
-
}
|
|
14460
|
-
}
|
|
14461
14404
|
parseWorkspaceRow(row) {
|
|
14462
14405
|
return {
|
|
14463
14406
|
id: row.id,
|
|
14464
14407
|
status: row.status,
|
|
14465
14408
|
activeVersionId: row.activeVersionId,
|
|
14466
14409
|
authorId: row.authorId,
|
|
14467
|
-
metadata:
|
|
14410
|
+
metadata: parseJsonResilient(row.metadata),
|
|
14468
14411
|
createdAt: new Date(row.createdAtZ || row.createdAt),
|
|
14469
14412
|
updatedAt: new Date(row.updatedAtZ || row.updatedAt)
|
|
14470
14413
|
};
|
|
@@ -14476,15 +14419,15 @@ var WorkspacesPG = class _WorkspacesPG extends WorkspacesStorage {
|
|
|
14476
14419
|
versionNumber: row.versionNumber,
|
|
14477
14420
|
name: row.name,
|
|
14478
14421
|
description: row.description,
|
|
14479
|
-
filesystem:
|
|
14480
|
-
sandbox:
|
|
14481
|
-
mounts:
|
|
14482
|
-
search:
|
|
14483
|
-
skills:
|
|
14484
|
-
tools:
|
|
14422
|
+
filesystem: parseJsonResilient(row.filesystem),
|
|
14423
|
+
sandbox: parseJsonResilient(row.sandbox),
|
|
14424
|
+
mounts: parseJsonResilient(row.mounts),
|
|
14425
|
+
search: parseJsonResilient(row.search),
|
|
14426
|
+
skills: parseJsonResilient(row.skills),
|
|
14427
|
+
tools: parseJsonResilient(row.tools),
|
|
14485
14428
|
autoSync: Boolean(row.autoSync),
|
|
14486
14429
|
operationTimeout: row.operationTimeout != null ? Number(row.operationTimeout) : void 0,
|
|
14487
|
-
changedFields:
|
|
14430
|
+
changedFields: parseJsonResilient(row.changedFields),
|
|
14488
14431
|
changeMessage: row.changeMessage,
|
|
14489
14432
|
createdAt: new Date(row.createdAtZ || row.createdAt)
|
|
14490
14433
|
};
|