@mastra/mcp 2.9.0-alpha.2 → 2.9.0-alpha.4
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/client/configuration.d.ts +6 -0
- package/dist/client/configuration.d.ts.map +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +38 -38
- package/dist/docs/references/docs-connections-mcp.md +9 -6
- package/dist/docs/references/reference-tools-mcp-client.md +11 -1
- package/dist/index.cjs +329 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +329 -7
- package/dist/index.js.map +1 -1
- package/package.json +7 -6
package/dist/index.cjs
CHANGED
|
@@ -1356,7 +1356,7 @@ var require_json_schema_traverse = /* @__PURE__ */ __commonJSMin$1(((exports, mo
|
|
|
1356
1356
|
return str.replace(/~/g, "~0").replace(/\//g, "~1");
|
|
1357
1357
|
}
|
|
1358
1358
|
}));
|
|
1359
|
-
// ../schema-compat/dist/json-schema-
|
|
1359
|
+
// ../schema-compat/dist/json-schema-Ln9bxqtn.js
|
|
1360
1360
|
var require_code$1 = /* @__PURE__ */ __commonJSMin$1(((exports) => {
|
|
1361
1361
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1362
1362
|
exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;
|
|
@@ -8196,8 +8196,303 @@ var require__2020 = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
|
8196
8196
|
}
|
|
8197
8197
|
});
|
|
8198
8198
|
}));
|
|
8199
|
+
var require_formats = /* @__PURE__ */ __commonJSMin$1(((exports) => {
|
|
8200
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8201
|
+
exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
|
|
8202
|
+
function fmtDef(validate, compare) {
|
|
8203
|
+
return {
|
|
8204
|
+
validate,
|
|
8205
|
+
compare
|
|
8206
|
+
};
|
|
8207
|
+
}
|
|
8208
|
+
exports.fullFormats = {
|
|
8209
|
+
date: fmtDef(date, compareDate),
|
|
8210
|
+
time: fmtDef(getTime(true), compareTime),
|
|
8211
|
+
"date-time": fmtDef(getDateTime(true), compareDateTime),
|
|
8212
|
+
"iso-time": fmtDef(getTime(), compareIsoTime),
|
|
8213
|
+
"iso-date-time": fmtDef(getDateTime(), compareIsoDateTime),
|
|
8214
|
+
duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,
|
|
8215
|
+
uri,
|
|
8216
|
+
"uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,
|
|
8217
|
+
"uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,
|
|
8218
|
+
url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,
|
|
8219
|
+
email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
|
|
8220
|
+
hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,
|
|
8221
|
+
ipv4: /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,
|
|
8222
|
+
ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,
|
|
8223
|
+
regex,
|
|
8224
|
+
uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,
|
|
8225
|
+
"json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/,
|
|
8226
|
+
"json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,
|
|
8227
|
+
"relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,
|
|
8228
|
+
byte,
|
|
8229
|
+
int32: {
|
|
8230
|
+
type: "number",
|
|
8231
|
+
validate: validateInt32
|
|
8232
|
+
},
|
|
8233
|
+
int64: {
|
|
8234
|
+
type: "number",
|
|
8235
|
+
validate: validateInt64
|
|
8236
|
+
},
|
|
8237
|
+
float: {
|
|
8238
|
+
type: "number",
|
|
8239
|
+
validate: validateNumber
|
|
8240
|
+
},
|
|
8241
|
+
double: {
|
|
8242
|
+
type: "number",
|
|
8243
|
+
validate: validateNumber
|
|
8244
|
+
},
|
|
8245
|
+
password: true,
|
|
8246
|
+
binary: true
|
|
8247
|
+
};
|
|
8248
|
+
exports.fastFormats = {
|
|
8249
|
+
...exports.fullFormats,
|
|
8250
|
+
date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate),
|
|
8251
|
+
time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareTime),
|
|
8252
|
+
"date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime),
|
|
8253
|
+
"iso-time": fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoTime),
|
|
8254
|
+
"iso-date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoDateTime),
|
|
8255
|
+
uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
|
|
8256
|
+
"uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
|
|
8257
|
+
email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i
|
|
8258
|
+
};
|
|
8259
|
+
exports.formatNames = Object.keys(exports.fullFormats);
|
|
8260
|
+
function isLeapYear(year) {
|
|
8261
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
8262
|
+
}
|
|
8263
|
+
const DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
|
|
8264
|
+
const DAYS = [
|
|
8265
|
+
0,
|
|
8266
|
+
31,
|
|
8267
|
+
28,
|
|
8268
|
+
31,
|
|
8269
|
+
30,
|
|
8270
|
+
31,
|
|
8271
|
+
30,
|
|
8272
|
+
31,
|
|
8273
|
+
31,
|
|
8274
|
+
30,
|
|
8275
|
+
31,
|
|
8276
|
+
30,
|
|
8277
|
+
31
|
|
8278
|
+
];
|
|
8279
|
+
function date(str) {
|
|
8280
|
+
const matches = DATE.exec(str);
|
|
8281
|
+
if (!matches) return false;
|
|
8282
|
+
const year = +matches[1];
|
|
8283
|
+
const month = +matches[2];
|
|
8284
|
+
const day = +matches[3];
|
|
8285
|
+
return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]);
|
|
8286
|
+
}
|
|
8287
|
+
function compareDate(d1, d2) {
|
|
8288
|
+
if (!(d1 && d2)) return void 0;
|
|
8289
|
+
if (d1 > d2) return 1;
|
|
8290
|
+
if (d1 < d2) return -1;
|
|
8291
|
+
return 0;
|
|
8292
|
+
}
|
|
8293
|
+
const TIME = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;
|
|
8294
|
+
function getTime(strictTimeZone) {
|
|
8295
|
+
return function time(str) {
|
|
8296
|
+
const matches = TIME.exec(str);
|
|
8297
|
+
if (!matches) return false;
|
|
8298
|
+
const hr = +matches[1];
|
|
8299
|
+
const min = +matches[2];
|
|
8300
|
+
const sec = +matches[3];
|
|
8301
|
+
const tz = matches[4];
|
|
8302
|
+
const tzSign = matches[5] === "-" ? -1 : 1;
|
|
8303
|
+
const tzH = +(matches[6] || 0);
|
|
8304
|
+
const tzM = +(matches[7] || 0);
|
|
8305
|
+
if (tzH > 23 || tzM > 59 || strictTimeZone && !tz) return false;
|
|
8306
|
+
if (hr <= 23 && min <= 59 && sec < 60) return true;
|
|
8307
|
+
const utcMin = min - tzM * tzSign;
|
|
8308
|
+
const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);
|
|
8309
|
+
return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;
|
|
8310
|
+
};
|
|
8311
|
+
}
|
|
8312
|
+
function compareTime(s1, s2) {
|
|
8313
|
+
if (!(s1 && s2)) return void 0;
|
|
8314
|
+
const t1 = (/* @__PURE__ */ new Date("2020-01-01T" + s1)).valueOf();
|
|
8315
|
+
const t2 = (/* @__PURE__ */ new Date("2020-01-01T" + s2)).valueOf();
|
|
8316
|
+
if (!(t1 && t2)) return void 0;
|
|
8317
|
+
return t1 - t2;
|
|
8318
|
+
}
|
|
8319
|
+
function compareIsoTime(t1, t2) {
|
|
8320
|
+
if (!(t1 && t2)) return void 0;
|
|
8321
|
+
const a1 = TIME.exec(t1);
|
|
8322
|
+
const a2 = TIME.exec(t2);
|
|
8323
|
+
if (!(a1 && a2)) return void 0;
|
|
8324
|
+
t1 = a1[1] + a1[2] + a1[3];
|
|
8325
|
+
t2 = a2[1] + a2[2] + a2[3];
|
|
8326
|
+
if (t1 > t2) return 1;
|
|
8327
|
+
if (t1 < t2) return -1;
|
|
8328
|
+
return 0;
|
|
8329
|
+
}
|
|
8330
|
+
const DATE_TIME_SEPARATOR = /t|\s/i;
|
|
8331
|
+
function getDateTime(strictTimeZone) {
|
|
8332
|
+
const time = getTime(strictTimeZone);
|
|
8333
|
+
return function date_time(str) {
|
|
8334
|
+
const dateTime = str.split(DATE_TIME_SEPARATOR);
|
|
8335
|
+
return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]);
|
|
8336
|
+
};
|
|
8337
|
+
}
|
|
8338
|
+
function compareDateTime(dt1, dt2) {
|
|
8339
|
+
if (!(dt1 && dt2)) return void 0;
|
|
8340
|
+
const d1 = new Date(dt1).valueOf();
|
|
8341
|
+
const d2 = new Date(dt2).valueOf();
|
|
8342
|
+
if (!(d1 && d2)) return void 0;
|
|
8343
|
+
return d1 - d2;
|
|
8344
|
+
}
|
|
8345
|
+
function compareIsoDateTime(dt1, dt2) {
|
|
8346
|
+
if (!(dt1 && dt2)) return void 0;
|
|
8347
|
+
const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);
|
|
8348
|
+
const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);
|
|
8349
|
+
const res = compareDate(d1, d2);
|
|
8350
|
+
if (res === void 0) return void 0;
|
|
8351
|
+
return res || compareTime(t1, t2);
|
|
8352
|
+
}
|
|
8353
|
+
const NOT_URI_FRAGMENT = /\/|:/;
|
|
8354
|
+
const URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
8355
|
+
function uri(str) {
|
|
8356
|
+
return NOT_URI_FRAGMENT.test(str) && URI.test(str);
|
|
8357
|
+
}
|
|
8358
|
+
const BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;
|
|
8359
|
+
function byte(str) {
|
|
8360
|
+
BYTE.lastIndex = 0;
|
|
8361
|
+
return BYTE.test(str);
|
|
8362
|
+
}
|
|
8363
|
+
const MIN_INT32 = -(2 ** 31);
|
|
8364
|
+
const MAX_INT32 = 2 ** 31 - 1;
|
|
8365
|
+
function validateInt32(value) {
|
|
8366
|
+
return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;
|
|
8367
|
+
}
|
|
8368
|
+
function validateInt64(value) {
|
|
8369
|
+
return Number.isInteger(value);
|
|
8370
|
+
}
|
|
8371
|
+
function validateNumber() {
|
|
8372
|
+
return true;
|
|
8373
|
+
}
|
|
8374
|
+
const Z_ANCHOR = /[^\\]\\Z/;
|
|
8375
|
+
function regex(str) {
|
|
8376
|
+
if (Z_ANCHOR.test(str)) return false;
|
|
8377
|
+
try {
|
|
8378
|
+
new RegExp(str);
|
|
8379
|
+
return true;
|
|
8380
|
+
} catch (e) {
|
|
8381
|
+
return false;
|
|
8382
|
+
}
|
|
8383
|
+
}
|
|
8384
|
+
}));
|
|
8385
|
+
var require_limit = /* @__PURE__ */ __commonJSMin$1(((exports) => {
|
|
8386
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8387
|
+
exports.formatLimitDefinition = void 0;
|
|
8388
|
+
const ajv_1 = require_ajv();
|
|
8389
|
+
const codegen_1 = require_codegen();
|
|
8390
|
+
const ops = codegen_1.operators;
|
|
8391
|
+
const KWDs = {
|
|
8392
|
+
formatMaximum: {
|
|
8393
|
+
okStr: "<=",
|
|
8394
|
+
ok: ops.LTE,
|
|
8395
|
+
fail: ops.GT
|
|
8396
|
+
},
|
|
8397
|
+
formatMinimum: {
|
|
8398
|
+
okStr: ">=",
|
|
8399
|
+
ok: ops.GTE,
|
|
8400
|
+
fail: ops.LT
|
|
8401
|
+
},
|
|
8402
|
+
formatExclusiveMaximum: {
|
|
8403
|
+
okStr: "<",
|
|
8404
|
+
ok: ops.LT,
|
|
8405
|
+
fail: ops.GTE
|
|
8406
|
+
},
|
|
8407
|
+
formatExclusiveMinimum: {
|
|
8408
|
+
okStr: ">",
|
|
8409
|
+
ok: ops.GT,
|
|
8410
|
+
fail: ops.LTE
|
|
8411
|
+
}
|
|
8412
|
+
};
|
|
8413
|
+
exports.formatLimitDefinition = {
|
|
8414
|
+
keyword: Object.keys(KWDs),
|
|
8415
|
+
type: "string",
|
|
8416
|
+
schemaType: "string",
|
|
8417
|
+
$data: true,
|
|
8418
|
+
error: {
|
|
8419
|
+
message: ({ keyword, schemaCode }) => (0, codegen_1.str)`should be ${KWDs[keyword].okStr} ${schemaCode}`,
|
|
8420
|
+
params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`
|
|
8421
|
+
},
|
|
8422
|
+
code(cxt) {
|
|
8423
|
+
const { gen, data, schemaCode, keyword, it } = cxt;
|
|
8424
|
+
const { opts, self } = it;
|
|
8425
|
+
if (!opts.validateFormats) return;
|
|
8426
|
+
const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format");
|
|
8427
|
+
if (fCxt.$data) validate$DataFormat();
|
|
8428
|
+
else validateFormat();
|
|
8429
|
+
function validate$DataFormat() {
|
|
8430
|
+
const fmts = gen.scopeValue("formats", {
|
|
8431
|
+
ref: self.formats,
|
|
8432
|
+
code: opts.code.formats
|
|
8433
|
+
});
|
|
8434
|
+
const fmt = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`);
|
|
8435
|
+
cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt} != "object"`, (0, codegen_1._)`${fmt} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt}.compare != "function"`, compareCode(fmt)));
|
|
8436
|
+
}
|
|
8437
|
+
function validateFormat() {
|
|
8438
|
+
const format = fCxt.schema;
|
|
8439
|
+
const fmtDef = self.formats[format];
|
|
8440
|
+
if (!fmtDef || fmtDef === true) return;
|
|
8441
|
+
if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") throw new Error(`"${keyword}": format "${format}" does not define "compare" function`);
|
|
8442
|
+
const fmt = gen.scopeValue("formats", {
|
|
8443
|
+
key: format,
|
|
8444
|
+
ref: fmtDef,
|
|
8445
|
+
code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : void 0
|
|
8446
|
+
});
|
|
8447
|
+
cxt.fail$data(compareCode(fmt));
|
|
8448
|
+
}
|
|
8449
|
+
function compareCode(fmt) {
|
|
8450
|
+
return (0, codegen_1._)`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
|
|
8451
|
+
}
|
|
8452
|
+
},
|
|
8453
|
+
dependencies: ["format"]
|
|
8454
|
+
};
|
|
8455
|
+
const formatLimitPlugin = (ajv) => {
|
|
8456
|
+
ajv.addKeyword(exports.formatLimitDefinition);
|
|
8457
|
+
return ajv;
|
|
8458
|
+
};
|
|
8459
|
+
exports.default = formatLimitPlugin;
|
|
8460
|
+
}));
|
|
8461
|
+
var require_dist = /* @__PURE__ */ __commonJSMin$1(((exports, module) => {
|
|
8462
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8463
|
+
const formats_1 = require_formats();
|
|
8464
|
+
const limit_1 = require_limit();
|
|
8465
|
+
const codegen_1 = require_codegen();
|
|
8466
|
+
const fullName = new codegen_1.Name("fullFormats");
|
|
8467
|
+
const fastName = new codegen_1.Name("fastFormats");
|
|
8468
|
+
const formatsPlugin = (ajv, opts = { keywords: true }) => {
|
|
8469
|
+
if (Array.isArray(opts)) {
|
|
8470
|
+
addFormats(ajv, opts, formats_1.fullFormats, fullName);
|
|
8471
|
+
return ajv;
|
|
8472
|
+
}
|
|
8473
|
+
const [formats, exportName] = opts.mode === "fast" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];
|
|
8474
|
+
addFormats(ajv, opts.formats || formats_1.formatNames, formats, exportName);
|
|
8475
|
+
if (opts.keywords) (0, limit_1.default)(ajv);
|
|
8476
|
+
return ajv;
|
|
8477
|
+
};
|
|
8478
|
+
formatsPlugin.get = (name, mode = "full") => {
|
|
8479
|
+
const f = (mode === "fast" ? formats_1.fastFormats : formats_1.fullFormats)[name];
|
|
8480
|
+
if (!f) throw new Error(`Unknown format "${name}"`);
|
|
8481
|
+
return f;
|
|
8482
|
+
};
|
|
8483
|
+
function addFormats(ajv, list, fs, exportName) {
|
|
8484
|
+
var _a;
|
|
8485
|
+
var _b;
|
|
8486
|
+
(_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 || (_b.formats = (0, codegen_1._)`require("ajv-formats/dist/formats").${exportName}`);
|
|
8487
|
+
for (const f of list) ajv.addFormat(f, fs[f]);
|
|
8488
|
+
}
|
|
8489
|
+
module.exports = exports = formatsPlugin;
|
|
8490
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8491
|
+
exports.default = formatsPlugin;
|
|
8492
|
+
}));
|
|
8199
8493
|
var import_ajv = require_ajv();
|
|
8200
8494
|
var import__2020 = /* @__PURE__ */ __toESM$1(require__2020(), 1);
|
|
8495
|
+
var import_dist = /* @__PURE__ */ __toESM$1(require_dist(), 1);
|
|
8201
8496
|
var import_json_schema_traverse$2 = /* @__PURE__ */ __toESM$1(require_json_schema_traverse(), 1);
|
|
8202
8497
|
/**
|
|
8203
8498
|
* Vendor name for JSON Schema wrapped schemas.
|
|
@@ -8324,13 +8619,15 @@ var JsonSchemaWrapper = class {
|
|
|
8324
8619
|
*/
|
|
8325
8620
|
#getAjvValidator() {
|
|
8326
8621
|
if (!this.#ajvValidateCache) {
|
|
8327
|
-
const
|
|
8328
|
-
this.#ajvInstance = new AjvClass({
|
|
8622
|
+
const ajv = new (typeof this.#schema.$schema === "string" && this.#schema.$schema.includes("2020-12") ? import__2020.default : import_ajv.Ajv)({
|
|
8329
8623
|
allErrors: true,
|
|
8330
8624
|
strict: false,
|
|
8331
8625
|
...this.#options.ajvOptions
|
|
8332
8626
|
});
|
|
8333
|
-
|
|
8627
|
+
(0, import_dist.default)(ajv);
|
|
8628
|
+
for (const [name, format] of Object.entries(this.#options.ajvOptions?.formats ?? {})) if (format !== void 0) ajv.addFormat(name, format);
|
|
8629
|
+
this.#ajvInstance = ajv;
|
|
8630
|
+
this.#ajvValidateCache = ajv.compile(this.#schema);
|
|
8334
8631
|
}
|
|
8335
8632
|
return this.#ajvValidateCache;
|
|
8336
8633
|
}
|
|
@@ -8482,7 +8779,7 @@ function toStandardSchema$3(zodSchema) {
|
|
|
8482
8779
|
});
|
|
8483
8780
|
return wrapper;
|
|
8484
8781
|
}
|
|
8485
|
-
// ../schema-compat/dist/schema-
|
|
8782
|
+
// ../schema-compat/dist/schema-xsUy1mlm.js
|
|
8486
8783
|
/**
|
|
8487
8784
|
* Supported JSON Schema targets for z.toJSONSchema().
|
|
8488
8785
|
* Works with both real Zod v4 and Zod 3.25's v4 compat layer.
|
|
@@ -19174,6 +19471,7 @@ onListChanged: async (serverName, handler) => {
|
|
|
19174
19471
|
errorId: "MCP_CLIENT_GET_TOOLS_FAILED",
|
|
19175
19472
|
logMessage: "Failed to list tools from server:"
|
|
19176
19473
|
}, options);
|
|
19474
|
+
const keySources = /* @__PURE__ */ new Map();
|
|
19177
19475
|
for (const { serverName, value, error, duration } of settled) {
|
|
19178
19476
|
durations[serverName] = duration;
|
|
19179
19477
|
if (error !== void 0) {
|
|
@@ -19181,7 +19479,7 @@ onListChanged: async (serverName, handler) => {
|
|
|
19181
19479
|
errorDetails[serverName] = error;
|
|
19182
19480
|
continue;
|
|
19183
19481
|
}
|
|
19184
|
-
for (const [toolName, toolConfig] of Object.entries(value)) connectedTools
|
|
19482
|
+
for (const [toolName, toolConfig] of Object.entries(value)) this.setNamespacedTool(connectedTools, keySources, serverName, toolName, toolConfig);
|
|
19185
19483
|
}
|
|
19186
19484
|
const result = {
|
|
19187
19485
|
tools: connectedTools,
|
|
@@ -19353,16 +19651,18 @@ onListChanged: async (serverName, handler) => {
|
|
|
19353
19651
|
async toolsFromDefinitions({ definitions: catalog }) {
|
|
19354
19652
|
const configuredServers = new Set(Object.keys(this.serverConfigs));
|
|
19355
19653
|
const tools = {};
|
|
19654
|
+
const keySources = /* @__PURE__ */ new Map();
|
|
19356
19655
|
for (const [serverName, definitions] of Object.entries(catalog)) {
|
|
19357
19656
|
if (!configuredServers.has(serverName)) {
|
|
19358
19657
|
this.logger.warn("Skipping cached MCP tool definitions for a server that is no longer configured", { serverName });
|
|
19359
19658
|
continue;
|
|
19360
19659
|
}
|
|
19361
19660
|
for (const [toolName, definition] of Object.entries(modelVisibleDefinitions(definitions))) try {
|
|
19362
|
-
|
|
19661
|
+
const tool = await this.toolFromDefinition({
|
|
19363
19662
|
serverName,
|
|
19364
19663
|
definition
|
|
19365
19664
|
});
|
|
19665
|
+
this.setNamespacedTool(tools, keySources, serverName, toolName, tool);
|
|
19366
19666
|
} catch (error) {
|
|
19367
19667
|
if (!(error instanceof _mastra_core_error.MastraError && error.id === "MCP_CLIENT_INVALID_TOOL_INPUT_SCHEMA")) throw error;
|
|
19368
19668
|
}
|
|
@@ -19423,6 +19723,28 @@ onListChanged: async (serverName, handler) => {
|
|
|
19423
19723
|
} : result;
|
|
19424
19724
|
}
|
|
19425
19725
|
/**
|
|
19726
|
+
* Stores a tool under its `serverName_toolName` key. Server and tool names can both contain `_`,
|
|
19727
|
+
* so two different pairs can produce one key (`local` + `x_status` and `local_x` + `status`).
|
|
19728
|
+
* The later pair keeps the key, as before; this logs a warning instead of dropping a tool silently.
|
|
19729
|
+
*/
|
|
19730
|
+
setNamespacedTool(tools, keySources, serverName, toolName, tool) {
|
|
19731
|
+
const key = `${serverName}_${toolName}`;
|
|
19732
|
+
const replaced = keySources.get(key);
|
|
19733
|
+
if (replaced) this.logger.warn(`MCP tool key "${key}" from server "${serverName}" (tool "${toolName}") replaces the tool from server "${replaced.serverName}" (tool "${replaced.toolName}"), which produces the same key. Only the tool from "${serverName}" is kept. Rename one of the servers in \`servers\` to keep both.`, {
|
|
19734
|
+
key,
|
|
19735
|
+
replaced,
|
|
19736
|
+
replacedBy: {
|
|
19737
|
+
serverName,
|
|
19738
|
+
toolName
|
|
19739
|
+
}
|
|
19740
|
+
});
|
|
19741
|
+
keySources.set(key, {
|
|
19742
|
+
serverName,
|
|
19743
|
+
toolName
|
|
19744
|
+
});
|
|
19745
|
+
tools[key] = tool;
|
|
19746
|
+
}
|
|
19747
|
+
/**
|
|
19426
19748
|
* Runs a per-server discovery `operation` against every configured server
|
|
19427
19749
|
* concurrently, isolating and logging per-server failures. Results are
|
|
19428
19750
|
* returned in configuration order (`Object.keys(serverConfigs)`) so callers
|