@mastra/core 0.2.0-alpha.98 → 0.2.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/agent/index.d.ts +6 -8
- package/dist/agent/index.js +15 -7
- package/dist/{telemetry-oCUM52DG.d.ts → base-BbtPAA6f.d.ts} +50 -8
- package/dist/{index-Cwb-5AzX.d.ts → base-Bpb7Dmwe.d.ts} +367 -320
- package/dist/base.d.ts +3 -43
- package/dist/base.js +3 -3
- package/dist/bundler/index.d.ts +3 -4
- package/dist/bundler/index.js +4 -4
- package/dist/{chunk-MCB4M5W4.js → chunk-22LC46YN.js} +3 -9
- package/dist/{chunk-MG3WAQV7.js → chunk-2JL6DQMZ.js} +20 -28
- package/dist/chunk-2SAHBQEF.js +3 -0
- package/dist/chunk-3HBFW3Q7.js +24 -0
- package/dist/{chunk-KNPBNSJ7.js → chunk-55GTEVHJ.js} +12 -13
- package/dist/chunk-65VPTVVP.js +218 -0
- package/dist/chunk-AWEACB2T.js +66 -0
- package/dist/chunk-C6A6W6XS.js +49 -0
- package/dist/chunk-FGZVE4CM.js +404 -0
- package/dist/{chunk-TYIBRZOY.js → chunk-J3W3IHDO.js} +120 -87
- package/dist/chunk-K36NSQWH.js +10 -0
- package/dist/{chunk-QXH6EK72.js → chunk-K4DFI76V.js} +382 -370
- package/dist/{chunk-42DYOLDV.js → chunk-MEISIZMP.js} +13 -21
- package/dist/chunk-MLWGYRJR.js +87 -0
- package/dist/{chunk-ICMEXHKD.js → chunk-O2VP5JBC.js} +48 -55
- package/dist/{chunk-ZJOMHCWE.js → chunk-OJ26F3J4.js} +98 -153
- package/dist/chunk-RG66XEJT.js +8 -0
- package/dist/chunk-SB37QG7O.js +1203 -0
- package/dist/chunk-SDBM53G4.js +32 -0
- package/dist/{chunk-4LJFWC2Q.js → chunk-SIFBBGY6.js} +59 -85
- package/dist/chunk-U6J2FOU4.js +624 -0
- package/dist/chunk-VB7CO5ND.js +31 -0
- package/dist/{chunk-C55JWGDU.js → chunk-ZJOXJFJI.js} +43 -15
- package/dist/deployer/index.d.ts +2 -4
- package/dist/deployer/index.js +5 -5
- package/dist/eval/index.d.ts +8 -13
- package/dist/eval/index.js +3 -3
- package/dist/filter/index.js +2 -2
- package/dist/hooks/index.d.ts +13 -18
- package/dist/hooks/index.js +2 -2
- package/dist/{index-CBZ2mk2H.d.ts → index-B2JCcAQt.d.ts} +1 -1
- package/dist/index.d.ts +15 -15
- package/dist/index.js +43 -69
- package/dist/integration/index.d.ts +8 -10
- package/dist/integration/index.js +6 -3
- package/dist/llm/index.d.ts +6 -8
- package/dist/llm/index.js +1 -1
- package/dist/logger/index.d.ts +1 -1
- package/dist/logger/index.js +2 -2
- package/dist/mastra/index.d.ts +10 -13
- package/dist/mastra/index.js +20 -4
- package/dist/memory/index.d.ts +8 -10
- package/dist/memory/index.js +11 -9
- package/dist/relevance/index.js +16 -8
- package/dist/storage/index.d.ts +21 -10
- package/dist/storage/index.js +8 -7
- package/dist/telemetry/index.d.ts +35 -5
- package/dist/telemetry/index.js +3 -2
- package/dist/telemetry/otel-vendor.d.ts +7 -0
- package/dist/telemetry/otel-vendor.js +8 -0
- package/dist/tools/index.d.ts +6 -8
- package/dist/tools/index.js +2 -2
- package/dist/tts/index.d.ts +2 -4
- package/dist/tts/index.js +6 -5
- package/dist/{metric-BWeQNZt6.d.ts → types-m9RryK9a.d.ts} +6 -1
- package/dist/utils.js +2 -2
- package/dist/vector/index.d.ts +4 -6
- package/dist/vector/index.js +4 -4
- package/dist/vector/libsql/index.d.ts +2 -4
- package/dist/vector/libsql/index.js +6 -6
- package/dist/{workflow-DTtv7_Eq.d.ts → workflow-Cy8UTGCt.d.ts} +3 -6
- package/dist/workflows/index.d.ts +7 -9
- package/dist/workflows/index.js +4 -4
- package/package.json +14 -10
- package/dist/chunk-4ZUSEHLH.js +0 -285
- package/dist/chunk-AJJZUHB4.js +0 -14
- package/dist/chunk-G4MCO7XF.js +0 -70
- package/dist/chunk-HBTQNIAX.js +0 -90
- package/dist/chunk-HPXWJBQK.js +0 -222
- package/dist/chunk-JJ57BXQR.js +0 -16
- package/dist/chunk-JP37ODNX.js +0 -36
- package/dist/chunk-K3N7KJHH.js +0 -52
- package/dist/chunk-MDM2JS2U.js +0 -1288
- package/dist/chunk-VOUPGVRD.js +0 -27
- package/dist/chunk-Z7JFMQZZ.js +0 -551
- /package/dist/{chunk-AE3H2QEY.js → chunk-VDOJTUYY.js} +0 -0
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { MastraVector } from './chunk-
|
|
2
|
-
import { BaseFilterTranslator } from './chunk-
|
|
3
|
-
import { __name, __publicField } from './chunk-AJJZUHB4.js';
|
|
1
|
+
import { MastraVector } from './chunk-ZJOXJFJI.js';
|
|
2
|
+
import { BaseFilterTranslator } from './chunk-SIFBBGY6.js';
|
|
4
3
|
import { createClient } from '@libsql/client';
|
|
5
4
|
import { join } from 'path';
|
|
6
5
|
|
|
7
6
|
// src/vector/libsql/filter.ts
|
|
8
|
-
var
|
|
7
|
+
var LibSQLFilterTranslator = class extends BaseFilterTranslator {
|
|
9
8
|
getSupportedOperators() {
|
|
10
9
|
return {
|
|
11
10
|
...BaseFilterTranslator.DEFAULT_OPERATORS,
|
|
12
11
|
regex: [],
|
|
13
|
-
custom: [
|
|
14
|
-
"$contains",
|
|
15
|
-
"$size"
|
|
16
|
-
]
|
|
12
|
+
custom: ["$contains", "$size"]
|
|
17
13
|
};
|
|
18
14
|
}
|
|
19
15
|
translate(filter) {
|
|
@@ -27,18 +23,12 @@ var _LibSQLFilterTranslator = class _LibSQLFilterTranslator extends BaseFilterTr
|
|
|
27
23
|
if (this.isRegex(node)) {
|
|
28
24
|
throw new Error("Direct regex pattern format is not supported in LibSQL");
|
|
29
25
|
}
|
|
30
|
-
const withPath =
|
|
31
|
-
[currentPath]: result2
|
|
32
|
-
} : result2, "withPath");
|
|
26
|
+
const withPath = (result2) => currentPath ? { [currentPath]: result2 } : result2;
|
|
33
27
|
if (this.isPrimitive(node)) {
|
|
34
|
-
return withPath({
|
|
35
|
-
$eq: this.normalizeComparisonValue(node)
|
|
36
|
-
});
|
|
28
|
+
return withPath({ $eq: this.normalizeComparisonValue(node) });
|
|
37
29
|
}
|
|
38
30
|
if (Array.isArray(node)) {
|
|
39
|
-
return withPath({
|
|
40
|
-
$in: this.normalizeArrayValues(node)
|
|
41
|
-
});
|
|
31
|
+
return withPath({ $in: this.normalizeArrayValues(node) });
|
|
42
32
|
}
|
|
43
33
|
const entries = Object.entries(node);
|
|
44
34
|
const result = {};
|
|
@@ -48,9 +38,7 @@ var _LibSQLFilterTranslator = class _LibSQLFilterTranslator extends BaseFilterTr
|
|
|
48
38
|
result[key] = Array.isArray(value) ? value.map((filter) => this.translateNode(filter)) : this.translateNode(value);
|
|
49
39
|
} else if (this.isOperator(key)) {
|
|
50
40
|
if (this.isArrayOperator(key) && !Array.isArray(value) && key !== "$elemMatch") {
|
|
51
|
-
result[key] = [
|
|
52
|
-
value
|
|
53
|
-
];
|
|
41
|
+
result[key] = [value];
|
|
54
42
|
} else if (this.isBasicOperator(key) && Array.isArray(value)) {
|
|
55
43
|
result[key] = JSON.stringify(value);
|
|
56
44
|
} else {
|
|
@@ -69,34 +57,39 @@ var _LibSQLFilterTranslator = class _LibSQLFilterTranslator extends BaseFilterTr
|
|
|
69
57
|
}
|
|
70
58
|
return result;
|
|
71
59
|
}
|
|
60
|
+
// TODO: Look more into regex support for LibSQL
|
|
61
|
+
// private translateRegexPattern(pattern: string, options: string = ''): any {
|
|
62
|
+
// if (!options) return { $regex: pattern };
|
|
63
|
+
// const flags = options
|
|
64
|
+
// .split('')
|
|
65
|
+
// .filter(f => 'imsux'.includes(f))
|
|
66
|
+
// .join('');
|
|
67
|
+
// return {
|
|
68
|
+
// $regex: pattern,
|
|
69
|
+
// $options: flags,
|
|
70
|
+
// };
|
|
71
|
+
// }
|
|
72
72
|
};
|
|
73
|
-
|
|
74
|
-
var LibSQLFilterTranslator = _LibSQLFilterTranslator;
|
|
75
|
-
|
|
76
|
-
// src/vector/libsql/sql-builder.ts
|
|
77
|
-
var createBasicOperator = /* @__PURE__ */ __name((symbol) => {
|
|
73
|
+
var createBasicOperator = (symbol) => {
|
|
78
74
|
return (key) => ({
|
|
79
75
|
sql: `CASE
|
|
80
76
|
WHEN ? IS NULL THEN json_extract(metadata, '$."${handleKey(key)}"') IS ${symbol === "=" ? "" : "NOT"} NULL
|
|
81
77
|
ELSE json_extract(metadata, '$."${handleKey(key)}"') ${symbol} ?
|
|
82
78
|
END`,
|
|
83
79
|
needsValue: true,
|
|
84
|
-
transformValue:
|
|
85
|
-
return [
|
|
86
|
-
|
|
87
|
-
value
|
|
88
|
-
];
|
|
89
|
-
}, "transformValue")
|
|
80
|
+
transformValue: (value) => {
|
|
81
|
+
return [value, value];
|
|
82
|
+
}
|
|
90
83
|
});
|
|
91
|
-
}
|
|
92
|
-
var createNumericOperator =
|
|
84
|
+
};
|
|
85
|
+
var createNumericOperator = (symbol) => {
|
|
93
86
|
return (key) => ({
|
|
94
87
|
sql: `CAST(json_extract(metadata, '$."${handleKey(key)}"') AS NUMERIC) ${symbol} ?`,
|
|
95
88
|
needsValue: true
|
|
96
89
|
});
|
|
97
|
-
}
|
|
98
|
-
var validateJsonArray =
|
|
99
|
-
AND json_type(json_extract(metadata, '$."${handleKey(key)}"')) = 'array'
|
|
90
|
+
};
|
|
91
|
+
var validateJsonArray = (key) => `json_valid(json_extract(metadata, '$."${handleKey(key)}"'))
|
|
92
|
+
AND json_type(json_extract(metadata, '$."${handleKey(key)}"')) = 'array'`;
|
|
100
93
|
var FILTER_OPERATORS = {
|
|
101
94
|
$eq: createBasicOperator("="),
|
|
102
95
|
$ne: createBasicOperator("!="),
|
|
@@ -105,21 +98,19 @@ var FILTER_OPERATORS = {
|
|
|
105
98
|
$lt: createNumericOperator("<"),
|
|
106
99
|
$lte: createNumericOperator("<="),
|
|
107
100
|
// Array Operators
|
|
108
|
-
$in:
|
|
101
|
+
$in: (key, value) => ({
|
|
109
102
|
sql: `json_extract(metadata, '$."${handleKey(key)}"') IN (${value.map(() => "?").join(",")})`,
|
|
110
103
|
needsValue: true
|
|
111
|
-
}),
|
|
112
|
-
$nin:
|
|
104
|
+
}),
|
|
105
|
+
$nin: (key, value) => ({
|
|
113
106
|
sql: `json_extract(metadata, '$."${handleKey(key)}"') NOT IN (${value.map(() => "?").join(",")})`,
|
|
114
107
|
needsValue: true
|
|
115
|
-
}),
|
|
116
|
-
$all:
|
|
108
|
+
}),
|
|
109
|
+
$all: (key) => ({
|
|
117
110
|
sql: `json_extract(metadata, '$."${handleKey(key)}"') = ?`,
|
|
118
111
|
needsValue: true,
|
|
119
|
-
transformValue:
|
|
120
|
-
const arrayValue = Array.isArray(value) ? value : [
|
|
121
|
-
value
|
|
122
|
-
];
|
|
112
|
+
transformValue: (value) => {
|
|
113
|
+
const arrayValue = Array.isArray(value) ? value : [value];
|
|
123
114
|
if (arrayValue.length === 0) {
|
|
124
115
|
return {
|
|
125
116
|
sql: "1 = 0",
|
|
@@ -141,44 +132,32 @@ var FILTER_OPERATORS = {
|
|
|
141
132
|
ELSE FALSE
|
|
142
133
|
END
|
|
143
134
|
)`,
|
|
144
|
-
values: [
|
|
145
|
-
JSON.stringify(arrayValue)
|
|
146
|
-
]
|
|
135
|
+
values: [JSON.stringify(arrayValue)]
|
|
147
136
|
};
|
|
148
|
-
}
|
|
149
|
-
}),
|
|
150
|
-
$elemMatch:
|
|
137
|
+
}
|
|
138
|
+
}),
|
|
139
|
+
$elemMatch: (key) => ({
|
|
151
140
|
sql: `json_extract(metadata, '$."${handleKey(key)}"') = ?`,
|
|
152
141
|
needsValue: true,
|
|
153
|
-
transformValue:
|
|
142
|
+
transformValue: (value) => {
|
|
154
143
|
if (typeof value !== "object" || Array.isArray(value)) {
|
|
155
144
|
throw new Error("$elemMatch requires an object with conditions");
|
|
156
145
|
}
|
|
157
146
|
const conditions = Object.entries(value).map(([field, fieldValue]) => {
|
|
158
147
|
if (field.startsWith("$")) {
|
|
159
|
-
const { sql, values } = buildCondition("elem.value", {
|
|
160
|
-
[field]: fieldValue
|
|
161
|
-
});
|
|
148
|
+
const { sql, values } = buildCondition("elem.value", { [field]: fieldValue });
|
|
162
149
|
const pattern = /json_extract\(metadata, '\$\."[^"]*"(\."[^"]*")*'\)/g;
|
|
163
150
|
const elemSql = sql.replace(pattern, "elem.value");
|
|
164
|
-
return {
|
|
165
|
-
sql: elemSql,
|
|
166
|
-
values
|
|
167
|
-
};
|
|
151
|
+
return { sql: elemSql, values };
|
|
168
152
|
} else if (typeof fieldValue === "object" && !Array.isArray(fieldValue)) {
|
|
169
153
|
const { sql, values } = buildCondition(field, fieldValue);
|
|
170
154
|
const pattern = /json_extract\(metadata, '\$\."[^"]*"(\."[^"]*")*'\)/g;
|
|
171
155
|
const elemSql = sql.replace(pattern, `json_extract(elem.value, '$."${field}"')`);
|
|
172
|
-
return {
|
|
173
|
-
sql: elemSql,
|
|
174
|
-
values
|
|
175
|
-
};
|
|
156
|
+
return { sql: elemSql, values };
|
|
176
157
|
} else {
|
|
177
158
|
return {
|
|
178
159
|
sql: `json_extract(elem.value, '$."${field}"') = ?`,
|
|
179
|
-
values: [
|
|
180
|
-
fieldValue
|
|
181
|
-
]
|
|
160
|
+
values: [fieldValue]
|
|
182
161
|
};
|
|
183
162
|
}
|
|
184
163
|
});
|
|
@@ -196,31 +175,28 @@ var FILTER_OPERATORS = {
|
|
|
196
175
|
)`,
|
|
197
176
|
values: conditions.flatMap((c) => c.values)
|
|
198
177
|
};
|
|
199
|
-
}
|
|
200
|
-
}),
|
|
178
|
+
}
|
|
179
|
+
}),
|
|
201
180
|
// Element Operators
|
|
202
|
-
$exists:
|
|
181
|
+
$exists: (key) => ({
|
|
203
182
|
sql: `json_extract(metadata, '$."${handleKey(key)}"') IS NOT NULL`,
|
|
204
183
|
needsValue: false
|
|
205
|
-
}),
|
|
184
|
+
}),
|
|
206
185
|
// Logical Operators
|
|
207
|
-
$and:
|
|
186
|
+
$and: (key) => ({
|
|
208
187
|
sql: `(${key})`,
|
|
209
188
|
needsValue: false
|
|
210
|
-
}),
|
|
211
|
-
$or:
|
|
189
|
+
}),
|
|
190
|
+
$or: (key) => ({
|
|
212
191
|
sql: `(${key})`,
|
|
213
192
|
needsValue: false
|
|
214
|
-
}),
|
|
215
|
-
$not:
|
|
216
|
-
|
|
217
|
-
needsValue: false
|
|
218
|
-
}), "$not"),
|
|
219
|
-
$nor: /* @__PURE__ */ __name((key) => ({
|
|
193
|
+
}),
|
|
194
|
+
$not: (key) => ({ sql: `NOT (${key})`, needsValue: false }),
|
|
195
|
+
$nor: (key) => ({
|
|
220
196
|
sql: `NOT (${key})`,
|
|
221
197
|
needsValue: false
|
|
222
|
-
}),
|
|
223
|
-
$size:
|
|
198
|
+
}),
|
|
199
|
+
$size: (key, paramIndex) => ({
|
|
224
200
|
sql: `(
|
|
225
201
|
CASE
|
|
226
202
|
WHEN json_type(json_extract(metadata, '$."${handleKey(key)}"')) = 'array' THEN
|
|
@@ -229,7 +205,7 @@ var FILTER_OPERATORS = {
|
|
|
229
205
|
END
|
|
230
206
|
)`,
|
|
231
207
|
needsValue: true
|
|
232
|
-
}),
|
|
208
|
+
}),
|
|
233
209
|
// /**
|
|
234
210
|
// * Regex Operators
|
|
235
211
|
// * Supports case insensitive and multiline
|
|
@@ -289,10 +265,10 @@ var FILTER_OPERATORS = {
|
|
|
289
265
|
// };
|
|
290
266
|
// },
|
|
291
267
|
// }),
|
|
292
|
-
$contains:
|
|
268
|
+
$contains: (key) => ({
|
|
293
269
|
sql: `json_extract(metadata, '$."${handleKey(key)}"') = ?`,
|
|
294
270
|
needsValue: true,
|
|
295
|
-
transformValue:
|
|
271
|
+
transformValue: (value) => {
|
|
296
272
|
if (Array.isArray(value)) {
|
|
297
273
|
return {
|
|
298
274
|
sql: `(
|
|
@@ -303,18 +279,13 @@ var FILTER_OPERATORS = {
|
|
|
303
279
|
WHERE m.value IN (SELECT value FROM json_each(?))
|
|
304
280
|
)
|
|
305
281
|
)`,
|
|
306
|
-
values: [
|
|
307
|
-
JSON.stringify(value)
|
|
308
|
-
]
|
|
282
|
+
values: [JSON.stringify(value)]
|
|
309
283
|
};
|
|
310
284
|
}
|
|
311
285
|
if (value && typeof value === "object") {
|
|
312
286
|
let traverse2 = function(obj, path = []) {
|
|
313
287
|
for (const [k, v] of Object.entries(obj)) {
|
|
314
|
-
const currentPath = [
|
|
315
|
-
...path,
|
|
316
|
-
k
|
|
317
|
-
];
|
|
288
|
+
const currentPath = [...path, k];
|
|
318
289
|
if (v && typeof v === "object" && !Array.isArray(v)) {
|
|
319
290
|
traverse2(v, currentPath);
|
|
320
291
|
} else {
|
|
@@ -323,7 +294,6 @@ var FILTER_OPERATORS = {
|
|
|
323
294
|
}
|
|
324
295
|
}
|
|
325
296
|
};
|
|
326
|
-
__name(traverse2, "traverse");
|
|
327
297
|
const paths = [];
|
|
328
298
|
const values = [];
|
|
329
299
|
traverse2(value);
|
|
@@ -333,18 +303,15 @@ var FILTER_OPERATORS = {
|
|
|
333
303
|
};
|
|
334
304
|
}
|
|
335
305
|
return value;
|
|
336
|
-
}
|
|
337
|
-
})
|
|
306
|
+
}
|
|
307
|
+
})
|
|
338
308
|
};
|
|
339
|
-
var handleKey =
|
|
309
|
+
var handleKey = (key) => {
|
|
340
310
|
return key.replace(/\./g, '"."');
|
|
341
|
-
}
|
|
311
|
+
};
|
|
342
312
|
function buildFilterQuery(filter) {
|
|
343
313
|
if (!filter) {
|
|
344
|
-
return {
|
|
345
|
-
sql: "",
|
|
346
|
-
values: []
|
|
347
|
-
};
|
|
314
|
+
return { sql: "", values: [] };
|
|
348
315
|
}
|
|
349
316
|
const values = [];
|
|
350
317
|
const conditions = Object.entries(filter).map(([key, value]) => {
|
|
@@ -357,48 +324,30 @@ function buildFilterQuery(filter) {
|
|
|
357
324
|
values
|
|
358
325
|
};
|
|
359
326
|
}
|
|
360
|
-
__name(buildFilterQuery, "buildFilterQuery");
|
|
361
327
|
function buildCondition(key, value, parentPath) {
|
|
362
|
-
if ([
|
|
363
|
-
"$and",
|
|
364
|
-
"$or",
|
|
365
|
-
"$not",
|
|
366
|
-
"$nor"
|
|
367
|
-
].includes(key)) {
|
|
328
|
+
if (["$and", "$or", "$not", "$nor"].includes(key)) {
|
|
368
329
|
return handleLogicalOperator(key, value);
|
|
369
330
|
}
|
|
370
331
|
if (!value || typeof value !== "object") {
|
|
371
332
|
return {
|
|
372
333
|
sql: `json_extract(metadata, '$."${key.replace(/\./g, '"."')}"') = ?`,
|
|
373
|
-
values: [
|
|
374
|
-
value
|
|
375
|
-
]
|
|
334
|
+
values: [value]
|
|
376
335
|
};
|
|
377
336
|
}
|
|
378
337
|
return handleOperator(key, value);
|
|
379
338
|
}
|
|
380
|
-
__name(buildCondition, "buildCondition");
|
|
381
339
|
function handleLogicalOperator(key, value, parentPath) {
|
|
382
340
|
if (!value || value.length === 0) {
|
|
383
341
|
switch (key) {
|
|
384
342
|
case "$and":
|
|
385
343
|
case "$nor":
|
|
386
|
-
return {
|
|
387
|
-
sql: "true",
|
|
388
|
-
values: []
|
|
389
|
-
};
|
|
344
|
+
return { sql: "true", values: [] };
|
|
390
345
|
case "$or":
|
|
391
|
-
return {
|
|
392
|
-
sql: "false",
|
|
393
|
-
values: []
|
|
394
|
-
};
|
|
346
|
+
return { sql: "false", values: [] };
|
|
395
347
|
case "$not":
|
|
396
348
|
throw new Error("$not operator cannot be empty");
|
|
397
349
|
default:
|
|
398
|
-
return {
|
|
399
|
-
sql: "true",
|
|
400
|
-
values: []
|
|
401
|
-
};
|
|
350
|
+
return { sql: "true", values: [] };
|
|
402
351
|
}
|
|
403
352
|
}
|
|
404
353
|
if (key === "$not") {
|
|
@@ -414,9 +363,7 @@ function handleLogicalOperator(key, value, parentPath) {
|
|
|
414
363
|
const conditions = Array.isArray(value) ? value.map((f) => {
|
|
415
364
|
const entries = Object.entries(f);
|
|
416
365
|
return entries.map(([k, v]) => buildCondition(k, v));
|
|
417
|
-
}) : [
|
|
418
|
-
buildCondition(key, value)
|
|
419
|
-
];
|
|
366
|
+
}) : [buildCondition(key, value)];
|
|
420
367
|
const joined = conditions.flat().map((c) => {
|
|
421
368
|
values.push(...c.values);
|
|
422
369
|
return c.sql;
|
|
@@ -426,14 +373,17 @@ function handleLogicalOperator(key, value, parentPath) {
|
|
|
426
373
|
values
|
|
427
374
|
};
|
|
428
375
|
}
|
|
429
|
-
__name(handleLogicalOperator, "handleLogicalOperator");
|
|
430
376
|
function handleOperator(key, value) {
|
|
431
377
|
if (typeof value === "object" && !Array.isArray(value)) {
|
|
432
378
|
const entries = Object.entries(value);
|
|
433
|
-
const results = entries.map(
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
379
|
+
const results = entries.map(
|
|
380
|
+
([operator2, operatorValue2]) => operator2 === "$not" ? {
|
|
381
|
+
sql: `NOT (${Object.entries(operatorValue2).map(([op, val]) => processOperator(key, op, val).sql).join(" AND ")})`,
|
|
382
|
+
values: Object.entries(operatorValue2).flatMap(
|
|
383
|
+
([op, val]) => processOperator(key, op, val).values
|
|
384
|
+
)
|
|
385
|
+
} : processOperator(key, operator2, operatorValue2)
|
|
386
|
+
);
|
|
437
387
|
return {
|
|
438
388
|
sql: `(${results.map((r) => r.sql).join(" AND ")})`,
|
|
439
389
|
values: results.flatMap((r) => r.values)
|
|
@@ -442,18 +392,14 @@ function handleOperator(key, value) {
|
|
|
442
392
|
const [[operator, operatorValue] = []] = Object.entries(value);
|
|
443
393
|
return processOperator(key, operator, operatorValue);
|
|
444
394
|
}
|
|
445
|
-
|
|
446
|
-
var processOperator = /* @__PURE__ */ __name((key, operator, operatorValue) => {
|
|
395
|
+
var processOperator = (key, operator, operatorValue) => {
|
|
447
396
|
if (!operator.startsWith("$") || !FILTER_OPERATORS[operator]) {
|
|
448
397
|
throw new Error(`Invalid operator: ${operator}`);
|
|
449
398
|
}
|
|
450
399
|
const operatorFn = FILTER_OPERATORS[operator];
|
|
451
400
|
const operatorResult = operatorFn(key, operatorValue);
|
|
452
401
|
if (!operatorResult.needsValue) {
|
|
453
|
-
return {
|
|
454
|
-
sql: operatorResult.sql,
|
|
455
|
-
values: []
|
|
456
|
-
};
|
|
402
|
+
return { sql: operatorResult.sql, values: [] };
|
|
457
403
|
}
|
|
458
404
|
const transformed = operatorResult.transformValue ? operatorResult.transformValue(operatorValue) : operatorValue;
|
|
459
405
|
if (transformed && typeof transformed === "object" && "sql" in transformed) {
|
|
@@ -461,17 +407,20 @@ var processOperator = /* @__PURE__ */ __name((key, operator, operatorValue) => {
|
|
|
461
407
|
}
|
|
462
408
|
return {
|
|
463
409
|
sql: operatorResult.sql,
|
|
464
|
-
values: Array.isArray(transformed) ? transformed : [
|
|
465
|
-
transformed
|
|
466
|
-
]
|
|
410
|
+
values: Array.isArray(transformed) ? transformed : [transformed]
|
|
467
411
|
};
|
|
468
|
-
}
|
|
412
|
+
};
|
|
469
413
|
|
|
470
414
|
// src/vector/libsql/index.ts
|
|
471
|
-
var
|
|
472
|
-
|
|
415
|
+
var DefaultVectorDB = class extends MastraVector {
|
|
416
|
+
turso;
|
|
417
|
+
constructor({
|
|
418
|
+
connectionUrl,
|
|
419
|
+
authToken,
|
|
420
|
+
syncUrl,
|
|
421
|
+
syncInterval
|
|
422
|
+
}) {
|
|
473
423
|
super();
|
|
474
|
-
__publicField(this, "turso");
|
|
475
424
|
this.turso = createClient({
|
|
476
425
|
url: this.rewriteDbUrl(connectionUrl),
|
|
477
426
|
syncUrl,
|
|
@@ -486,7 +435,9 @@ var _DefaultVectorDB = class _DefaultVectorDB extends MastraVector {
|
|
|
486
435
|
if (cwd.endsWith(".mastra") || cwd.endsWith(".mastra/")) {
|
|
487
436
|
const baseDir = join(cwd, `..`);
|
|
488
437
|
const fullPath = join(baseDir, relativePath);
|
|
489
|
-
this.logger.debug(
|
|
438
|
+
this.logger.debug(
|
|
439
|
+
`Initializing LibSQL db with url ${url} with relative file path from inside .mastra directory. Rewriting relative file url to "file:${fullPath}". This ensures it's outside the .mastra directory. If the db is stored inside .mastra it will be deleted when Mastra re-bundles code.`
|
|
440
|
+
);
|
|
490
441
|
return `file:${fullPath}`;
|
|
491
442
|
}
|
|
492
443
|
}
|
|
@@ -526,9 +477,7 @@ var _DefaultVectorDB = class _DefaultVectorDB extends MastraVector {
|
|
|
526
477
|
id,
|
|
527
478
|
score,
|
|
528
479
|
metadata: JSON.parse(metadata ?? "{}"),
|
|
529
|
-
...includeVector && embedding && {
|
|
530
|
-
vector: JSON.parse(embedding)
|
|
531
|
-
}
|
|
480
|
+
...includeVector && embedding && { vector: JSON.parse(embedding) }
|
|
532
481
|
}));
|
|
533
482
|
} finally {
|
|
534
483
|
}
|
|
@@ -634,9 +583,7 @@ var _DefaultVectorDB = class _DefaultVectorDB extends MastraVector {
|
|
|
634
583
|
`;
|
|
635
584
|
const tableInfo = await this.turso.execute({
|
|
636
585
|
sql: tableInfoQuery,
|
|
637
|
-
args: [
|
|
638
|
-
indexName
|
|
639
|
-
]
|
|
586
|
+
args: [indexName]
|
|
640
587
|
});
|
|
641
588
|
if (!tableInfo.rows[0]?.sql) {
|
|
642
589
|
throw new Error(`Table ${indexName} not found`);
|
|
@@ -667,7 +614,5 @@ var _DefaultVectorDB = class _DefaultVectorDB extends MastraVector {
|
|
|
667
614
|
});
|
|
668
615
|
}
|
|
669
616
|
};
|
|
670
|
-
__name(_DefaultVectorDB, "DefaultVectorDB");
|
|
671
|
-
var DefaultVectorDB = _DefaultVectorDB;
|
|
672
617
|
|
|
673
618
|
export { DefaultVectorDB };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// src/storage/constants.ts
|
|
2
|
+
var TABLE_WORKFLOW_SNAPSHOT = "mastra_workflow_snapshot";
|
|
3
|
+
var TABLE_EVALS = "mastra_evals";
|
|
4
|
+
var TABLE_MESSAGES = "mastra_messages";
|
|
5
|
+
var TABLE_THREADS = "mastra_threads";
|
|
6
|
+
var TABLE_TRACES = "mastra_traces";
|
|
7
|
+
|
|
8
|
+
export { TABLE_EVALS, TABLE_MESSAGES, TABLE_THREADS, TABLE_TRACES, TABLE_WORKFLOW_SNAPSHOT };
|