@dalmia/calibrate-mcp 0.0.57 → 0.0.59

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.
Files changed (37) hide show
  1. package/bin/mcp-server.js +113 -149
  2. package/bin/mcp-server.js.map +29 -29
  3. package/esm/landing-page.js +1 -1
  4. package/esm/lib/config.d.ts +2 -2
  5. package/esm/lib/config.js +2 -2
  6. package/esm/mcp-server/mcp-server.js +1 -1
  7. package/esm/mcp-server/server.js +1 -1
  8. package/esm/models/agenttestrunlistitem.d.ts +1 -0
  9. package/esm/models/agenttestrunlistitem.d.ts.map +1 -1
  10. package/esm/models/agenttestrunlistitem.js +1 -0
  11. package/esm/models/agenttestrunlistitem.js.map +1 -1
  12. package/esm/models/benchmarkrequest.d.ts +1 -0
  13. package/esm/models/benchmarkrequest.d.ts.map +1 -1
  14. package/esm/models/benchmarkrequest.js +1 -0
  15. package/esm/models/benchmarkrequest.js.map +1 -1
  16. package/esm/models/benchmarkstatusresponse.d.ts +2 -1
  17. package/esm/models/benchmarkstatusresponse.d.ts.map +1 -1
  18. package/esm/models/benchmarkstatusresponse.js +2 -1
  19. package/esm/models/benchmarkstatusresponse.js.map +1 -1
  20. package/esm/models/modelresult.d.ts +2 -0
  21. package/esm/models/modelresult.d.ts.map +1 -1
  22. package/esm/models/modelresult.js +2 -0
  23. package/esm/models/modelresult.js.map +1 -1
  24. package/esm/models/testrunstatusresponse.d.ts +1 -1
  25. package/esm/models/testrunstatusresponse.d.ts.map +1 -1
  26. package/esm/models/testrunstatusresponse.js +1 -1
  27. package/esm/models/testrunstatusresponse.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/landing-page.ts +1 -1
  30. package/src/lib/config.ts +2 -2
  31. package/src/mcp-server/mcp-server.ts +1 -1
  32. package/src/mcp-server/server.ts +1 -1
  33. package/src/models/agenttestrunlistitem.ts +4 -0
  34. package/src/models/benchmarkrequest.ts +4 -0
  35. package/src/models/benchmarkstatusresponse.ts +8 -2
  36. package/src/models/modelresult.ts +8 -0
  37. package/src/models/testrunstatusresponse.ts +4 -2
package/bin/mcp-server.js CHANGED
@@ -455,9 +455,6 @@ function members(proto, table) {
455
455
  else
456
456
  defineBound(proto, key, desc.value);
457
457
  }
458
- for (const sym of Object.getOwnPropertySymbols(table)) {
459
- defineBound(proto, sym, table[sym]);
460
- }
461
458
  }
462
459
  function own(inst, key, value, enumerable = true) {
463
460
  Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value });
@@ -632,8 +629,7 @@ function $constructor(name, initializer, proto, params) {
632
629
  } finally {
633
630
  _zodDesc.value = undefined;
634
631
  }
635
- }
636
- if (inst._zod.traits.has(name)) {
632
+ } else if (inst._zod.traits.has(name)) {
637
633
  return;
638
634
  }
639
635
  inst._zod.traits.add(name);
@@ -1435,7 +1431,7 @@ var init_versions = __esm(() => {
1435
1431
  version2 = {
1436
1432
  major: 4,
1437
1433
  minor: 6,
1438
- patch: 2
1434
+ patch: 5
1439
1435
  };
1440
1436
  });
1441
1437
 
@@ -1459,11 +1455,32 @@ function standardProps(inst) {
1459
1455
  version: 1
1460
1456
  };
1461
1457
  }
1458
+ function canParseURL(input) {
1459
+ try {
1460
+ if (typeof URL !== "undefined" && typeof URL.canParse === "function")
1461
+ return URL.canParse(input);
1462
+ new URL(input);
1463
+ return true;
1464
+ } catch {
1465
+ return false;
1466
+ }
1467
+ }
1468
+ function validateURL(trimmed, def) {
1469
+ if (!("normalize" in def) && !("hostname" in def) && !("protocol" in def)) {
1470
+ return canParseURL(trimmed) || URL_UNPARSEABLE;
1471
+ }
1472
+ return parseURLObject(trimmed, def);
1473
+ }
1462
1474
  function parseURLObject(trimmed, def) {
1463
1475
  if (!def.normalize && def.protocol?.source === httpProtocol.source && !/^https?:\/\//i.test(trimmed)) {
1464
1476
  return URL_BAD_FORMAT;
1465
1477
  }
1466
1478
  try {
1479
+ if (typeof URL !== "undefined") {
1480
+ const URLStatic = URL;
1481
+ if (typeof URLStatic.parse === "function")
1482
+ return URLStatic.parse(trimmed) ?? URL_UNPARSEABLE;
1483
+ }
1467
1484
  return new URL(trimmed);
1468
1485
  } catch {
1469
1486
  return URL_UNPARSEABLE;
@@ -1483,12 +1500,7 @@ function urlProtocolOk(url, protocol) {
1483
1500
  function isValidIPv6(value) {
1484
1501
  if (!ipv6Alphabet.test(value))
1485
1502
  return false;
1486
- try {
1487
- new URL(`http://[${value}]`);
1488
- return true;
1489
- } catch {
1490
- return false;
1491
- }
1503
+ return canParseURL(`http://[${value}]`);
1492
1504
  }
1493
1505
  function isValidCIDRv6(value) {
1494
1506
  const parts = value.split("/");
@@ -1850,12 +1862,7 @@ function handleRefineResult(result, payload, input, inst) {
1850
1862
  payload.issues.push(issue(_iss));
1851
1863
  }
1852
1864
  }
1853
- function handlePropertiesResult(result, payload, key) {
1854
- if (result.issues.length) {
1855
- payload.issues.push(...prefixIssues(key, result.issues));
1856
- }
1857
- }
1858
- var $ZodType, toStandardResult = (r, ctx) => r.issues.length ? { issues: r.issues.map((iss) => finalizeIssue(iss, ctx, config())) } : { value: r.value }, $ZodString, $ZodStringFormat, $ZodGUID, $ZodUUID, $ZodEmail, URL_BAD_FORMAT = 1, URL_UNPARSEABLE = 2, asciiTabOrNewline, $ZodURL, $ZodEmoji, $ZodNanoID, $ZodCUID, $ZodCUID2, $ZodULID, $ZodXID, $ZodKSUID, $ZodISODateTime, $ZodISODate, $ZodISOTime, $ZodISODuration, $ZodIPv4, ipv6Alphabet, $ZodIPv6, $ZodCIDRv4, $ZodCIDRv6, base64Charset, $ZodBase64, base64urlCharset, $ZodBase64URL, $ZodE164, $ZodJWT, $ZodNumber, $ZodNumberFormat, $ZodBoolean, $ZodNull, $ZodAny, $ZodUnknown, $ZodNever, $ZodArray, NO_SYMBOL_KEYS, $ZodObject, $ZodObjectJIT, $ZodUnion, $ZodDiscriminatedUnion, $ZodIntersection, $ZodRecord, $ZodEnum, $ZodLiteral, $ZodTransform, $ZodOptional, $ZodExactOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodNonOptional, $ZodCatch, $ZodPipe, $ZodPreprocess, $ZodReadonly, $ZodCustom, $ZodProperties;
1865
+ var $ZodType, toStandardResult = (r, ctx) => r.issues.length ? { issues: r.issues.map((iss) => finalizeIssue(iss, ctx, config())) } : { value: r.value }, $ZodString, $ZodStringFormat, $ZodGUID, $ZodUUID, $ZodEmail, URL_BAD_FORMAT = 1, URL_UNPARSEABLE = 2, asciiTabOrNewline, $ZodURL, $ZodEmoji, $ZodNanoID, $ZodCUID, $ZodCUID2, $ZodULID, $ZodXID, $ZodKSUID, $ZodISODateTime, $ZodISODate, $ZodISOTime, $ZodISODuration, $ZodIPv4, ipv6Alphabet, $ZodIPv6, $ZodCIDRv4, $ZodCIDRv6, base64Charset, $ZodBase64, base64urlCharset, $ZodBase64URL, $ZodE164, $ZodJWT, $ZodNumber, $ZodNumberFormat, $ZodBoolean, $ZodNull, $ZodAny, $ZodUnknown, $ZodNever, $ZodArray, NO_SYMBOL_KEYS, $ZodObject, $ZodObjectJIT, $ZodUnion, $ZodDiscriminatedUnion, $ZodIntersection, $ZodRecord, $ZodEnum, $ZodLiteral, $ZodTransform, $ZodOptional, $ZodExactOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodNonOptional, $ZodCatch, $ZodPipe, $ZodPreprocess, $ZodReadonly, $ZodCustom;
1859
1866
  var init_schemas = __esm(() => {
1860
1867
  init_checks();
1861
1868
  init_core();
@@ -2028,7 +2035,7 @@ var init_schemas = __esm(() => {
2028
2035
  inst._zod.check = (payload) => {
2029
2036
  try {
2030
2037
  const trimmed = payload.value.trim();
2031
- const url = parseURLObject(trimmed, def);
2038
+ const url = validateURL(trimmed, def);
2032
2039
  if (url === URL_BAD_FORMAT) {
2033
2040
  payload.issues.push({
2034
2041
  code: "invalid_format",
@@ -2050,6 +2057,10 @@ var init_schemas = __esm(() => {
2050
2057
  });
2051
2058
  return;
2052
2059
  }
2060
+ if (url === true) {
2061
+ payload.value = stripTabAndNewline(trimmed);
2062
+ return;
2063
+ }
2053
2064
  if (def.hostname && !urlHostnameOk(url, def.hostname)) {
2054
2065
  payload.issues.push({
2055
2066
  code: "invalid_format",
@@ -3065,61 +3076,11 @@ var init_schemas = __esm(() => {
3065
3076
  return;
3066
3077
  };
3067
3078
  });
3068
- $ZodProperties = /* @__PURE__ */ $constructor("$ZodProperties", (inst, def) => {
3069
- $ZodType.init(inst, def);
3070
- $ZodCheck.init(inst, def);
3071
- const memo = globalConfig.memoizer;
3072
- memo?.attach(inst);
3073
- let entries;
3074
- const runShape = (payload, ctx) => {
3075
- entries ?? (entries = Reflect.ownKeys(def.shape).map((key) => [key, def.shape[key]]));
3076
- const input = payload.value;
3077
- let proms;
3078
- for (const [key, schema] of entries) {
3079
- const result = schema._zod.run({ value: input[key], issues: [] }, ctx);
3080
- if (result instanceof Promise) {
3081
- proms ?? (proms = []);
3082
- proms.push(result.then((result) => handlePropertiesResult(result, payload, key)));
3083
- } else {
3084
- handlePropertiesResult(result, payload, key);
3085
- }
3086
- }
3087
- if (proms)
3088
- return Promise.all(proms).then(() => {
3089
- return;
3090
- });
3091
- return;
3092
- };
3093
- inst._zod.parse = (payload, ctx) => {
3094
- const input = payload.value;
3095
- if (input === null || typeof input !== "object" && typeof input !== "function") {
3096
- payload.issues.push({ expected: "object", code: "invalid_type", input, inst });
3097
- return payload;
3098
- }
3099
- if (ctx.direction === "backward")
3100
- ctx = { ...ctx, direction: "forward" };
3101
- if (memo)
3102
- memo.alloc(inst, payload, input, ctx);
3103
- const result = runShape(payload, ctx);
3104
- return result instanceof Promise ? result.then(() => payload) : payload;
3105
- };
3106
- inst._zod.check = (payload) => {
3107
- if (payload.value == null) {
3108
- payload.issues.push({ expected: "object", code: "invalid_type", input: payload.value, inst });
3109
- return;
3110
- }
3111
- return runShape(payload, {});
3112
- };
3113
- }, {
3114
- *[Symbol.iterator]() {
3115
- yield this;
3116
- }
3117
- });
3118
3079
  });
3119
3080
 
3120
3081
  // node_modules/zod/v4/core/memoizer.js
3121
3082
  function isRef(value) {
3122
- return value !== null && (typeof value === "object" || typeof value === "function");
3083
+ return value !== null && typeof value === "object";
3123
3084
  }
3124
3085
  function cloneIssues(issues) {
3125
3086
  return issues.map((iss) => iss.path ? { ...iss, path: iss.path.slice() } : { ...iss });
@@ -3164,9 +3125,6 @@ function isRecursive(inst, stack, resolve) {
3164
3125
  check(def.catchall);
3165
3126
  break;
3166
3127
  }
3167
- case "properties":
3168
- merge(shape(def.shape, false));
3169
- break;
3170
3128
  case "array":
3171
3129
  check(def.element);
3172
3130
  break;
@@ -3434,6 +3392,7 @@ var error = () => {
3434
3392
  base64url: "base64url-encoded string",
3435
3393
  json_string: "JSON string",
3436
3394
  e164: "E.164 number",
3395
+ currency_code: "currency code",
3437
3396
  credit_card: "credit card number",
3438
3397
  iban: "IBAN",
3439
3398
  jwt: "JWT",
@@ -3609,11 +3568,13 @@ var init_compile = __esm(() => {
3609
3568
  });
3610
3569
 
3611
3570
  // node_modules/zod/v4/core/api.js
3571
+ function snapshotChecks(def) {
3572
+ if (def.checks)
3573
+ def.checks = [...def.checks];
3574
+ return def;
3575
+ }
3612
3576
  function _string(Class, params) {
3613
- return new Class({
3614
- type: "string",
3615
- ...normalizeParams(params)
3616
- });
3577
+ return new Class(snapshotChecks({ type: "string", ...normalizeParams(params) }));
3617
3578
  }
3618
3579
  function _email(Class, params) {
3619
3580
  return new Class({
@@ -3853,19 +3814,10 @@ function _isoDuration(Class, params) {
3853
3814
  });
3854
3815
  }
3855
3816
  function _number(Class, params) {
3856
- return new Class({
3857
- type: "number",
3858
- checks: [],
3859
- ...normalizeParams(params)
3860
- });
3817
+ return new Class(snapshotChecks({ type: "number", checks: [], ...normalizeParams(params) }));
3861
3818
  }
3862
3819
  function _coercedNumber(Class, params) {
3863
- return new Class({
3864
- type: "number",
3865
- coerce: true,
3866
- checks: [],
3867
- ...normalizeParams(params)
3868
- });
3820
+ return new Class(snapshotChecks({ type: "number", coerce: true, checks: [], ...normalizeParams(params) }));
3869
3821
  }
3870
3822
  function _int(Class, params) {
3871
3823
  return new Class({
@@ -5014,17 +4966,15 @@ var narrowMin = (agg, key, value) => {
5014
4966
  path: [...params.path, "properties", key]
5015
4967
  }));
5016
4968
  }
5017
- const allKeys = new Set(Object.keys(shape));
5018
- const requiredKeys = new Set([...allKeys].filter((key) => {
4969
+ const requiredKeys = [];
4970
+ for (const key of Object.keys(shape)) {
5019
4971
  const field = def.shape[key];
5020
- if (ctx.io === "input") {
5021
- return inputOptin(field) === undefined;
5022
- } else {
5023
- return field._zod.optout === undefined;
4972
+ if (ctx.io === "input" ? inputOptin(field) === undefined : field._zod.optout === undefined) {
4973
+ requiredKeys.push(key);
5024
4974
  }
5025
- }));
5026
- if (requiredKeys.size > 0) {
5027
- json.required = Array.from(requiredKeys);
4975
+ }
4976
+ if (requiredKeys.length > 0) {
4977
+ json.required = requiredKeys;
5028
4978
  }
5029
4979
  if (def.catchall?._zod.def.type === "never") {
5030
4980
  json.additionalProperties = false;
@@ -5037,30 +4987,6 @@ var narrowMin = (agg, key, value) => {
5037
4987
  path: [...params.path, "additionalProperties"]
5038
4988
  });
5039
4989
  }
5040
- }, propertiesProcessor = (schema, ctx, _json, params) => {
5041
- const json = _json;
5042
- const def = schema._zod.def;
5043
- if (Object.getOwnPropertySymbols(def.shape).length && handleUnrepresentable(schema, ctx, json, params, "Symbol keys cannot be represented in JSON Schema")) {
5044
- return;
5045
- }
5046
- if (ctx.io === "output") {
5047
- for (const key in def.shape) {
5048
- if (isTransforming(def.shape[key]) && handleUnrepresentable(schema, ctx, json, params, `z.properties() returns its input, so the output of a transforming schema at key "${key}" cannot be represented in JSON Schema`)) {
5049
- return;
5050
- }
5051
- }
5052
- }
5053
- json.type = "object";
5054
- json.properties = {};
5055
- for (const key in def.shape) {
5056
- assignProp(json.properties, key, processSchema(def.shape[key], ctx, {
5057
- ...params,
5058
- path: [...params.path, "properties", key]
5059
- }));
5060
- }
5061
- const required = Object.keys(def.shape).filter((key) => inputOptin(def.shape[key]) === undefined);
5062
- if (required.length > 0)
5063
- json.required = required;
5064
4990
  }, unionProcessor = (schema, ctx, json, params) => {
5065
4991
  const def = schema._zod.def;
5066
4992
  const isExclusive = def.inclusive === false;
@@ -5331,7 +5257,6 @@ var init_json_schema_processors = __esm(() => {
5331
5257
  file: fileProcessor,
5332
5258
  success: successProcessor,
5333
5259
  custom: customProcessor,
5334
- properties: propertiesProcessor,
5335
5260
  function: functionProcessor,
5336
5261
  transform: transformProcessor,
5337
5262
  map: mapProcessor,
@@ -28204,6 +28129,9 @@ var require_proxy_addr = __commonJS(function(exports, module) {
28204
28129
  if (!isip(addr))
28205
28130
  return false;
28206
28131
  var ip = parseip(addr);
28132
+ if (ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
28133
+ ip = ip.toIPv4Address();
28134
+ }
28207
28135
  var ipconv;
28208
28136
  var kind = ip.kind();
28209
28137
  for (var i = 0;i < subnets.length; i++) {
@@ -28216,10 +28144,15 @@ var require_proxy_addr = __commonJS(function(exports, module) {
28216
28144
  if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) {
28217
28145
  continue;
28218
28146
  }
28147
+ if (subnetkind !== "ipv4" && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) {
28148
+ continue;
28149
+ }
28219
28150
  if (!ipconv) {
28220
28151
  ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
28221
28152
  }
28222
28153
  trusted = ipconv;
28154
+ } else if (kind === "ipv6" && subnetip.isIPv4MappedAddress()) {
28155
+ continue;
28223
28156
  }
28224
28157
  if (trusted.match(subnetip, subnetrange)) {
28225
28158
  return true;
@@ -28237,12 +28170,20 @@ var require_proxy_addr = __commonJS(function(exports, module) {
28237
28170
  if (!isip(addr))
28238
28171
  return false;
28239
28172
  var ip = parseip(addr);
28173
+ if (ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
28174
+ ip = ip.toIPv4Address();
28175
+ }
28240
28176
  var kind = ip.kind();
28241
28177
  if (kind !== subnetkind) {
28242
28178
  if (subnetisipv4 && !ip.isIPv4MappedAddress()) {
28243
28179
  return false;
28244
28180
  }
28181
+ if (!subnetisipv4 && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) {
28182
+ return false;
28183
+ }
28245
28184
  ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
28185
+ } else if (kind === "ipv6" && subnetip.isIPv4MappedAddress()) {
28186
+ return false;
28246
28187
  }
28247
28188
  return ip.match(subnetip, subnetrange);
28248
28189
  };
@@ -42594,25 +42535,26 @@ var require_schemes = __commonJS(function(exports, module) {
42594
42535
  mailtoComponent.error = mailtoComponent.error || "URI mailto has malformed header fields.";
42595
42536
  continue;
42596
42537
  }
42597
- const name = eqIdx === -1 ? token : token.slice(0, eqIdx);
42538
+ const name = decodeHex(eqIdx === -1 ? token : token.slice(0, eqIdx));
42539
+ const normalizedName = name.toLowerCase();
42598
42540
  const value = eqIdx === -1 ? "" : token.slice(eqIdx + 1);
42599
- if (name === "to") {
42541
+ if (normalizedName === "to") {
42600
42542
  const addrs = value.split(",");
42601
42543
  for (let j = 0;j < addrs.length; j++)
42602
42544
  to.push(addrs[j]);
42603
42545
  continue;
42604
42546
  }
42605
- if (name === "subject") {
42547
+ if (normalizedName === "subject") {
42606
42548
  mailtoComponent.subject = decodeHex(value);
42607
42549
  continue;
42608
42550
  }
42609
- if (name === "body") {
42551
+ if (normalizedName === "body") {
42610
42552
  mailtoComponent.body = decodeHex(value);
42611
42553
  continue;
42612
42554
  }
42613
42555
  if (headers === null)
42614
42556
  headers = Object.create(null);
42615
- headers[decodeHex(name)] = decodeHex(value);
42557
+ headers[name] = decodeHex(value);
42616
42558
  }
42617
42559
  if (headers !== null)
42618
42560
  mailtoComponent.headers = headers;
@@ -42634,9 +42576,31 @@ var require_schemes = __commonJS(function(exports, module) {
42634
42576
  mailtoComponent.to = to;
42635
42577
  return mailtoComponent;
42636
42578
  }
42579
+ function mailtoEncodeHeaderName(name) {
42580
+ return encodeWithAllow(name.replace(/%/gu, "%25"), HFNAME);
42581
+ }
42637
42582
  function mailtoSerialize(component, options) {
42638
42583
  const mailtoComponent = component;
42639
42584
  const to = Array.isArray(mailtoComponent.to) ? mailtoComponent.to.slice() : [];
42585
+ const sourceHeaders = mailtoComponent.headers && typeof mailtoComponent.headers === "object" ? Object.assign(Object.create(null), mailtoComponent.headers) : Object.create(null);
42586
+ const headers = Object.create(null);
42587
+ for (const name in sourceHeaders) {
42588
+ const normalizedName = name.toLowerCase();
42589
+ if (normalizedName === "to") {
42590
+ const addrs = String(sourceHeaders[name]).split(",");
42591
+ for (let i = 0;i < addrs.length; i++)
42592
+ to.push(addrs[i]);
42593
+ } else if (normalizedName === "subject" || normalizedName === "body") {
42594
+ headers[normalizedName] = sourceHeaders[name];
42595
+ } else {
42596
+ headers[name] = sourceHeaders[name];
42597
+ }
42598
+ }
42599
+ if (mailtoComponent.subject !== undefined)
42600
+ headers.subject = mailtoComponent.subject;
42601
+ if (mailtoComponent.body !== undefined)
42602
+ headers.body = mailtoComponent.body;
42603
+ mailtoComponent.headers = headers;
42640
42604
  if (to.length) {
42641
42605
  for (let i = 0;i < to.length; i++) {
42642
42606
  const addr = String(to[i]);
@@ -42653,18 +42617,12 @@ var require_schemes = __commonJS(function(exports, module) {
42653
42617
  } else {
42654
42618
  mailtoComponent.path = undefined;
42655
42619
  }
42656
- const headers = mailtoComponent.headers && typeof mailtoComponent.headers === "object" ? Object.assign(Object.create(null), mailtoComponent.headers) : Object.create(null);
42657
- if (mailtoComponent.subject)
42658
- headers.subject = mailtoComponent.subject;
42659
- if (mailtoComponent.body)
42660
- headers.body = mailtoComponent.body;
42661
- mailtoComponent.headers = headers;
42662
42620
  let query = "";
42663
42621
  let count = 0;
42664
42622
  for (const name in headers) {
42665
42623
  if (count++ !== 0)
42666
42624
  query += "&";
42667
- query += encodeWithAllow(name, HFNAME) + "=" + encodeWithAllow(String(headers[name]), HFNAME);
42625
+ query += mailtoEncodeHeaderName(name) + "=" + encodeWithAllow(String(headers[name]), HFNAME);
42668
42626
  }
42669
42627
  if (count !== 0) {
42670
42628
  mailtoComponent.query = query;
@@ -43038,13 +42996,14 @@ var require_fast_uri = __commonJS(function(exports, module) {
43038
42996
  if (!malformedIPLiteral) {
43039
42997
  malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
43040
42998
  }
43041
- if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
43042
- if (uri.indexOf("%") !== -1) {
43043
- if (parsed.host !== undefined && !malformedIPLiteral) {
43044
- const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
43045
- parsed.host = reescapeHostDelimiters(host, isIP);
43046
- }
42999
+ if (uri.indexOf("%") !== -1 && parsed.host !== undefined && !malformedIPLiteral) {
43000
+ let host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
43001
+ if (!isIP) {
43002
+ host = normalizePercentEncoding(host.toLowerCase());
43047
43003
  }
43004
+ parsed.host = reescapeHostDelimiters(host, isIP);
43005
+ }
43006
+ if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
43048
43007
  if (parsed.path) {
43049
43008
  parsed.path = normalizePathEncoding(parsed.path);
43050
43009
  }
@@ -52802,9 +52761,9 @@ var init_config = __esm(() => {
52802
52761
  SDK_METADATA = {
52803
52762
  language: "typescript",
52804
52763
  openapiDocVersion: "0.1.0",
52805
- sdkVersion: "0.0.57",
52764
+ sdkVersion: "0.0.59",
52806
52765
  genVersion: "2.915.1",
52807
- userAgent: "speakeasy-sdk/mcp-typescript 0.0.57 2.915.1 0.1.0 @dalmia/calibrate-mcp"
52766
+ userAgent: "speakeasy-sdk/mcp-typescript 0.0.59 2.915.1 0.1.0 @dalmia/calibrate-mcp"
52808
52767
  };
52809
52768
  });
52810
52769
 
@@ -55654,6 +55613,7 @@ var init_benchmarkrequest = __esm(() => {
55654
55613
  init_zod();
55655
55614
  BenchmarkRequest$zodSchema = object({
55656
55615
  models: array(string2()).describe("Model names to benchmark"),
55616
+ parallel_models: boolean2().default(true).describe("Whether to run the models at the same time. Set false to run them one after another"),
55657
55617
  test_uuids: array(string2()).nullable().optional().describe("A subset of the agent's linked tests to benchmark. Each ID must be linked to the agent. Omit to run all linked tests")
55658
55618
  });
55659
55619
  });
@@ -56027,10 +55987,12 @@ var init_modelresult = __esm(() => {
56027
55987
  message: string2().describe("Status or result message for this model"),
56028
55988
  model: string2().describe("Model name these results are for"),
56029
55989
  passed: int().nullable().optional().describe("Number of test cases that passed"),
55990
+ stopped_early: boolean2().default(false).describe("Whether this model's run stopped before starting every test case, after too many failed in a row"),
56030
55991
  success: boolean2().nullable().optional().describe("Whether this model's run succeeded"),
56031
55992
  test_results: array(TestCaseResult$zodSchema).nullable().optional().describe("Results for each test case for this model"),
56032
55993
  total_tests: int().nullable().optional().describe("Total test cases for this model"),
56033
- total_tokens: record(string2(), any()).nullable().optional().describe("Aggregated token usage as `{mean, min, max, count}`")
55994
+ total_tokens: record(string2(), any()).nullable().optional().describe("Aggregated token usage as `{mean, min, max, count}`"),
55995
+ unanswered_tests: int().nullable().optional().describe("Number of test cases that produced no answer because the agent or the judge could not be reached, which makes the pass rate an unfair measure of the agent")
56034
55996
  });
56035
55997
  });
56036
55998
 
@@ -56076,7 +56038,7 @@ var init_benchmarkstatusresponse = __esm(() => {
56076
56038
  init_testrunevaluator();
56077
56039
  BenchmarkStatusResponse$zodSchema = object({
56078
56040
  aborted: boolean2().default(false).describe("Whether a user stopped this run before it finished. The results collected up to that point are kept, and test cases that never ran are counted neither as passed nor as failed"),
56079
- error: boolean2().default(false).describe("True if the run failed"),
56041
+ error: string2().nullable().optional().describe("Why the run could not be carried out, when it failed before producing any result"),
56080
56042
  evaluators: array(TestRunEvaluator$zodSchema).nullable().optional().describe("The evaluators used in this run. Each verdict in `judge_results` links to one of these by `evaluator_uuid`"),
56081
56043
  is_public: boolean2().default(false).describe("Whether the run is shared publicly"),
56082
56044
  leaderboard_summary: array(record(string2(), any())).nullable().optional().describe("Leaderboard comparing the models, one row per model. Columns vary by benchmark: a `model` column plus pass/fail counts, latency, cost, and one score column per evaluator, keyed by evaluator name"),
@@ -56084,6 +56046,7 @@ var init_benchmarkstatusresponse = __esm(() => {
56084
56046
  name: string2().describe("Name of the run. A run nobody has renamed shows its number instead, such as `Run 1` for a test run or `Benchmark 1` for a benchmark"),
56085
56047
  share_token: string2().nullable().optional().describe("Token for building the public share URL"),
56086
56048
  status: TaskStatus$zodSchema,
56049
+ stopped_early: boolean2().default(false).describe("Whether any model's run stopped before starting every test case, after too many failed in a row"),
56087
56050
  task_id: string2().describe("Benchmark run job ID"),
56088
56051
  test_uuids: array(string2()).nullable().optional().describe("IDs of the tests this benchmark executed, in run order")
56089
56052
  });
@@ -56245,7 +56208,7 @@ var init_testrunstatusresponse = __esm(() => {
56245
56208
  TestRunStatusResponse$zodSchema = object({
56246
56209
  aborted: boolean2().default(false).describe("Whether a user stopped this run before it finished. The results collected up to that point are kept, and test cases that never ran are counted neither as passed nor as failed"),
56247
56210
  cost: record(string2(), any()).nullable().optional().describe("Aggregated cost as `{mean, min, max, count}` (USD)"),
56248
- error: boolean2().default(false).describe("True if the run failed"),
56211
+ error: string2().nullable().optional().describe("Why the run could not be carried out, when it failed before producing any result"),
56249
56212
  evaluator_summary: array(record(string2(), any())).nullable().optional().describe("Totals for each evaluator over the whole run, matching the shape a benchmark reports for each model. Only evaluators that returned a verdict appear"),
56250
56213
  evaluators: array(TestRunEvaluator$zodSchema).nullable().optional().describe("The evaluators used in this run. Each verdict in `judge_results` links to one of these by `evaluator_uuid`"),
56251
56214
  failed: int().nullable().optional().describe("Number of test cases that failed"),
@@ -56971,6 +56934,7 @@ var init_agenttestrunlistitem = __esm(() => {
56971
56934
  results: array(TestRunCaseSummary$zodSchema).nullable().optional().describe("Flat pass/fail summary for each test case (fetch the run detail for full results)"),
56972
56935
  share_token: string2().nullable().optional().describe("Token for building the public share URL"),
56973
56936
  status: TaskStatus$zodSchema,
56937
+ stopped_early: boolean2().default(false).describe("Whether the run stopped before starting every test case, after too many failed in a row"),
56974
56938
  total_tests: int().nullable().optional().describe("Total number of test cases"),
56975
56939
  total_tokens: record(string2(), any()).nullable().optional().describe("Aggregated token usage as `{mean, min, max, count}`"),
56976
56940
  type: AgentTestRunListItemType$zodSchema.describe("What kind of run this is:\n- `llm-unit-test`: a single run of the agent's tests\n- `llm-benchmark`: a multi-model comparison"),
@@ -61599,7 +61563,7 @@ hits its trace limit.
61599
61563
  function createMCPServer(deps) {
61600
61564
  const server = new McpServer({
61601
61565
  name: "CalibrateMcp",
61602
- version: "0.0.57"
61566
+ version: "0.0.59"
61603
61567
  });
61604
61568
  const getClient = deps.getSDK || (() => new CalibrateMcpCore({
61605
61569
  security: deps.security,
@@ -62888,7 +62852,7 @@ http_headers = { "api-key-auth" = "YOUR_API_KEY_AUTH" }`;
62888
62852
  <h1>Instructions</h1>
62889
62853
  <p>One-click installation for Claude Desktop users</p>
62890
62854
  <div class="instruction-item">
62891
- <a href="https://github.com/dalmia/calibrate-mcp/releases/download/v0.0.57/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
62855
+ <a href="https://github.com/dalmia/calibrate-mcp/releases/download/v0.0.59/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
62892
62856
  \uD83D\uDCE5 Download MCP Bundle
62893
62857
  </a>
62894
62858
  </div>
@@ -65772,7 +65736,7 @@ var routes = buildRouteMap({
65772
65736
  var app = buildApplication(routes, {
65773
65737
  name: "mcp",
65774
65738
  versionInfo: {
65775
- currentVersion: "0.0.57"
65739
+ currentVersion: "0.0.59"
65776
65740
  }
65777
65741
  });
65778
65742
  run(app, process3.argv.slice(2), buildContext(process3));
@@ -65780,5 +65744,5 @@ export {
65780
65744
  app
65781
65745
  };
65782
65746
 
65783
- //# debugId=4CA7B963874437F364756E2164756E21
65747
+ //# debugId=FE1CD44B360D062964756E2164756E21
65784
65748
  //# sourceMappingURL=mcp-server.js.map