@impractical-ai/motion 0.1.1 → 0.1.3

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.
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ApiError,
4
+ PACKAGE_VERSION,
4
5
  PRODUCTION_APP_URL,
5
6
  PRODUCTION_SUPABASE_URL,
6
7
  __commonJS,
@@ -12,12 +13,13 @@ import {
12
13
  loadConfig,
13
14
  openBrowser,
14
15
  saveConfig,
16
+ validateApiResponse,
15
17
  withAdmissionReceipt
16
- } from "./chunk-2RJVXP4V.js";
18
+ } from "./chunk-G56RK3HD.js";
17
19
 
18
- // ../node_modules/ajv/dist/compile/codegen/code.js
20
+ // node_modules/ajv/dist/compile/codegen/code.js
19
21
  var require_code = __commonJS({
20
- "../node_modules/ajv/dist/compile/codegen/code.js"(exports) {
22
+ "node_modules/ajv/dist/compile/codegen/code.js"(exports) {
21
23
  "use strict";
22
24
  Object.defineProperty(exports, "__esModule", { value: true });
23
25
  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;
@@ -169,9 +171,9 @@ var require_code = __commonJS({
169
171
  }
170
172
  });
171
173
 
172
- // ../node_modules/ajv/dist/compile/codegen/scope.js
174
+ // node_modules/ajv/dist/compile/codegen/scope.js
173
175
  var require_scope = __commonJS({
174
- "../node_modules/ajv/dist/compile/codegen/scope.js"(exports) {
176
+ "node_modules/ajv/dist/compile/codegen/scope.js"(exports) {
175
177
  "use strict";
176
178
  Object.defineProperty(exports, "__esModule", { value: true });
177
179
  exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;
@@ -314,9 +316,9 @@ var require_scope = __commonJS({
314
316
  }
315
317
  });
316
318
 
317
- // ../node_modules/ajv/dist/compile/codegen/index.js
319
+ // node_modules/ajv/dist/compile/codegen/index.js
318
320
  var require_codegen = __commonJS({
319
- "../node_modules/ajv/dist/compile/codegen/index.js"(exports) {
321
+ "node_modules/ajv/dist/compile/codegen/index.js"(exports) {
320
322
  "use strict";
321
323
  Object.defineProperty(exports, "__esModule", { value: true });
322
324
  exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;
@@ -1034,9 +1036,9 @@ var require_codegen = __commonJS({
1034
1036
  }
1035
1037
  });
1036
1038
 
1037
- // ../node_modules/ajv/dist/compile/util.js
1039
+ // node_modules/ajv/dist/compile/util.js
1038
1040
  var require_util = __commonJS({
1039
- "../node_modules/ajv/dist/compile/util.js"(exports) {
1041
+ "node_modules/ajv/dist/compile/util.js"(exports) {
1040
1042
  "use strict";
1041
1043
  Object.defineProperty(exports, "__esModule", { value: true });
1042
1044
  exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;
@@ -1201,9 +1203,9 @@ var require_util = __commonJS({
1201
1203
  }
1202
1204
  });
1203
1205
 
1204
- // ../node_modules/ajv/dist/compile/names.js
1206
+ // node_modules/ajv/dist/compile/names.js
1205
1207
  var require_names = __commonJS({
1206
- "../node_modules/ajv/dist/compile/names.js"(exports) {
1208
+ "node_modules/ajv/dist/compile/names.js"(exports) {
1207
1209
  "use strict";
1208
1210
  Object.defineProperty(exports, "__esModule", { value: true });
1209
1211
  var codegen_1 = require_codegen();
@@ -1240,9 +1242,9 @@ var require_names = __commonJS({
1240
1242
  }
1241
1243
  });
1242
1244
 
1243
- // ../node_modules/ajv/dist/compile/errors.js
1245
+ // node_modules/ajv/dist/compile/errors.js
1244
1246
  var require_errors = __commonJS({
1245
- "../node_modules/ajv/dist/compile/errors.js"(exports) {
1247
+ "node_modules/ajv/dist/compile/errors.js"(exports) {
1246
1248
  "use strict";
1247
1249
  Object.defineProperty(exports, "__esModule", { value: true });
1248
1250
  exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;
@@ -1362,9 +1364,9 @@ var require_errors = __commonJS({
1362
1364
  }
1363
1365
  });
1364
1366
 
1365
- // ../node_modules/ajv/dist/compile/validate/boolSchema.js
1367
+ // node_modules/ajv/dist/compile/validate/boolSchema.js
1366
1368
  var require_boolSchema = __commonJS({
1367
- "../node_modules/ajv/dist/compile/validate/boolSchema.js"(exports) {
1369
+ "node_modules/ajv/dist/compile/validate/boolSchema.js"(exports) {
1368
1370
  "use strict";
1369
1371
  Object.defineProperty(exports, "__esModule", { value: true });
1370
1372
  exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;
@@ -1413,9 +1415,9 @@ var require_boolSchema = __commonJS({
1413
1415
  }
1414
1416
  });
1415
1417
 
1416
- // ../node_modules/ajv/dist/compile/rules.js
1418
+ // node_modules/ajv/dist/compile/rules.js
1417
1419
  var require_rules = __commonJS({
1418
- "../node_modules/ajv/dist/compile/rules.js"(exports) {
1420
+ "node_modules/ajv/dist/compile/rules.js"(exports) {
1419
1421
  "use strict";
1420
1422
  Object.defineProperty(exports, "__esModule", { value: true });
1421
1423
  exports.getRules = exports.isJSONType = void 0;
@@ -1444,9 +1446,9 @@ var require_rules = __commonJS({
1444
1446
  }
1445
1447
  });
1446
1448
 
1447
- // ../node_modules/ajv/dist/compile/validate/applicability.js
1449
+ // node_modules/ajv/dist/compile/validate/applicability.js
1448
1450
  var require_applicability = __commonJS({
1449
- "../node_modules/ajv/dist/compile/validate/applicability.js"(exports) {
1451
+ "node_modules/ajv/dist/compile/validate/applicability.js"(exports) {
1450
1452
  "use strict";
1451
1453
  Object.defineProperty(exports, "__esModule", { value: true });
1452
1454
  exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;
@@ -1467,9 +1469,9 @@ var require_applicability = __commonJS({
1467
1469
  }
1468
1470
  });
1469
1471
 
1470
- // ../node_modules/ajv/dist/compile/validate/dataType.js
1472
+ // node_modules/ajv/dist/compile/validate/dataType.js
1471
1473
  var require_dataType = __commonJS({
1472
- "../node_modules/ajv/dist/compile/validate/dataType.js"(exports) {
1474
+ "node_modules/ajv/dist/compile/validate/dataType.js"(exports) {
1473
1475
  "use strict";
1474
1476
  Object.defineProperty(exports, "__esModule", { value: true });
1475
1477
  exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;
@@ -1651,9 +1653,9 @@ var require_dataType = __commonJS({
1651
1653
  }
1652
1654
  });
1653
1655
 
1654
- // ../node_modules/ajv/dist/compile/validate/defaults.js
1656
+ // node_modules/ajv/dist/compile/validate/defaults.js
1655
1657
  var require_defaults = __commonJS({
1656
- "../node_modules/ajv/dist/compile/validate/defaults.js"(exports) {
1658
+ "node_modules/ajv/dist/compile/validate/defaults.js"(exports) {
1657
1659
  "use strict";
1658
1660
  Object.defineProperty(exports, "__esModule", { value: true });
1659
1661
  exports.assignDefaults = void 0;
@@ -1688,9 +1690,9 @@ var require_defaults = __commonJS({
1688
1690
  }
1689
1691
  });
1690
1692
 
1691
- // ../node_modules/ajv/dist/vocabularies/code.js
1693
+ // node_modules/ajv/dist/vocabularies/code.js
1692
1694
  var require_code2 = __commonJS({
1693
- "../node_modules/ajv/dist/vocabularies/code.js"(exports) {
1695
+ "node_modules/ajv/dist/vocabularies/code.js"(exports) {
1694
1696
  "use strict";
1695
1697
  Object.defineProperty(exports, "__esModule", { value: true });
1696
1698
  exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;
@@ -1821,9 +1823,9 @@ var require_code2 = __commonJS({
1821
1823
  }
1822
1824
  });
1823
1825
 
1824
- // ../node_modules/ajv/dist/compile/validate/keyword.js
1826
+ // node_modules/ajv/dist/compile/validate/keyword.js
1825
1827
  var require_keyword = __commonJS({
1826
- "../node_modules/ajv/dist/compile/validate/keyword.js"(exports) {
1828
+ "node_modules/ajv/dist/compile/validate/keyword.js"(exports) {
1827
1829
  "use strict";
1828
1830
  Object.defineProperty(exports, "__esModule", { value: true });
1829
1831
  exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;
@@ -1939,9 +1941,9 @@ var require_keyword = __commonJS({
1939
1941
  }
1940
1942
  });
1941
1943
 
1942
- // ../node_modules/ajv/dist/compile/validate/subschema.js
1944
+ // node_modules/ajv/dist/compile/validate/subschema.js
1943
1945
  var require_subschema = __commonJS({
1944
- "../node_modules/ajv/dist/compile/validate/subschema.js"(exports) {
1946
+ "node_modules/ajv/dist/compile/validate/subschema.js"(exports) {
1945
1947
  "use strict";
1946
1948
  Object.defineProperty(exports, "__esModule", { value: true });
1947
1949
  exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;
@@ -2022,9 +2024,9 @@ var require_subschema = __commonJS({
2022
2024
  }
2023
2025
  });
2024
2026
 
2025
- // ../node_modules/fast-deep-equal/index.js
2027
+ // node_modules/fast-deep-equal/index.js
2026
2028
  var require_fast_deep_equal = __commonJS({
2027
- "../node_modules/fast-deep-equal/index.js"(exports, module) {
2029
+ "node_modules/fast-deep-equal/index.js"(exports, module) {
2028
2030
  "use strict";
2029
2031
  module.exports = function equal(a, b) {
2030
2032
  if (a === b) return true;
@@ -2057,9 +2059,9 @@ var require_fast_deep_equal = __commonJS({
2057
2059
  }
2058
2060
  });
2059
2061
 
2060
- // ../node_modules/json-schema-traverse/index.js
2062
+ // node_modules/json-schema-traverse/index.js
2061
2063
  var require_json_schema_traverse = __commonJS({
2062
- "../node_modules/json-schema-traverse/index.js"(exports, module) {
2064
+ "node_modules/json-schema-traverse/index.js"(exports, module) {
2063
2065
  "use strict";
2064
2066
  var traverse = module.exports = function(schema, opts, cb) {
2065
2067
  if (typeof opts == "function") {
@@ -2145,9 +2147,9 @@ var require_json_schema_traverse = __commonJS({
2145
2147
  }
2146
2148
  });
2147
2149
 
2148
- // ../node_modules/ajv/dist/compile/resolve.js
2150
+ // node_modules/ajv/dist/compile/resolve.js
2149
2151
  var require_resolve = __commonJS({
2150
- "../node_modules/ajv/dist/compile/resolve.js"(exports) {
2152
+ "node_modules/ajv/dist/compile/resolve.js"(exports) {
2151
2153
  "use strict";
2152
2154
  Object.defineProperty(exports, "__esModule", { value: true });
2153
2155
  exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;
@@ -2301,9 +2303,9 @@ var require_resolve = __commonJS({
2301
2303
  }
2302
2304
  });
2303
2305
 
2304
- // ../node_modules/ajv/dist/compile/validate/index.js
2306
+ // node_modules/ajv/dist/compile/validate/index.js
2305
2307
  var require_validate = __commonJS({
2306
- "../node_modules/ajv/dist/compile/validate/index.js"(exports) {
2308
+ "node_modules/ajv/dist/compile/validate/index.js"(exports) {
2307
2309
  "use strict";
2308
2310
  Object.defineProperty(exports, "__esModule", { value: true });
2309
2311
  exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;
@@ -2809,9 +2811,9 @@ var require_validate = __commonJS({
2809
2811
  }
2810
2812
  });
2811
2813
 
2812
- // ../node_modules/ajv/dist/runtime/validation_error.js
2814
+ // node_modules/ajv/dist/runtime/validation_error.js
2813
2815
  var require_validation_error = __commonJS({
2814
- "../node_modules/ajv/dist/runtime/validation_error.js"(exports) {
2816
+ "node_modules/ajv/dist/runtime/validation_error.js"(exports) {
2815
2817
  "use strict";
2816
2818
  Object.defineProperty(exports, "__esModule", { value: true });
2817
2819
  var ValidationError = class extends Error {
@@ -2825,9 +2827,9 @@ var require_validation_error = __commonJS({
2825
2827
  }
2826
2828
  });
2827
2829
 
2828
- // ../node_modules/ajv/dist/compile/ref_error.js
2830
+ // node_modules/ajv/dist/compile/ref_error.js
2829
2831
  var require_ref_error = __commonJS({
2830
- "../node_modules/ajv/dist/compile/ref_error.js"(exports) {
2832
+ "node_modules/ajv/dist/compile/ref_error.js"(exports) {
2831
2833
  "use strict";
2832
2834
  Object.defineProperty(exports, "__esModule", { value: true });
2833
2835
  var resolve_1 = require_resolve();
@@ -2842,9 +2844,9 @@ var require_ref_error = __commonJS({
2842
2844
  }
2843
2845
  });
2844
2846
 
2845
- // ../node_modules/ajv/dist/compile/index.js
2847
+ // node_modules/ajv/dist/compile/index.js
2846
2848
  var require_compile = __commonJS({
2847
- "../node_modules/ajv/dist/compile/index.js"(exports) {
2849
+ "node_modules/ajv/dist/compile/index.js"(exports) {
2848
2850
  "use strict";
2849
2851
  Object.defineProperty(exports, "__esModule", { value: true });
2850
2852
  exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;
@@ -3066,9 +3068,9 @@ var require_compile = __commonJS({
3066
3068
  }
3067
3069
  });
3068
3070
 
3069
- // ../node_modules/ajv/dist/refs/data.json
3071
+ // node_modules/ajv/dist/refs/data.json
3070
3072
  var require_data = __commonJS({
3071
- "../node_modules/ajv/dist/refs/data.json"(exports, module) {
3073
+ "node_modules/ajv/dist/refs/data.json"(exports, module) {
3072
3074
  module.exports = {
3073
3075
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
3074
3076
  description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
@@ -3085,9 +3087,9 @@ var require_data = __commonJS({
3085
3087
  }
3086
3088
  });
3087
3089
 
3088
- // ../node_modules/fast-uri/lib/utils.js
3090
+ // node_modules/fast-uri/lib/utils.js
3089
3091
  var require_utils = __commonJS({
3090
- "../node_modules/fast-uri/lib/utils.js"(exports, module) {
3092
+ "node_modules/fast-uri/lib/utils.js"(exports, module) {
3091
3093
  "use strict";
3092
3094
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
3093
3095
  var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
@@ -3398,9 +3400,9 @@ var require_utils = __commonJS({
3398
3400
  }
3399
3401
  });
3400
3402
 
3401
- // ../node_modules/fast-uri/lib/schemes.js
3403
+ // node_modules/fast-uri/lib/schemes.js
3402
3404
  var require_schemes = __commonJS({
3403
- "../node_modules/fast-uri/lib/schemes.js"(exports, module) {
3405
+ "node_modules/fast-uri/lib/schemes.js"(exports, module) {
3404
3406
  "use strict";
3405
3407
  var { isUUID } = require_utils();
3406
3408
  var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
@@ -3608,9 +3610,9 @@ var require_schemes = __commonJS({
3608
3610
  }
3609
3611
  });
3610
3612
 
3611
- // ../node_modules/fast-uri/index.js
3613
+ // node_modules/fast-uri/index.js
3612
3614
  var require_fast_uri = __commonJS({
3613
- "../node_modules/fast-uri/index.js"(exports, module) {
3615
+ "node_modules/fast-uri/index.js"(exports, module) {
3614
3616
  "use strict";
3615
3617
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
3616
3618
  var { SCHEMES, getSchemeHandler } = require_schemes();
@@ -3626,7 +3628,12 @@ var require_fast_uri = __commonJS({
3626
3628
  }
3627
3629
  function resolve(baseURI, relativeURI, options) {
3628
3630
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3629
- const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3631
+ const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
3632
+ const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
3633
+ if (baseMalformed || relativeMalformed) {
3634
+ throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
3635
+ }
3636
+ const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
3630
3637
  schemelessOptions.skipEscape = true;
3631
3638
  return serialize(resolved, schemelessOptions);
3632
3639
  }
@@ -3751,6 +3758,8 @@ var require_fast_uri = __commonJS({
3751
3758
  return uriTokens.join("");
3752
3759
  }
3753
3760
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
3761
+ var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
3762
+ var AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
3754
3763
  function getParseError(parsed, matches) {
3755
3764
  if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") {
3756
3765
  return 'URI path must start with "/" when authority is present.';
@@ -3780,6 +3789,25 @@ var require_fast_uri = __commonJS({
3780
3789
  uri = "//" + uri;
3781
3790
  }
3782
3791
  }
3792
+ const authorityMatch = uri.match(AUTHORITY_PREFIX);
3793
+ if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
3794
+ parsed.error = "URI authority must not contain a literal backslash.";
3795
+ malformedAuthorityOrPort = true;
3796
+ }
3797
+ const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
3798
+ if (introducerMatch !== null) {
3799
+ const region = introducerMatch[1];
3800
+ const normalizedRegion = region.replace(/[\t\n\r]/g, "");
3801
+ if (normalizedRegion.length >= 2) {
3802
+ if (normalizedRegion.slice(0, 2) !== "//") {
3803
+ parsed.error = parsed.error || "URI authority must not contain a literal backslash.";
3804
+ malformedAuthorityOrPort = true;
3805
+ } else if (region.length !== normalizedRegion.length) {
3806
+ parsed.error = parsed.error || "URI authority introducer must not contain whitespace.";
3807
+ malformedAuthorityOrPort = true;
3808
+ }
3809
+ }
3810
+ }
3783
3811
  const matches = uri.match(URI_PARSE);
3784
3812
  if (matches) {
3785
3813
  parsed.scheme = matches[1];
@@ -3894,9 +3922,9 @@ var require_fast_uri = __commonJS({
3894
3922
  }
3895
3923
  });
3896
3924
 
3897
- // ../node_modules/ajv/dist/runtime/uri.js
3925
+ // node_modules/ajv/dist/runtime/uri.js
3898
3926
  var require_uri = __commonJS({
3899
- "../node_modules/ajv/dist/runtime/uri.js"(exports) {
3927
+ "node_modules/ajv/dist/runtime/uri.js"(exports) {
3900
3928
  "use strict";
3901
3929
  Object.defineProperty(exports, "__esModule", { value: true });
3902
3930
  var uri = require_fast_uri();
@@ -3905,9 +3933,9 @@ var require_uri = __commonJS({
3905
3933
  }
3906
3934
  });
3907
3935
 
3908
- // ../node_modules/ajv/dist/core.js
3936
+ // node_modules/ajv/dist/core.js
3909
3937
  var require_core = __commonJS({
3910
- "../node_modules/ajv/dist/core.js"(exports) {
3938
+ "node_modules/ajv/dist/core.js"(exports) {
3911
3939
  "use strict";
3912
3940
  Object.defineProperty(exports, "__esModule", { value: true });
3913
3941
  exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
@@ -4516,9 +4544,9 @@ var require_core = __commonJS({
4516
4544
  }
4517
4545
  });
4518
4546
 
4519
- // ../node_modules/ajv/dist/vocabularies/core/id.js
4547
+ // node_modules/ajv/dist/vocabularies/core/id.js
4520
4548
  var require_id = __commonJS({
4521
- "../node_modules/ajv/dist/vocabularies/core/id.js"(exports) {
4549
+ "node_modules/ajv/dist/vocabularies/core/id.js"(exports) {
4522
4550
  "use strict";
4523
4551
  Object.defineProperty(exports, "__esModule", { value: true });
4524
4552
  var def = {
@@ -4531,9 +4559,9 @@ var require_id = __commonJS({
4531
4559
  }
4532
4560
  });
4533
4561
 
4534
- // ../node_modules/ajv/dist/vocabularies/core/ref.js
4562
+ // node_modules/ajv/dist/vocabularies/core/ref.js
4535
4563
  var require_ref = __commonJS({
4536
- "../node_modules/ajv/dist/vocabularies/core/ref.js"(exports) {
4564
+ "node_modules/ajv/dist/vocabularies/core/ref.js"(exports) {
4537
4565
  "use strict";
4538
4566
  Object.defineProperty(exports, "__esModule", { value: true });
4539
4567
  exports.callRef = exports.getValidate = void 0;
@@ -4653,9 +4681,9 @@ var require_ref = __commonJS({
4653
4681
  }
4654
4682
  });
4655
4683
 
4656
- // ../node_modules/ajv/dist/vocabularies/core/index.js
4684
+ // node_modules/ajv/dist/vocabularies/core/index.js
4657
4685
  var require_core2 = __commonJS({
4658
- "../node_modules/ajv/dist/vocabularies/core/index.js"(exports) {
4686
+ "node_modules/ajv/dist/vocabularies/core/index.js"(exports) {
4659
4687
  "use strict";
4660
4688
  Object.defineProperty(exports, "__esModule", { value: true });
4661
4689
  var id_1 = require_id();
@@ -4674,9 +4702,9 @@ var require_core2 = __commonJS({
4674
4702
  }
4675
4703
  });
4676
4704
 
4677
- // ../node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4705
+ // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4678
4706
  var require_limitNumber = __commonJS({
4679
- "../node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) {
4707
+ "node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) {
4680
4708
  "use strict";
4681
4709
  Object.defineProperty(exports, "__esModule", { value: true });
4682
4710
  var codegen_1 = require_codegen();
@@ -4706,9 +4734,9 @@ var require_limitNumber = __commonJS({
4706
4734
  }
4707
4735
  });
4708
4736
 
4709
- // ../node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4737
+ // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4710
4738
  var require_multipleOf = __commonJS({
4711
- "../node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) {
4739
+ "node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) {
4712
4740
  "use strict";
4713
4741
  Object.defineProperty(exports, "__esModule", { value: true });
4714
4742
  var codegen_1 = require_codegen();
@@ -4734,9 +4762,9 @@ var require_multipleOf = __commonJS({
4734
4762
  }
4735
4763
  });
4736
4764
 
4737
- // ../node_modules/ajv/dist/runtime/ucs2length.js
4765
+ // node_modules/ajv/dist/runtime/ucs2length.js
4738
4766
  var require_ucs2length = __commonJS({
4739
- "../node_modules/ajv/dist/runtime/ucs2length.js"(exports) {
4767
+ "node_modules/ajv/dist/runtime/ucs2length.js"(exports) {
4740
4768
  "use strict";
4741
4769
  Object.defineProperty(exports, "__esModule", { value: true });
4742
4770
  function ucs2length(str) {
@@ -4760,9 +4788,9 @@ var require_ucs2length = __commonJS({
4760
4788
  }
4761
4789
  });
4762
4790
 
4763
- // ../node_modules/ajv/dist/vocabularies/validation/limitLength.js
4791
+ // node_modules/ajv/dist/vocabularies/validation/limitLength.js
4764
4792
  var require_limitLength = __commonJS({
4765
- "../node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) {
4793
+ "node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) {
4766
4794
  "use strict";
4767
4795
  Object.defineProperty(exports, "__esModule", { value: true });
4768
4796
  var codegen_1 = require_codegen();
@@ -4792,9 +4820,9 @@ var require_limitLength = __commonJS({
4792
4820
  }
4793
4821
  });
4794
4822
 
4795
- // ../node_modules/ajv/dist/vocabularies/validation/pattern.js
4823
+ // node_modules/ajv/dist/vocabularies/validation/pattern.js
4796
4824
  var require_pattern = __commonJS({
4797
- "../node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) {
4825
+ "node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) {
4798
4826
  "use strict";
4799
4827
  Object.defineProperty(exports, "__esModule", { value: true });
4800
4828
  var code_1 = require_code2();
@@ -4829,9 +4857,9 @@ var require_pattern = __commonJS({
4829
4857
  }
4830
4858
  });
4831
4859
 
4832
- // ../node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4860
+ // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4833
4861
  var require_limitProperties = __commonJS({
4834
- "../node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) {
4862
+ "node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) {
4835
4863
  "use strict";
4836
4864
  Object.defineProperty(exports, "__esModule", { value: true });
4837
4865
  var codegen_1 = require_codegen();
@@ -4858,9 +4886,9 @@ var require_limitProperties = __commonJS({
4858
4886
  }
4859
4887
  });
4860
4888
 
4861
- // ../node_modules/ajv/dist/vocabularies/validation/required.js
4889
+ // node_modules/ajv/dist/vocabularies/validation/required.js
4862
4890
  var require_required = __commonJS({
4863
- "../node_modules/ajv/dist/vocabularies/validation/required.js"(exports) {
4891
+ "node_modules/ajv/dist/vocabularies/validation/required.js"(exports) {
4864
4892
  "use strict";
4865
4893
  Object.defineProperty(exports, "__esModule", { value: true });
4866
4894
  var code_1 = require_code2();
@@ -4940,9 +4968,9 @@ var require_required = __commonJS({
4940
4968
  }
4941
4969
  });
4942
4970
 
4943
- // ../node_modules/ajv/dist/vocabularies/validation/limitItems.js
4971
+ // node_modules/ajv/dist/vocabularies/validation/limitItems.js
4944
4972
  var require_limitItems = __commonJS({
4945
- "../node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) {
4973
+ "node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) {
4946
4974
  "use strict";
4947
4975
  Object.defineProperty(exports, "__esModule", { value: true });
4948
4976
  var codegen_1 = require_codegen();
@@ -4969,9 +4997,9 @@ var require_limitItems = __commonJS({
4969
4997
  }
4970
4998
  });
4971
4999
 
4972
- // ../node_modules/ajv/dist/runtime/equal.js
5000
+ // node_modules/ajv/dist/runtime/equal.js
4973
5001
  var require_equal = __commonJS({
4974
- "../node_modules/ajv/dist/runtime/equal.js"(exports) {
5002
+ "node_modules/ajv/dist/runtime/equal.js"(exports) {
4975
5003
  "use strict";
4976
5004
  Object.defineProperty(exports, "__esModule", { value: true });
4977
5005
  var equal = require_fast_deep_equal();
@@ -4980,9 +5008,9 @@ var require_equal = __commonJS({
4980
5008
  }
4981
5009
  });
4982
5010
 
4983
- // ../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
5011
+ // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4984
5012
  var require_uniqueItems = __commonJS({
4985
- "../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) {
5013
+ "node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) {
4986
5014
  "use strict";
4987
5015
  Object.defineProperty(exports, "__esModule", { value: true });
4988
5016
  var dataType_1 = require_dataType();
@@ -5047,9 +5075,9 @@ var require_uniqueItems = __commonJS({
5047
5075
  }
5048
5076
  });
5049
5077
 
5050
- // ../node_modules/ajv/dist/vocabularies/validation/const.js
5078
+ // node_modules/ajv/dist/vocabularies/validation/const.js
5051
5079
  var require_const = __commonJS({
5052
- "../node_modules/ajv/dist/vocabularies/validation/const.js"(exports) {
5080
+ "node_modules/ajv/dist/vocabularies/validation/const.js"(exports) {
5053
5081
  "use strict";
5054
5082
  Object.defineProperty(exports, "__esModule", { value: true });
5055
5083
  var codegen_1 = require_codegen();
@@ -5076,9 +5104,9 @@ var require_const = __commonJS({
5076
5104
  }
5077
5105
  });
5078
5106
 
5079
- // ../node_modules/ajv/dist/vocabularies/validation/enum.js
5107
+ // node_modules/ajv/dist/vocabularies/validation/enum.js
5080
5108
  var require_enum = __commonJS({
5081
- "../node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) {
5109
+ "node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) {
5082
5110
  "use strict";
5083
5111
  Object.defineProperty(exports, "__esModule", { value: true });
5084
5112
  var codegen_1 = require_codegen();
@@ -5125,9 +5153,9 @@ var require_enum = __commonJS({
5125
5153
  }
5126
5154
  });
5127
5155
 
5128
- // ../node_modules/ajv/dist/vocabularies/validation/index.js
5156
+ // node_modules/ajv/dist/vocabularies/validation/index.js
5129
5157
  var require_validation = __commonJS({
5130
- "../node_modules/ajv/dist/vocabularies/validation/index.js"(exports) {
5158
+ "node_modules/ajv/dist/vocabularies/validation/index.js"(exports) {
5131
5159
  "use strict";
5132
5160
  Object.defineProperty(exports, "__esModule", { value: true });
5133
5161
  var limitNumber_1 = require_limitNumber();
@@ -5163,9 +5191,9 @@ var require_validation = __commonJS({
5163
5191
  }
5164
5192
  });
5165
5193
 
5166
- // ../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5194
+ // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5167
5195
  var require_additionalItems = __commonJS({
5168
- "../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) {
5196
+ "node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) {
5169
5197
  "use strict";
5170
5198
  Object.defineProperty(exports, "__esModule", { value: true });
5171
5199
  exports.validateAdditionalItems = void 0;
@@ -5216,9 +5244,9 @@ var require_additionalItems = __commonJS({
5216
5244
  }
5217
5245
  });
5218
5246
 
5219
- // ../node_modules/ajv/dist/vocabularies/applicator/items.js
5247
+ // node_modules/ajv/dist/vocabularies/applicator/items.js
5220
5248
  var require_items = __commonJS({
5221
- "../node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) {
5249
+ "node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) {
5222
5250
  "use strict";
5223
5251
  Object.defineProperty(exports, "__esModule", { value: true });
5224
5252
  exports.validateTuple = void 0;
@@ -5273,9 +5301,9 @@ var require_items = __commonJS({
5273
5301
  }
5274
5302
  });
5275
5303
 
5276
- // ../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5304
+ // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5277
5305
  var require_prefixItems = __commonJS({
5278
- "../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) {
5306
+ "node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) {
5279
5307
  "use strict";
5280
5308
  Object.defineProperty(exports, "__esModule", { value: true });
5281
5309
  var items_1 = require_items();
@@ -5290,9 +5318,9 @@ var require_prefixItems = __commonJS({
5290
5318
  }
5291
5319
  });
5292
5320
 
5293
- // ../node_modules/ajv/dist/vocabularies/applicator/items2020.js
5321
+ // node_modules/ajv/dist/vocabularies/applicator/items2020.js
5294
5322
  var require_items2020 = __commonJS({
5295
- "../node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) {
5323
+ "node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) {
5296
5324
  "use strict";
5297
5325
  Object.defineProperty(exports, "__esModule", { value: true });
5298
5326
  var codegen_1 = require_codegen();
@@ -5325,9 +5353,9 @@ var require_items2020 = __commonJS({
5325
5353
  }
5326
5354
  });
5327
5355
 
5328
- // ../node_modules/ajv/dist/vocabularies/applicator/contains.js
5356
+ // node_modules/ajv/dist/vocabularies/applicator/contains.js
5329
5357
  var require_contains = __commonJS({
5330
- "../node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) {
5358
+ "node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) {
5331
5359
  "use strict";
5332
5360
  Object.defineProperty(exports, "__esModule", { value: true });
5333
5361
  var codegen_1 = require_codegen();
@@ -5419,9 +5447,9 @@ var require_contains = __commonJS({
5419
5447
  }
5420
5448
  });
5421
5449
 
5422
- // ../node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5450
+ // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5423
5451
  var require_dependencies = __commonJS({
5424
- "../node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) {
5452
+ "node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) {
5425
5453
  "use strict";
5426
5454
  Object.defineProperty(exports, "__esModule", { value: true });
5427
5455
  exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;
@@ -5513,9 +5541,9 @@ var require_dependencies = __commonJS({
5513
5541
  }
5514
5542
  });
5515
5543
 
5516
- // ../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5544
+ // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5517
5545
  var require_propertyNames = __commonJS({
5518
- "../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) {
5546
+ "node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) {
5519
5547
  "use strict";
5520
5548
  Object.defineProperty(exports, "__esModule", { value: true });
5521
5549
  var codegen_1 = require_codegen();
@@ -5556,9 +5584,9 @@ var require_propertyNames = __commonJS({
5556
5584
  }
5557
5585
  });
5558
5586
 
5559
- // ../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5587
+ // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5560
5588
  var require_additionalProperties = __commonJS({
5561
- "../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) {
5589
+ "node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) {
5562
5590
  "use strict";
5563
5591
  Object.defineProperty(exports, "__esModule", { value: true });
5564
5592
  var code_1 = require_code2();
@@ -5662,9 +5690,9 @@ var require_additionalProperties = __commonJS({
5662
5690
  }
5663
5691
  });
5664
5692
 
5665
- // ../node_modules/ajv/dist/vocabularies/applicator/properties.js
5693
+ // node_modules/ajv/dist/vocabularies/applicator/properties.js
5666
5694
  var require_properties = __commonJS({
5667
- "../node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) {
5695
+ "node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) {
5668
5696
  "use strict";
5669
5697
  Object.defineProperty(exports, "__esModule", { value: true });
5670
5698
  var validate_1 = require_validate();
@@ -5720,9 +5748,9 @@ var require_properties = __commonJS({
5720
5748
  }
5721
5749
  });
5722
5750
 
5723
- // ../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5751
+ // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5724
5752
  var require_patternProperties = __commonJS({
5725
- "../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) {
5753
+ "node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) {
5726
5754
  "use strict";
5727
5755
  Object.defineProperty(exports, "__esModule", { value: true });
5728
5756
  var code_1 = require_code2();
@@ -5794,9 +5822,9 @@ var require_patternProperties = __commonJS({
5794
5822
  }
5795
5823
  });
5796
5824
 
5797
- // ../node_modules/ajv/dist/vocabularies/applicator/not.js
5825
+ // node_modules/ajv/dist/vocabularies/applicator/not.js
5798
5826
  var require_not = __commonJS({
5799
- "../node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) {
5827
+ "node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) {
5800
5828
  "use strict";
5801
5829
  Object.defineProperty(exports, "__esModule", { value: true });
5802
5830
  var util_1 = require_util();
@@ -5825,9 +5853,9 @@ var require_not = __commonJS({
5825
5853
  }
5826
5854
  });
5827
5855
 
5828
- // ../node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5856
+ // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5829
5857
  var require_anyOf = __commonJS({
5830
- "../node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) {
5858
+ "node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) {
5831
5859
  "use strict";
5832
5860
  Object.defineProperty(exports, "__esModule", { value: true });
5833
5861
  var code_1 = require_code2();
@@ -5842,9 +5870,9 @@ var require_anyOf = __commonJS({
5842
5870
  }
5843
5871
  });
5844
5872
 
5845
- // ../node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5873
+ // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5846
5874
  var require_oneOf = __commonJS({
5847
- "../node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) {
5875
+ "node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) {
5848
5876
  "use strict";
5849
5877
  Object.defineProperty(exports, "__esModule", { value: true });
5850
5878
  var codegen_1 = require_codegen();
@@ -5900,9 +5928,9 @@ var require_oneOf = __commonJS({
5900
5928
  }
5901
5929
  });
5902
5930
 
5903
- // ../node_modules/ajv/dist/vocabularies/applicator/allOf.js
5931
+ // node_modules/ajv/dist/vocabularies/applicator/allOf.js
5904
5932
  var require_allOf = __commonJS({
5905
- "../node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) {
5933
+ "node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) {
5906
5934
  "use strict";
5907
5935
  Object.defineProperty(exports, "__esModule", { value: true });
5908
5936
  var util_1 = require_util();
@@ -5927,9 +5955,9 @@ var require_allOf = __commonJS({
5927
5955
  }
5928
5956
  });
5929
5957
 
5930
- // ../node_modules/ajv/dist/vocabularies/applicator/if.js
5958
+ // node_modules/ajv/dist/vocabularies/applicator/if.js
5931
5959
  var require_if = __commonJS({
5932
- "../node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) {
5960
+ "node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) {
5933
5961
  "use strict";
5934
5962
  Object.defineProperty(exports, "__esModule", { value: true });
5935
5963
  var codegen_1 = require_codegen();
@@ -5996,9 +6024,9 @@ var require_if = __commonJS({
5996
6024
  }
5997
6025
  });
5998
6026
 
5999
- // ../node_modules/ajv/dist/vocabularies/applicator/thenElse.js
6027
+ // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
6000
6028
  var require_thenElse = __commonJS({
6001
- "../node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) {
6029
+ "node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) {
6002
6030
  "use strict";
6003
6031
  Object.defineProperty(exports, "__esModule", { value: true });
6004
6032
  var util_1 = require_util();
@@ -6014,9 +6042,9 @@ var require_thenElse = __commonJS({
6014
6042
  }
6015
6043
  });
6016
6044
 
6017
- // ../node_modules/ajv/dist/vocabularies/applicator/index.js
6045
+ // node_modules/ajv/dist/vocabularies/applicator/index.js
6018
6046
  var require_applicator = __commonJS({
6019
- "../node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) {
6047
+ "node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) {
6020
6048
  "use strict";
6021
6049
  Object.defineProperty(exports, "__esModule", { value: true });
6022
6050
  var additionalItems_1 = require_additionalItems();
@@ -6062,9 +6090,9 @@ var require_applicator = __commonJS({
6062
6090
  }
6063
6091
  });
6064
6092
 
6065
- // ../node_modules/ajv/dist/vocabularies/format/format.js
6093
+ // node_modules/ajv/dist/vocabularies/format/format.js
6066
6094
  var require_format = __commonJS({
6067
- "../node_modules/ajv/dist/vocabularies/format/format.js"(exports) {
6095
+ "node_modules/ajv/dist/vocabularies/format/format.js"(exports) {
6068
6096
  "use strict";
6069
6097
  Object.defineProperty(exports, "__esModule", { value: true });
6070
6098
  var codegen_1 = require_codegen();
@@ -6152,9 +6180,9 @@ var require_format = __commonJS({
6152
6180
  }
6153
6181
  });
6154
6182
 
6155
- // ../node_modules/ajv/dist/vocabularies/format/index.js
6183
+ // node_modules/ajv/dist/vocabularies/format/index.js
6156
6184
  var require_format2 = __commonJS({
6157
- "../node_modules/ajv/dist/vocabularies/format/index.js"(exports) {
6185
+ "node_modules/ajv/dist/vocabularies/format/index.js"(exports) {
6158
6186
  "use strict";
6159
6187
  Object.defineProperty(exports, "__esModule", { value: true });
6160
6188
  var format_1 = require_format();
@@ -6163,9 +6191,9 @@ var require_format2 = __commonJS({
6163
6191
  }
6164
6192
  });
6165
6193
 
6166
- // ../node_modules/ajv/dist/vocabularies/metadata.js
6194
+ // node_modules/ajv/dist/vocabularies/metadata.js
6167
6195
  var require_metadata = __commonJS({
6168
- "../node_modules/ajv/dist/vocabularies/metadata.js"(exports) {
6196
+ "node_modules/ajv/dist/vocabularies/metadata.js"(exports) {
6169
6197
  "use strict";
6170
6198
  Object.defineProperty(exports, "__esModule", { value: true });
6171
6199
  exports.contentVocabulary = exports.metadataVocabulary = void 0;
@@ -6186,9 +6214,9 @@ var require_metadata = __commonJS({
6186
6214
  }
6187
6215
  });
6188
6216
 
6189
- // ../node_modules/ajv/dist/vocabularies/draft7.js
6217
+ // node_modules/ajv/dist/vocabularies/draft7.js
6190
6218
  var require_draft7 = __commonJS({
6191
- "../node_modules/ajv/dist/vocabularies/draft7.js"(exports) {
6219
+ "node_modules/ajv/dist/vocabularies/draft7.js"(exports) {
6192
6220
  "use strict";
6193
6221
  Object.defineProperty(exports, "__esModule", { value: true });
6194
6222
  var core_1 = require_core2();
@@ -6208,9 +6236,9 @@ var require_draft7 = __commonJS({
6208
6236
  }
6209
6237
  });
6210
6238
 
6211
- // ../node_modules/ajv/dist/vocabularies/discriminator/types.js
6239
+ // node_modules/ajv/dist/vocabularies/discriminator/types.js
6212
6240
  var require_types = __commonJS({
6213
- "../node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) {
6241
+ "node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) {
6214
6242
  "use strict";
6215
6243
  Object.defineProperty(exports, "__esModule", { value: true });
6216
6244
  exports.DiscrError = void 0;
@@ -6222,9 +6250,9 @@ var require_types = __commonJS({
6222
6250
  }
6223
6251
  });
6224
6252
 
6225
- // ../node_modules/ajv/dist/vocabularies/discriminator/index.js
6253
+ // node_modules/ajv/dist/vocabularies/discriminator/index.js
6226
6254
  var require_discriminator = __commonJS({
6227
- "../node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) {
6255
+ "node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) {
6228
6256
  "use strict";
6229
6257
  Object.defineProperty(exports, "__esModule", { value: true });
6230
6258
  var codegen_1 = require_codegen();
@@ -6327,9 +6355,9 @@ var require_discriminator = __commonJS({
6327
6355
  }
6328
6356
  });
6329
6357
 
6330
- // ../node_modules/ajv/dist/refs/json-schema-draft-07.json
6358
+ // node_modules/ajv/dist/refs/json-schema-draft-07.json
6331
6359
  var require_json_schema_draft_07 = __commonJS({
6332
- "../node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module) {
6360
+ "node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module) {
6333
6361
  module.exports = {
6334
6362
  $schema: "http://json-schema.org/draft-07/schema#",
6335
6363
  $id: "http://json-schema.org/draft-07/schema#",
@@ -6484,9 +6512,9 @@ var require_json_schema_draft_07 = __commonJS({
6484
6512
  }
6485
6513
  });
6486
6514
 
6487
- // ../node_modules/ajv/dist/ajv.js
6515
+ // node_modules/ajv/dist/ajv.js
6488
6516
  var require_ajv = __commonJS({
6489
- "../node_modules/ajv/dist/ajv.js"(exports, module) {
6517
+ "node_modules/ajv/dist/ajv.js"(exports, module) {
6490
6518
  "use strict";
6491
6519
  Object.defineProperty(exports, "__esModule", { value: true });
6492
6520
  exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;
@@ -6554,9 +6582,9 @@ var require_ajv = __commonJS({
6554
6582
  }
6555
6583
  });
6556
6584
 
6557
- // ../node_modules/ajv-formats/dist/formats.js
6585
+ // node_modules/ajv-formats/dist/formats.js
6558
6586
  var require_formats = __commonJS({
6559
- "../node_modules/ajv-formats/dist/formats.js"(exports) {
6587
+ "node_modules/ajv-formats/dist/formats.js"(exports) {
6560
6588
  "use strict";
6561
6589
  Object.defineProperty(exports, "__esModule", { value: true });
6562
6590
  exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
@@ -6757,9 +6785,9 @@ var require_formats = __commonJS({
6757
6785
  }
6758
6786
  });
6759
6787
 
6760
- // ../node_modules/ajv-formats/dist/limit.js
6788
+ // node_modules/ajv-formats/dist/limit.js
6761
6789
  var require_limit = __commonJS({
6762
- "../node_modules/ajv-formats/dist/limit.js"(exports) {
6790
+ "node_modules/ajv-formats/dist/limit.js"(exports) {
6763
6791
  "use strict";
6764
6792
  Object.defineProperty(exports, "__esModule", { value: true });
6765
6793
  exports.formatLimitDefinition = void 0;
@@ -6829,9 +6857,9 @@ var require_limit = __commonJS({
6829
6857
  }
6830
6858
  });
6831
6859
 
6832
- // ../node_modules/ajv-formats/dist/index.js
6860
+ // node_modules/ajv-formats/dist/index.js
6833
6861
  var require_dist = __commonJS({
6834
- "../node_modules/ajv-formats/dist/index.js"(exports, module) {
6862
+ "node_modules/ajv-formats/dist/index.js"(exports, module) {
6835
6863
  "use strict";
6836
6864
  Object.defineProperty(exports, "__esModule", { value: true });
6837
6865
  var formats_1 = require_formats();
@@ -6875,7 +6903,7 @@ var require_dist = __commonJS({
6875
6903
  import { readFileSync } from "node:fs";
6876
6904
  import { fileURLToPath } from "node:url";
6877
6905
 
6878
- // ../node_modules/zod/v3/helpers/util.js
6906
+ // node_modules/zod/v3/helpers/util.js
6879
6907
  var util;
6880
6908
  (function(util2) {
6881
6909
  util2.assertEqual = (_) => {
@@ -7009,7 +7037,7 @@ var getParsedType = (data) => {
7009
7037
  }
7010
7038
  };
7011
7039
 
7012
- // ../node_modules/zod/v3/ZodError.js
7040
+ // node_modules/zod/v3/ZodError.js
7013
7041
  var ZodIssueCode = util.arrayToEnum([
7014
7042
  "invalid_type",
7015
7043
  "invalid_literal",
@@ -7123,7 +7151,7 @@ ZodError.create = (issues) => {
7123
7151
  return error51;
7124
7152
  };
7125
7153
 
7126
- // ../node_modules/zod/v3/locales/en.js
7154
+ // node_modules/zod/v3/locales/en.js
7127
7155
  var errorMap = (issue2, _ctx) => {
7128
7156
  let message;
7129
7157
  switch (issue2.code) {
@@ -7226,13 +7254,13 @@ var errorMap = (issue2, _ctx) => {
7226
7254
  };
7227
7255
  var en_default = errorMap;
7228
7256
 
7229
- // ../node_modules/zod/v3/errors.js
7257
+ // node_modules/zod/v3/errors.js
7230
7258
  var overrideErrorMap = en_default;
7231
7259
  function getErrorMap() {
7232
7260
  return overrideErrorMap;
7233
7261
  }
7234
7262
 
7235
- // ../node_modules/zod/v3/helpers/parseUtil.js
7263
+ // node_modules/zod/v3/helpers/parseUtil.js
7236
7264
  var makeIssue = (params) => {
7237
7265
  const { data, path, errorMaps, issueData } = params;
7238
7266
  const fullPath = [...path, ...issueData.path || []];
@@ -7341,14 +7369,14 @@ var isDirty = (x) => x.status === "dirty";
7341
7369
  var isValid = (x) => x.status === "valid";
7342
7370
  var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
7343
7371
 
7344
- // ../node_modules/zod/v3/helpers/errorUtil.js
7372
+ // node_modules/zod/v3/helpers/errorUtil.js
7345
7373
  var errorUtil;
7346
7374
  (function(errorUtil2) {
7347
7375
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
7348
7376
  errorUtil2.toString = (message) => typeof message === "string" ? message : message?.message;
7349
7377
  })(errorUtil || (errorUtil = {}));
7350
7378
 
7351
- // ../node_modules/zod/v3/types.js
7379
+ // node_modules/zod/v3/types.js
7352
7380
  var ParseInputLazyPath = class {
7353
7381
  constructor(parent, value, path, key) {
7354
7382
  this._cachedPath = [];
@@ -10752,7 +10780,7 @@ var nullableType = ZodNullable.create;
10752
10780
  var preprocessType = ZodEffects.createWithPreprocess;
10753
10781
  var pipelineType = ZodPipeline.create;
10754
10782
 
10755
- // ../node_modules/zod/v4/core/index.js
10783
+ // node_modules/zod/v4/core/index.js
10756
10784
  var core_exports2 = {};
10757
10785
  __export(core_exports2, {
10758
10786
  $ZodAny: () => $ZodAny,
@@ -11031,7 +11059,7 @@ __export(core_exports2, {
11031
11059
  version: () => version
11032
11060
  });
11033
11061
 
11034
- // ../node_modules/zod/v4/core/core.js
11062
+ // node_modules/zod/v4/core/core.js
11035
11063
  var _a;
11036
11064
  var NEVER = /* @__PURE__ */ Object.freeze({
11037
11065
  status: "aborted"
@@ -11108,7 +11136,7 @@ function config(newConfig) {
11108
11136
  return globalConfig;
11109
11137
  }
11110
11138
 
11111
- // ../node_modules/zod/v4/core/util.js
11139
+ // node_modules/zod/v4/core/util.js
11112
11140
  var util_exports = {};
11113
11141
  __export(util_exports, {
11114
11142
  BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
@@ -11804,7 +11832,7 @@ var Class = class {
11804
11832
  }
11805
11833
  };
11806
11834
 
11807
- // ../node_modules/zod/v4/core/errors.js
11835
+ // node_modules/zod/v4/core/errors.js
11808
11836
  var initializer = (inst, def) => {
11809
11837
  inst.name = "$ZodError";
11810
11838
  Object.defineProperty(inst, "_zod", {
@@ -11943,7 +11971,7 @@ function prettifyError(error51) {
11943
11971
  return lines.join("\n");
11944
11972
  }
11945
11973
 
11946
- // ../node_modules/zod/v4/core/parse.js
11974
+ // node_modules/zod/v4/core/parse.js
11947
11975
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
11948
11976
  const ctx = _ctx ? { ..._ctx, async: false } : { async: false };
11949
11977
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -12031,7 +12059,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
12031
12059
  };
12032
12060
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
12033
12061
 
12034
- // ../node_modules/zod/v4/core/regexes.js
12062
+ // node_modules/zod/v4/core/regexes.js
12035
12063
  var regexes_exports = {};
12036
12064
  __export(regexes_exports, {
12037
12065
  base64: () => base64,
@@ -12190,7 +12218,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
12190
12218
  var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
12191
12219
  var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
12192
12220
 
12193
- // ../node_modules/zod/v4/core/checks.js
12221
+ // node_modules/zod/v4/core/checks.js
12194
12222
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
12195
12223
  var _a3;
12196
12224
  inst._zod ?? (inst._zod = {});
@@ -12738,7 +12766,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
12738
12766
  };
12739
12767
  });
12740
12768
 
12741
- // ../node_modules/zod/v4/core/doc.js
12769
+ // node_modules/zod/v4/core/doc.js
12742
12770
  var Doc = class {
12743
12771
  constructor(args = []) {
12744
12772
  this.content = [];
@@ -12774,14 +12802,14 @@ var Doc = class {
12774
12802
  }
12775
12803
  };
12776
12804
 
12777
- // ../node_modules/zod/v4/core/versions.js
12805
+ // node_modules/zod/v4/core/versions.js
12778
12806
  var version = {
12779
12807
  major: 4,
12780
12808
  minor: 4,
12781
12809
  patch: 3
12782
12810
  };
12783
12811
 
12784
- // ../node_modules/zod/v4/core/schemas.js
12812
+ // node_modules/zod/v4/core/schemas.js
12785
12813
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
12786
12814
  var _a3;
12787
12815
  inst ?? (inst = {});
@@ -14874,7 +14902,7 @@ function handleRefineResult(result, payload, input, inst) {
14874
14902
  }
14875
14903
  }
14876
14904
 
14877
- // ../node_modules/zod/v4/locales/index.js
14905
+ // node_modules/zod/v4/locales/index.js
14878
14906
  var locales_exports = {};
14879
14907
  __export(locales_exports, {
14880
14908
  ar: () => ar_default,
@@ -14931,7 +14959,7 @@ __export(locales_exports, {
14931
14959
  zhTW: () => zh_TW_default
14932
14960
  });
14933
14961
 
14934
- // ../node_modules/zod/v4/locales/ar.js
14962
+ // node_modules/zod/v4/locales/ar.js
14935
14963
  var error = () => {
14936
14964
  const Sizable = {
14937
14965
  string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
@@ -15038,7 +15066,7 @@ function ar_default() {
15038
15066
  };
15039
15067
  }
15040
15068
 
15041
- // ../node_modules/zod/v4/locales/az.js
15069
+ // node_modules/zod/v4/locales/az.js
15042
15070
  var error2 = () => {
15043
15071
  const Sizable = {
15044
15072
  string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
@@ -15144,7 +15172,7 @@ function az_default() {
15144
15172
  };
15145
15173
  }
15146
15174
 
15147
- // ../node_modules/zod/v4/locales/be.js
15175
+ // node_modules/zod/v4/locales/be.js
15148
15176
  function getBelarusianPlural(count, one, few, many) {
15149
15177
  const absCount = Math.abs(count);
15150
15178
  const lastDigit = absCount % 10;
@@ -15301,7 +15329,7 @@ function be_default() {
15301
15329
  };
15302
15330
  }
15303
15331
 
15304
- // ../node_modules/zod/v4/locales/bg.js
15332
+ // node_modules/zod/v4/locales/bg.js
15305
15333
  var error4 = () => {
15306
15334
  const Sizable = {
15307
15335
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" },
@@ -15422,7 +15450,7 @@ function bg_default() {
15422
15450
  };
15423
15451
  }
15424
15452
 
15425
- // ../node_modules/zod/v4/locales/ca.js
15453
+ // node_modules/zod/v4/locales/ca.js
15426
15454
  var error5 = () => {
15427
15455
  const Sizable = {
15428
15456
  string: { unit: "car\xE0cters", verb: "contenir" },
@@ -15531,7 +15559,7 @@ function ca_default() {
15531
15559
  };
15532
15560
  }
15533
15561
 
15534
- // ../node_modules/zod/v4/locales/cs.js
15562
+ // node_modules/zod/v4/locales/cs.js
15535
15563
  var error6 = () => {
15536
15564
  const Sizable = {
15537
15565
  string: { unit: "znak\u016F", verb: "m\xEDt" },
@@ -15643,7 +15671,7 @@ function cs_default() {
15643
15671
  };
15644
15672
  }
15645
15673
 
15646
- // ../node_modules/zod/v4/locales/da.js
15674
+ // node_modules/zod/v4/locales/da.js
15647
15675
  var error7 = () => {
15648
15676
  const Sizable = {
15649
15677
  string: { unit: "tegn", verb: "havde" },
@@ -15759,7 +15787,7 @@ function da_default() {
15759
15787
  };
15760
15788
  }
15761
15789
 
15762
- // ../node_modules/zod/v4/locales/de.js
15790
+ // node_modules/zod/v4/locales/de.js
15763
15791
  var error8 = () => {
15764
15792
  const Sizable = {
15765
15793
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -15868,7 +15896,7 @@ function de_default() {
15868
15896
  };
15869
15897
  }
15870
15898
 
15871
- // ../node_modules/zod/v4/locales/el.js
15899
+ // node_modules/zod/v4/locales/el.js
15872
15900
  var error9 = () => {
15873
15901
  const Sizable = {
15874
15902
  string: { unit: "\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" },
@@ -15978,7 +16006,7 @@ function el_default() {
15978
16006
  };
15979
16007
  }
15980
16008
 
15981
- // ../node_modules/zod/v4/locales/en.js
16009
+ // node_modules/zod/v4/locales/en.js
15982
16010
  var error10 = () => {
15983
16011
  const Sizable = {
15984
16012
  string: { unit: "characters", verb: "to have" },
@@ -16091,7 +16119,7 @@ function en_default2() {
16091
16119
  };
16092
16120
  }
16093
16121
 
16094
- // ../node_modules/zod/v4/locales/eo.js
16122
+ // node_modules/zod/v4/locales/eo.js
16095
16123
  var error11 = () => {
16096
16124
  const Sizable = {
16097
16125
  string: { unit: "karaktrojn", verb: "havi" },
@@ -16201,7 +16229,7 @@ function eo_default() {
16201
16229
  };
16202
16230
  }
16203
16231
 
16204
- // ../node_modules/zod/v4/locales/es.js
16232
+ // node_modules/zod/v4/locales/es.js
16205
16233
  var error12 = () => {
16206
16234
  const Sizable = {
16207
16235
  string: { unit: "caracteres", verb: "tener" },
@@ -16334,7 +16362,7 @@ function es_default() {
16334
16362
  };
16335
16363
  }
16336
16364
 
16337
- // ../node_modules/zod/v4/locales/fa.js
16365
+ // node_modules/zod/v4/locales/fa.js
16338
16366
  var error13 = () => {
16339
16367
  const Sizable = {
16340
16368
  string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
@@ -16449,7 +16477,7 @@ function fa_default() {
16449
16477
  };
16450
16478
  }
16451
16479
 
16452
- // ../node_modules/zod/v4/locales/fi.js
16480
+ // node_modules/zod/v4/locales/fi.js
16453
16481
  var error14 = () => {
16454
16482
  const Sizable = {
16455
16483
  string: { unit: "merkki\xE4", subject: "merkkijonon" },
@@ -16562,7 +16590,7 @@ function fi_default() {
16562
16590
  };
16563
16591
  }
16564
16592
 
16565
- // ../node_modules/zod/v4/locales/fr.js
16593
+ // node_modules/zod/v4/locales/fr.js
16566
16594
  var error15 = () => {
16567
16595
  const Sizable = {
16568
16596
  string: { unit: "caract\xE8res", verb: "avoir" },
@@ -16688,7 +16716,7 @@ function fr_default() {
16688
16716
  };
16689
16717
  }
16690
16718
 
16691
- // ../node_modules/zod/v4/locales/fr-CA.js
16719
+ // node_modules/zod/v4/locales/fr-CA.js
16692
16720
  var error16 = () => {
16693
16721
  const Sizable = {
16694
16722
  string: { unit: "caract\xE8res", verb: "avoir" },
@@ -16796,7 +16824,7 @@ function fr_CA_default() {
16796
16824
  };
16797
16825
  }
16798
16826
 
16799
- // ../node_modules/zod/v4/locales/he.js
16827
+ // node_modules/zod/v4/locales/he.js
16800
16828
  var error17 = () => {
16801
16829
  const TypeNames = {
16802
16830
  string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" },
@@ -16991,7 +17019,7 @@ function he_default() {
16991
17019
  };
16992
17020
  }
16993
17021
 
16994
- // ../node_modules/zod/v4/locales/hr.js
17022
+ // node_modules/zod/v4/locales/hr.js
16995
17023
  var error18 = () => {
16996
17024
  const Sizable = {
16997
17025
  string: { unit: "znakova", verb: "imati" },
@@ -17114,7 +17142,7 @@ function hr_default() {
17114
17142
  };
17115
17143
  }
17116
17144
 
17117
- // ../node_modules/zod/v4/locales/hu.js
17145
+ // node_modules/zod/v4/locales/hu.js
17118
17146
  var error19 = () => {
17119
17147
  const Sizable = {
17120
17148
  string: { unit: "karakter", verb: "legyen" },
@@ -17223,7 +17251,7 @@ function hu_default() {
17223
17251
  };
17224
17252
  }
17225
17253
 
17226
- // ../node_modules/zod/v4/locales/hy.js
17254
+ // node_modules/zod/v4/locales/hy.js
17227
17255
  function getArmenianPlural(count, one, many) {
17228
17256
  return Math.abs(count) === 1 ? one : many;
17229
17257
  }
@@ -17371,7 +17399,7 @@ function hy_default() {
17371
17399
  };
17372
17400
  }
17373
17401
 
17374
- // ../node_modules/zod/v4/locales/id.js
17402
+ // node_modules/zod/v4/locales/id.js
17375
17403
  var error21 = () => {
17376
17404
  const Sizable = {
17377
17405
  string: { unit: "karakter", verb: "memiliki" },
@@ -17478,7 +17506,7 @@ function id_default() {
17478
17506
  };
17479
17507
  }
17480
17508
 
17481
- // ../node_modules/zod/v4/locales/is.js
17509
+ // node_modules/zod/v4/locales/is.js
17482
17510
  var error22 = () => {
17483
17511
  const Sizable = {
17484
17512
  string: { unit: "stafi", verb: "a\xF0 hafa" },
@@ -17588,7 +17616,7 @@ function is_default() {
17588
17616
  };
17589
17617
  }
17590
17618
 
17591
- // ../node_modules/zod/v4/locales/it.js
17619
+ // node_modules/zod/v4/locales/it.js
17592
17620
  var error23 = () => {
17593
17621
  const Sizable = {
17594
17622
  string: { unit: "caratteri", verb: "avere" },
@@ -17697,7 +17725,7 @@ function it_default() {
17697
17725
  };
17698
17726
  }
17699
17727
 
17700
- // ../node_modules/zod/v4/locales/ja.js
17728
+ // node_modules/zod/v4/locales/ja.js
17701
17729
  var error24 = () => {
17702
17730
  const Sizable = {
17703
17731
  string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
@@ -17805,7 +17833,7 @@ function ja_default() {
17805
17833
  };
17806
17834
  }
17807
17835
 
17808
- // ../node_modules/zod/v4/locales/ka.js
17836
+ // node_modules/zod/v4/locales/ka.js
17809
17837
  var error25 = () => {
17810
17838
  const Sizable = {
17811
17839
  string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
@@ -17918,7 +17946,7 @@ function ka_default() {
17918
17946
  };
17919
17947
  }
17920
17948
 
17921
- // ../node_modules/zod/v4/locales/km.js
17949
+ // node_modules/zod/v4/locales/km.js
17922
17950
  var error26 = () => {
17923
17951
  const Sizable = {
17924
17952
  string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
@@ -18029,12 +18057,12 @@ function km_default() {
18029
18057
  };
18030
18058
  }
18031
18059
 
18032
- // ../node_modules/zod/v4/locales/kh.js
18060
+ // node_modules/zod/v4/locales/kh.js
18033
18061
  function kh_default() {
18034
18062
  return km_default();
18035
18063
  }
18036
18064
 
18037
- // ../node_modules/zod/v4/locales/ko.js
18065
+ // node_modules/zod/v4/locales/ko.js
18038
18066
  var error27 = () => {
18039
18067
  const Sizable = {
18040
18068
  string: { unit: "\uBB38\uC790", verb: "to have" },
@@ -18146,7 +18174,7 @@ function ko_default() {
18146
18174
  };
18147
18175
  }
18148
18176
 
18149
- // ../node_modules/zod/v4/locales/lt.js
18177
+ // node_modules/zod/v4/locales/lt.js
18150
18178
  var capitalizeFirstCharacter = (text) => {
18151
18179
  return text.charAt(0).toUpperCase() + text.slice(1);
18152
18180
  };
@@ -18350,7 +18378,7 @@ function lt_default() {
18350
18378
  };
18351
18379
  }
18352
18380
 
18353
- // ../node_modules/zod/v4/locales/mk.js
18381
+ // node_modules/zod/v4/locales/mk.js
18354
18382
  var error29 = () => {
18355
18383
  const Sizable = {
18356
18384
  string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
@@ -18460,7 +18488,7 @@ function mk_default() {
18460
18488
  };
18461
18489
  }
18462
18490
 
18463
- // ../node_modules/zod/v4/locales/ms.js
18491
+ // node_modules/zod/v4/locales/ms.js
18464
18492
  var error30 = () => {
18465
18493
  const Sizable = {
18466
18494
  string: { unit: "aksara", verb: "mempunyai" },
@@ -18568,7 +18596,7 @@ function ms_default() {
18568
18596
  };
18569
18597
  }
18570
18598
 
18571
- // ../node_modules/zod/v4/locales/nl.js
18599
+ // node_modules/zod/v4/locales/nl.js
18572
18600
  var error31 = () => {
18573
18601
  const Sizable = {
18574
18602
  string: { unit: "tekens", verb: "heeft" },
@@ -18679,7 +18707,7 @@ function nl_default() {
18679
18707
  };
18680
18708
  }
18681
18709
 
18682
- // ../node_modules/zod/v4/locales/no.js
18710
+ // node_modules/zod/v4/locales/no.js
18683
18711
  var error32 = () => {
18684
18712
  const Sizable = {
18685
18713
  string: { unit: "tegn", verb: "\xE5 ha" },
@@ -18788,7 +18816,7 @@ function no_default() {
18788
18816
  };
18789
18817
  }
18790
18818
 
18791
- // ../node_modules/zod/v4/locales/ota.js
18819
+ // node_modules/zod/v4/locales/ota.js
18792
18820
  var error33 = () => {
18793
18821
  const Sizable = {
18794
18822
  string: { unit: "harf", verb: "olmal\u0131d\u0131r" },
@@ -18898,7 +18926,7 @@ function ota_default() {
18898
18926
  };
18899
18927
  }
18900
18928
 
18901
- // ../node_modules/zod/v4/locales/ps.js
18929
+ // node_modules/zod/v4/locales/ps.js
18902
18930
  var error34 = () => {
18903
18931
  const Sizable = {
18904
18932
  string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" },
@@ -19013,7 +19041,7 @@ function ps_default() {
19013
19041
  };
19014
19042
  }
19015
19043
 
19016
- // ../node_modules/zod/v4/locales/pl.js
19044
+ // node_modules/zod/v4/locales/pl.js
19017
19045
  var error35 = () => {
19018
19046
  const Sizable = {
19019
19047
  string: { unit: "znak\xF3w", verb: "mie\u0107" },
@@ -19123,7 +19151,7 @@ function pl_default() {
19123
19151
  };
19124
19152
  }
19125
19153
 
19126
- // ../node_modules/zod/v4/locales/pt.js
19154
+ // node_modules/zod/v4/locales/pt.js
19127
19155
  var error36 = () => {
19128
19156
  const Sizable = {
19129
19157
  string: { unit: "caracteres", verb: "ter" },
@@ -19232,7 +19260,7 @@ function pt_default() {
19232
19260
  };
19233
19261
  }
19234
19262
 
19235
- // ../node_modules/zod/v4/locales/ro.js
19263
+ // node_modules/zod/v4/locales/ro.js
19236
19264
  var error37 = () => {
19237
19265
  const Sizable = {
19238
19266
  string: { unit: "caractere", verb: "s\u0103 aib\u0103" },
@@ -19352,7 +19380,7 @@ function ro_default() {
19352
19380
  };
19353
19381
  }
19354
19382
 
19355
- // ../node_modules/zod/v4/locales/ru.js
19383
+ // node_modules/zod/v4/locales/ru.js
19356
19384
  function getRussianPlural(count, one, few, many) {
19357
19385
  const absCount = Math.abs(count);
19358
19386
  const lastDigit = absCount % 10;
@@ -19509,7 +19537,7 @@ function ru_default() {
19509
19537
  };
19510
19538
  }
19511
19539
 
19512
- // ../node_modules/zod/v4/locales/sl.js
19540
+ // node_modules/zod/v4/locales/sl.js
19513
19541
  var error39 = () => {
19514
19542
  const Sizable = {
19515
19543
  string: { unit: "znakov", verb: "imeti" },
@@ -19619,7 +19647,7 @@ function sl_default() {
19619
19647
  };
19620
19648
  }
19621
19649
 
19622
- // ../node_modules/zod/v4/locales/sv.js
19650
+ // node_modules/zod/v4/locales/sv.js
19623
19651
  var error40 = () => {
19624
19652
  const Sizable = {
19625
19653
  string: { unit: "tecken", verb: "att ha" },
@@ -19730,7 +19758,7 @@ function sv_default() {
19730
19758
  };
19731
19759
  }
19732
19760
 
19733
- // ../node_modules/zod/v4/locales/ta.js
19761
+ // node_modules/zod/v4/locales/ta.js
19734
19762
  var error41 = () => {
19735
19763
  const Sizable = {
19736
19764
  string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" },
@@ -19841,7 +19869,7 @@ function ta_default() {
19841
19869
  };
19842
19870
  }
19843
19871
 
19844
- // ../node_modules/zod/v4/locales/th.js
19872
+ // node_modules/zod/v4/locales/th.js
19845
19873
  var error42 = () => {
19846
19874
  const Sizable = {
19847
19875
  string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
@@ -19952,7 +19980,7 @@ function th_default() {
19952
19980
  };
19953
19981
  }
19954
19982
 
19955
- // ../node_modules/zod/v4/locales/tr.js
19983
+ // node_modules/zod/v4/locales/tr.js
19956
19984
  var error43 = () => {
19957
19985
  const Sizable = {
19958
19986
  string: { unit: "karakter", verb: "olmal\u0131" },
@@ -20058,7 +20086,7 @@ function tr_default() {
20058
20086
  };
20059
20087
  }
20060
20088
 
20061
- // ../node_modules/zod/v4/locales/uk.js
20089
+ // node_modules/zod/v4/locales/uk.js
20062
20090
  var error44 = () => {
20063
20091
  const Sizable = {
20064
20092
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
@@ -20167,12 +20195,12 @@ function uk_default() {
20167
20195
  };
20168
20196
  }
20169
20197
 
20170
- // ../node_modules/zod/v4/locales/ua.js
20198
+ // node_modules/zod/v4/locales/ua.js
20171
20199
  function ua_default() {
20172
20200
  return uk_default();
20173
20201
  }
20174
20202
 
20175
- // ../node_modules/zod/v4/locales/ur.js
20203
+ // node_modules/zod/v4/locales/ur.js
20176
20204
  var error45 = () => {
20177
20205
  const Sizable = {
20178
20206
  string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
@@ -20283,7 +20311,7 @@ function ur_default() {
20283
20311
  };
20284
20312
  }
20285
20313
 
20286
- // ../node_modules/zod/v4/locales/uz.js
20314
+ // node_modules/zod/v4/locales/uz.js
20287
20315
  var error46 = () => {
20288
20316
  const Sizable = {
20289
20317
  string: { unit: "belgi", verb: "bo\u2018lishi kerak" },
@@ -20394,7 +20422,7 @@ function uz_default() {
20394
20422
  };
20395
20423
  }
20396
20424
 
20397
- // ../node_modules/zod/v4/locales/vi.js
20425
+ // node_modules/zod/v4/locales/vi.js
20398
20426
  var error47 = () => {
20399
20427
  const Sizable = {
20400
20428
  string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" },
@@ -20503,7 +20531,7 @@ function vi_default() {
20503
20531
  };
20504
20532
  }
20505
20533
 
20506
- // ../node_modules/zod/v4/locales/zh-CN.js
20534
+ // node_modules/zod/v4/locales/zh-CN.js
20507
20535
  var error48 = () => {
20508
20536
  const Sizable = {
20509
20537
  string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" },
@@ -20613,7 +20641,7 @@ function zh_CN_default() {
20613
20641
  };
20614
20642
  }
20615
20643
 
20616
- // ../node_modules/zod/v4/locales/zh-TW.js
20644
+ // node_modules/zod/v4/locales/zh-TW.js
20617
20645
  var error49 = () => {
20618
20646
  const Sizable = {
20619
20647
  string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" },
@@ -20721,7 +20749,7 @@ function zh_TW_default() {
20721
20749
  };
20722
20750
  }
20723
20751
 
20724
- // ../node_modules/zod/v4/locales/yo.js
20752
+ // node_modules/zod/v4/locales/yo.js
20725
20753
  var error50 = () => {
20726
20754
  const Sizable = {
20727
20755
  string: { unit: "\xE0mi", verb: "n\xED" },
@@ -20829,7 +20857,7 @@ function yo_default() {
20829
20857
  };
20830
20858
  }
20831
20859
 
20832
- // ../node_modules/zod/v4/core/registries.js
20860
+ // node_modules/zod/v4/core/registries.js
20833
20861
  var _a2;
20834
20862
  var $output = Symbol("ZodOutput");
20835
20863
  var $input = Symbol("ZodInput");
@@ -20879,7 +20907,7 @@ function registry() {
20879
20907
  (_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry());
20880
20908
  var globalRegistry = globalThis.__zod_globalRegistry;
20881
20909
 
20882
- // ../node_modules/zod/v4/core/api.js
20910
+ // node_modules/zod/v4/core/api.js
20883
20911
  // @__NO_SIDE_EFFECTS__
20884
20912
  function _string(Class2, params) {
20885
20913
  return new Class2({
@@ -21918,7 +21946,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
21918
21946
  return inst;
21919
21947
  }
21920
21948
 
21921
- // ../node_modules/zod/v4/core/to-json-schema.js
21949
+ // node_modules/zod/v4/core/to-json-schema.js
21922
21950
  function initializeContext(params) {
21923
21951
  let target = params?.target ?? "draft-2020-12";
21924
21952
  if (target === "draft-4")
@@ -22277,7 +22305,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
22277
22305
  return finalize(ctx, schema);
22278
22306
  };
22279
22307
 
22280
- // ../node_modules/zod/v4/core/json-schema-processors.js
22308
+ // node_modules/zod/v4/core/json-schema-processors.js
22281
22309
  var formatMap = {
22282
22310
  guid: "uuid",
22283
22311
  url: "uri",
@@ -22821,7 +22849,7 @@ function toJSONSchema(input, params) {
22821
22849
  return finalize(ctx, input);
22822
22850
  }
22823
22851
 
22824
- // ../node_modules/zod/v4/core/json-schema-generator.js
22852
+ // node_modules/zod/v4/core/json-schema-generator.js
22825
22853
  var JSONSchemaGenerator = class {
22826
22854
  /** @deprecated Access via ctx instead */
22827
22855
  get metadataRegistry() {
@@ -22896,10 +22924,10 @@ var JSONSchemaGenerator = class {
22896
22924
  }
22897
22925
  };
22898
22926
 
22899
- // ../node_modules/zod/v4/core/json-schema.js
22927
+ // node_modules/zod/v4/core/json-schema.js
22900
22928
  var json_schema_exports = {};
22901
22929
 
22902
- // ../node_modules/zod/v4/mini/schemas.js
22930
+ // node_modules/zod/v4/mini/schemas.js
22903
22931
  var ZodMiniType = /* @__PURE__ */ $constructor("ZodMiniType", (inst, def) => {
22904
22932
  if (!inst._zod)
22905
22933
  throw new Error("Uninitialized schema in ZodMiniType.");
@@ -22945,7 +22973,7 @@ function object(shape, params) {
22945
22973
  return new ZodMiniObject(def);
22946
22974
  }
22947
22975
 
22948
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22976
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22949
22977
  function isZ4Schema(s) {
22950
22978
  const schema = s;
22951
22979
  return !!schema._zod;
@@ -23029,17 +23057,33 @@ function normalizeObjectSchema(schema) {
23029
23057
  }
23030
23058
  return void 0;
23031
23059
  }
23060
+ function getDotPath(path) {
23061
+ if (path.length === 0) {
23062
+ return "object root";
23063
+ }
23064
+ return path.reduce((acc, seg, index) => {
23065
+ if (index === 0) {
23066
+ return String(seg);
23067
+ }
23068
+ if (typeof seg === "number") {
23069
+ return `${acc}[${seg}]`;
23070
+ }
23071
+ return `${acc}.${seg}`;
23072
+ }, "");
23073
+ }
23032
23074
  function getParseErrorMessage(error51) {
23033
23075
  if (error51 && typeof error51 === "object") {
23076
+ if ("issues" in error51 && Array.isArray(error51.issues) && error51.issues.length > 0) {
23077
+ return error51.issues.map((i) => {
23078
+ if (!i.path?.length) {
23079
+ return i.message;
23080
+ }
23081
+ return `${i.message} at ${getDotPath(i.path)}`;
23082
+ }).join("\n");
23083
+ }
23034
23084
  if ("message" in error51 && typeof error51.message === "string") {
23035
23085
  return error51.message;
23036
23086
  }
23037
- if ("issues" in error51 && Array.isArray(error51.issues) && error51.issues.length > 0) {
23038
- const firstIssue = error51.issues[0];
23039
- if (firstIssue && typeof firstIssue === "object" && "message" in firstIssue) {
23040
- return String(firstIssue.message);
23041
- }
23042
- }
23043
23087
  try {
23044
23088
  return JSON.stringify(error51);
23045
23089
  } catch {
@@ -23089,7 +23133,7 @@ function getLiteralValue(schema) {
23089
23133
  return void 0;
23090
23134
  }
23091
23135
 
23092
- // ../node_modules/zod/v4/classic/external.js
23136
+ // node_modules/zod/v4/classic/external.js
23093
23137
  var external_exports = {};
23094
23138
  __export(external_exports, {
23095
23139
  $brand: () => $brand,
@@ -23332,7 +23376,7 @@ __export(external_exports, {
23332
23376
  xor: () => xor
23333
23377
  });
23334
23378
 
23335
- // ../node_modules/zod/v4/classic/schemas.js
23379
+ // node_modules/zod/v4/classic/schemas.js
23336
23380
  var schemas_exports2 = {};
23337
23381
  __export(schemas_exports2, {
23338
23382
  ZodAny: () => ZodAny2,
@@ -23503,7 +23547,7 @@ __export(schemas_exports2, {
23503
23547
  xor: () => xor
23504
23548
  });
23505
23549
 
23506
- // ../node_modules/zod/v4/classic/checks.js
23550
+ // node_modules/zod/v4/classic/checks.js
23507
23551
  var checks_exports2 = {};
23508
23552
  __export(checks_exports2, {
23509
23553
  endsWith: () => _endsWith,
@@ -23537,7 +23581,7 @@ __export(checks_exports2, {
23537
23581
  uppercase: () => _uppercase
23538
23582
  });
23539
23583
 
23540
- // ../node_modules/zod/v4/classic/iso.js
23584
+ // node_modules/zod/v4/classic/iso.js
23541
23585
  var iso_exports2 = {};
23542
23586
  __export(iso_exports2, {
23543
23587
  ZodISODate: () => ZodISODate,
@@ -23578,7 +23622,7 @@ function duration2(params) {
23578
23622
  return _isoDuration(ZodISODuration, params);
23579
23623
  }
23580
23624
 
23581
- // ../node_modules/zod/v4/classic/errors.js
23625
+ // node_modules/zod/v4/classic/errors.js
23582
23626
  var initializer2 = (inst, issues) => {
23583
23627
  $ZodError.init(inst, issues);
23584
23628
  inst.name = "ZodError";
@@ -23618,7 +23662,7 @@ var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, {
23618
23662
  Parent: Error
23619
23663
  });
23620
23664
 
23621
- // ../node_modules/zod/v4/classic/parse.js
23665
+ // node_modules/zod/v4/classic/parse.js
23622
23666
  var parse2 = /* @__PURE__ */ _parse(ZodRealError);
23623
23667
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
23624
23668
  var safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -23632,7 +23676,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
23632
23676
  var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
23633
23677
  var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
23634
23678
 
23635
- // ../node_modules/zod/v4/classic/schemas.js
23679
+ // node_modules/zod/v4/classic/schemas.js
23636
23680
  var _installedGroups = /* @__PURE__ */ new WeakMap();
23637
23681
  function _installLazyMethods(inst, group, methods) {
23638
23682
  const proto = Object.getPrototypeOf(inst);
@@ -24922,7 +24966,7 @@ function preprocess(fn, schema) {
24922
24966
  });
24923
24967
  }
24924
24968
 
24925
- // ../node_modules/zod/v4/classic/compat.js
24969
+ // node_modules/zod/v4/classic/compat.js
24926
24970
  var ZodIssueCode2 = {
24927
24971
  invalid_type: "invalid_type",
24928
24972
  too_big: "too_big",
@@ -24948,7 +24992,7 @@ var ZodFirstPartyTypeKind2;
24948
24992
  /* @__PURE__ */ (function(ZodFirstPartyTypeKind3) {
24949
24993
  })(ZodFirstPartyTypeKind2 || (ZodFirstPartyTypeKind2 = {}));
24950
24994
 
24951
- // ../node_modules/zod/v4/classic/from-json-schema.js
24995
+ // node_modules/zod/v4/classic/from-json-schema.js
24952
24996
  var z = {
24953
24997
  ...schemas_exports2,
24954
24998
  ...checks_exports2,
@@ -25428,7 +25472,7 @@ function fromJSONSchema(schema, params) {
25428
25472
  return convertSchema(normalized, ctx);
25429
25473
  }
25430
25474
 
25431
- // ../node_modules/zod/v4/classic/coerce.js
25475
+ // node_modules/zod/v4/classic/coerce.js
25432
25476
  var coerce_exports2 = {};
25433
25477
  __export(coerce_exports2, {
25434
25478
  bigint: () => bigint3,
@@ -25453,10 +25497,10 @@ function date4(params) {
25453
25497
  return _coercedDate(ZodDate2, params);
25454
25498
  }
25455
25499
 
25456
- // ../node_modules/zod/v4/classic/external.js
25500
+ // node_modules/zod/v4/classic/external.js
25457
25501
  config(en_default2());
25458
25502
 
25459
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
25503
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
25460
25504
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
25461
25505
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
25462
25506
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -26987,12 +27031,12 @@ var UrlElicitationRequiredError = class extends McpError {
26987
27031
  }
26988
27032
  };
26989
27033
 
26990
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
27034
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26991
27035
  function isTerminal(status) {
26992
27036
  return status === "completed" || status === "failed" || status === "cancelled";
26993
27037
  }
26994
27038
 
26995
- // ../node_modules/zod-to-json-schema/dist/esm/Options.js
27039
+ // node_modules/zod-to-json-schema/dist/esm/Options.js
26996
27040
  var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
26997
27041
  var defaultOptions = {
26998
27042
  name: void 0,
@@ -27026,7 +27070,7 @@ var getDefaultOptions = (options) => typeof options === "string" ? {
27026
27070
  ...options
27027
27071
  };
27028
27072
 
27029
- // ../node_modules/zod-to-json-schema/dist/esm/Refs.js
27073
+ // node_modules/zod-to-json-schema/dist/esm/Refs.js
27030
27074
  var getRefs = (options) => {
27031
27075
  const _options = getDefaultOptions(options);
27032
27076
  const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
@@ -27047,7 +27091,7 @@ var getRefs = (options) => {
27047
27091
  };
27048
27092
  };
27049
27093
 
27050
- // ../node_modules/zod-to-json-schema/dist/esm/errorMessages.js
27094
+ // node_modules/zod-to-json-schema/dist/esm/errorMessages.js
27051
27095
  function addErrorMessage(res, key, errorMessage, refs) {
27052
27096
  if (!refs?.errorMessages)
27053
27097
  return;
@@ -27063,7 +27107,7 @@ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
27063
27107
  addErrorMessage(res, key, errorMessage, refs);
27064
27108
  }
27065
27109
 
27066
- // ../node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
27110
+ // node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
27067
27111
  var getRelativePath = (pathA, pathB) => {
27068
27112
  let i = 0;
27069
27113
  for (; i < pathA.length && i < pathB.length; i++) {
@@ -27073,7 +27117,7 @@ var getRelativePath = (pathA, pathB) => {
27073
27117
  return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
27074
27118
  };
27075
27119
 
27076
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/any.js
27120
+ // node_modules/zod-to-json-schema/dist/esm/parsers/any.js
27077
27121
  function parseAnyDef(refs) {
27078
27122
  if (refs.target !== "openAi") {
27079
27123
  return {};
@@ -27089,7 +27133,7 @@ function parseAnyDef(refs) {
27089
27133
  };
27090
27134
  }
27091
27135
 
27092
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/array.js
27136
+ // node_modules/zod-to-json-schema/dist/esm/parsers/array.js
27093
27137
  function parseArrayDef(def, refs) {
27094
27138
  const res = {
27095
27139
  type: "array"
@@ -27113,7 +27157,7 @@ function parseArrayDef(def, refs) {
27113
27157
  return res;
27114
27158
  }
27115
27159
 
27116
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
27160
+ // node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
27117
27161
  function parseBigintDef(def, refs) {
27118
27162
  const res = {
27119
27163
  type: "integer",
@@ -27159,24 +27203,24 @@ function parseBigintDef(def, refs) {
27159
27203
  return res;
27160
27204
  }
27161
27205
 
27162
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
27206
+ // node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
27163
27207
  function parseBooleanDef() {
27164
27208
  return {
27165
27209
  type: "boolean"
27166
27210
  };
27167
27211
  }
27168
27212
 
27169
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
27213
+ // node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
27170
27214
  function parseBrandedDef(_def, refs) {
27171
27215
  return parseDef(_def.type._def, refs);
27172
27216
  }
27173
27217
 
27174
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
27218
+ // node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
27175
27219
  var parseCatchDef = (def, refs) => {
27176
27220
  return parseDef(def.innerType._def, refs);
27177
27221
  };
27178
27222
 
27179
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/date.js
27223
+ // node_modules/zod-to-json-schema/dist/esm/parsers/date.js
27180
27224
  function parseDateDef(def, refs, overrideDateStrategy) {
27181
27225
  const strategy = overrideDateStrategy ?? refs.dateStrategy;
27182
27226
  if (Array.isArray(strategy)) {
@@ -27235,7 +27279,7 @@ var integerDateParser = (def, refs) => {
27235
27279
  return res;
27236
27280
  };
27237
27281
 
27238
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/default.js
27282
+ // node_modules/zod-to-json-schema/dist/esm/parsers/default.js
27239
27283
  function parseDefaultDef(_def, refs) {
27240
27284
  return {
27241
27285
  ...parseDef(_def.innerType._def, refs),
@@ -27243,12 +27287,12 @@ function parseDefaultDef(_def, refs) {
27243
27287
  };
27244
27288
  }
27245
27289
 
27246
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
27290
+ // node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
27247
27291
  function parseEffectsDef(_def, refs) {
27248
27292
  return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
27249
27293
  }
27250
27294
 
27251
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
27295
+ // node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
27252
27296
  function parseEnumDef(def) {
27253
27297
  return {
27254
27298
  type: "string",
@@ -27256,7 +27300,7 @@ function parseEnumDef(def) {
27256
27300
  };
27257
27301
  }
27258
27302
 
27259
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
27303
+ // node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
27260
27304
  var isJsonSchema7AllOfType = (type) => {
27261
27305
  if ("type" in type && type.type === "string")
27262
27306
  return false;
@@ -27298,7 +27342,7 @@ function parseIntersectionDef(def, refs) {
27298
27342
  } : void 0;
27299
27343
  }
27300
27344
 
27301
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
27345
+ // node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
27302
27346
  function parseLiteralDef(def, refs) {
27303
27347
  const parsedType2 = typeof def.value;
27304
27348
  if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") {
@@ -27318,7 +27362,7 @@ function parseLiteralDef(def, refs) {
27318
27362
  };
27319
27363
  }
27320
27364
 
27321
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/string.js
27365
+ // node_modules/zod-to-json-schema/dist/esm/parsers/string.js
27322
27366
  var emojiRegex2 = void 0;
27323
27367
  var zodPatterns = {
27324
27368
  /**
@@ -27643,7 +27687,7 @@ function stringifyRegExpWithFlags(regex, refs) {
27643
27687
  return pattern;
27644
27688
  }
27645
27689
 
27646
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/record.js
27690
+ // node_modules/zod-to-json-schema/dist/esm/parsers/record.js
27647
27691
  function parseRecordDef(def, refs) {
27648
27692
  if (refs.target === "openAi") {
27649
27693
  console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
@@ -27695,7 +27739,7 @@ function parseRecordDef(def, refs) {
27695
27739
  return schema;
27696
27740
  }
27697
27741
 
27698
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/map.js
27742
+ // node_modules/zod-to-json-schema/dist/esm/parsers/map.js
27699
27743
  function parseMapDef(def, refs) {
27700
27744
  if (refs.mapStrategy === "record") {
27701
27745
  return parseRecordDef(def, refs);
@@ -27720,7 +27764,7 @@ function parseMapDef(def, refs) {
27720
27764
  };
27721
27765
  }
27722
27766
 
27723
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
27767
+ // node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
27724
27768
  function parseNativeEnumDef(def) {
27725
27769
  const object3 = def.values;
27726
27770
  const actualKeys = Object.keys(def.values).filter((key) => {
@@ -27734,7 +27778,7 @@ function parseNativeEnumDef(def) {
27734
27778
  };
27735
27779
  }
27736
27780
 
27737
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/never.js
27781
+ // node_modules/zod-to-json-schema/dist/esm/parsers/never.js
27738
27782
  function parseNeverDef(refs) {
27739
27783
  return refs.target === "openAi" ? void 0 : {
27740
27784
  not: parseAnyDef({
@@ -27744,7 +27788,7 @@ function parseNeverDef(refs) {
27744
27788
  };
27745
27789
  }
27746
27790
 
27747
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/null.js
27791
+ // node_modules/zod-to-json-schema/dist/esm/parsers/null.js
27748
27792
  function parseNullDef(refs) {
27749
27793
  return refs.target === "openApi3" ? {
27750
27794
  enum: ["null"],
@@ -27754,7 +27798,7 @@ function parseNullDef(refs) {
27754
27798
  };
27755
27799
  }
27756
27800
 
27757
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/union.js
27801
+ // node_modules/zod-to-json-schema/dist/esm/parsers/union.js
27758
27802
  var primitiveMappings = {
27759
27803
  ZodString: "string",
27760
27804
  ZodNumber: "number",
@@ -27822,7 +27866,7 @@ var asAnyOf = (def, refs) => {
27822
27866
  return anyOf.length ? { anyOf } : void 0;
27823
27867
  };
27824
27868
 
27825
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
27869
+ // node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
27826
27870
  function parseNullableDef(def, refs) {
27827
27871
  if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
27828
27872
  if (refs.target === "openApi3") {
@@ -27854,7 +27898,7 @@ function parseNullableDef(def, refs) {
27854
27898
  return base && { anyOf: [base, { type: "null" }] };
27855
27899
  }
27856
27900
 
27857
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/number.js
27901
+ // node_modules/zod-to-json-schema/dist/esm/parsers/number.js
27858
27902
  function parseNumberDef(def, refs) {
27859
27903
  const res = {
27860
27904
  type: "number"
@@ -27903,7 +27947,7 @@ function parseNumberDef(def, refs) {
27903
27947
  return res;
27904
27948
  }
27905
27949
 
27906
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/object.js
27950
+ // node_modules/zod-to-json-schema/dist/esm/parsers/object.js
27907
27951
  function parseObjectDef(def, refs) {
27908
27952
  const forceOptionalIntoNullable = refs.target === "openAi";
27909
27953
  const result = {
@@ -27973,7 +28017,7 @@ function safeIsOptional(schema) {
27973
28017
  }
27974
28018
  }
27975
28019
 
27976
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
28020
+ // node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
27977
28021
  var parseOptionalDef = (def, refs) => {
27978
28022
  if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
27979
28023
  return parseDef(def.innerType._def, refs);
@@ -27992,7 +28036,7 @@ var parseOptionalDef = (def, refs) => {
27992
28036
  } : parseAnyDef(refs);
27993
28037
  };
27994
28038
 
27995
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
28039
+ // node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
27996
28040
  var parsePipelineDef = (def, refs) => {
27997
28041
  if (refs.pipeStrategy === "input") {
27998
28042
  return parseDef(def.in._def, refs);
@@ -28012,12 +28056,12 @@ var parsePipelineDef = (def, refs) => {
28012
28056
  };
28013
28057
  };
28014
28058
 
28015
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
28059
+ // node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
28016
28060
  function parsePromiseDef(def, refs) {
28017
28061
  return parseDef(def.type._def, refs);
28018
28062
  }
28019
28063
 
28020
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/set.js
28064
+ // node_modules/zod-to-json-schema/dist/esm/parsers/set.js
28021
28065
  function parseSetDef(def, refs) {
28022
28066
  const items = parseDef(def.valueType._def, {
28023
28067
  ...refs,
@@ -28037,7 +28081,7 @@ function parseSetDef(def, refs) {
28037
28081
  return schema;
28038
28082
  }
28039
28083
 
28040
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
28084
+ // node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
28041
28085
  function parseTupleDef(def, refs) {
28042
28086
  if (def.rest) {
28043
28087
  return {
@@ -28065,24 +28109,24 @@ function parseTupleDef(def, refs) {
28065
28109
  }
28066
28110
  }
28067
28111
 
28068
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
28112
+ // node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
28069
28113
  function parseUndefinedDef(refs) {
28070
28114
  return {
28071
28115
  not: parseAnyDef(refs)
28072
28116
  };
28073
28117
  }
28074
28118
 
28075
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
28119
+ // node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
28076
28120
  function parseUnknownDef(refs) {
28077
28121
  return parseAnyDef(refs);
28078
28122
  }
28079
28123
 
28080
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
28124
+ // node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
28081
28125
  var parseReadonlyDef = (def, refs) => {
28082
28126
  return parseDef(def.innerType._def, refs);
28083
28127
  };
28084
28128
 
28085
- // ../node_modules/zod-to-json-schema/dist/esm/selectParser.js
28129
+ // node_modules/zod-to-json-schema/dist/esm/selectParser.js
28086
28130
  var selectParser = (def, typeName, refs) => {
28087
28131
  switch (typeName) {
28088
28132
  case ZodFirstPartyTypeKind.ZodString:
@@ -28158,7 +28202,7 @@ var selectParser = (def, typeName, refs) => {
28158
28202
  }
28159
28203
  };
28160
28204
 
28161
- // ../node_modules/zod-to-json-schema/dist/esm/parseDef.js
28205
+ // node_modules/zod-to-json-schema/dist/esm/parseDef.js
28162
28206
  function parseDef(def, refs, forceResolution = false) {
28163
28207
  const seenItem = refs.seen.get(def);
28164
28208
  if (refs.override) {
@@ -28214,7 +28258,7 @@ var addMeta = (def, refs, jsonSchema) => {
28214
28258
  return jsonSchema;
28215
28259
  };
28216
28260
 
28217
- // ../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
28261
+ // node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
28218
28262
  var zodToJsonSchema = (schema, options) => {
28219
28263
  const refs = getRefs(options);
28220
28264
  let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
@@ -28276,7 +28320,7 @@ var zodToJsonSchema = (schema, options) => {
28276
28320
  return combined;
28277
28321
  };
28278
28322
 
28279
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
28323
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
28280
28324
  function mapMiniTarget(t) {
28281
28325
  if (!t)
28282
28326
  return "draft-7";
@@ -28318,7 +28362,7 @@ function parseWithCompat(schema, data) {
28318
28362
  return result.data;
28319
28363
  }
28320
28364
 
28321
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
28365
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
28322
28366
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
28323
28367
  var Protocol = class {
28324
28368
  constructor(_options) {
@@ -29272,7 +29316,7 @@ function mergeCapabilities(base, additional) {
29272
29316
  return result;
29273
29317
  }
29274
29318
 
29275
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
29319
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
29276
29320
  var import_ajv = __toESM(require_ajv(), 1);
29277
29321
  var import_ajv_formats = __toESM(require_dist(), 1);
29278
29322
  function createDefaultAjvInstance() {
@@ -29340,7 +29384,7 @@ var AjvJsonSchemaValidator = class {
29340
29384
  }
29341
29385
  };
29342
29386
 
29343
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
29387
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
29344
29388
  var ExperimentalServerTasks = class {
29345
29389
  constructor(_server) {
29346
29390
  this._server = _server;
@@ -29553,7 +29597,7 @@ var ExperimentalServerTasks = class {
29553
29597
  }
29554
29598
  };
29555
29599
 
29556
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
29600
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
29557
29601
  function assertToolsCallTaskCapability(requests, method, entityName) {
29558
29602
  if (!requests) {
29559
29603
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -29588,7 +29632,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
29588
29632
  }
29589
29633
  }
29590
29634
 
29591
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
29635
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
29592
29636
  var Server = class extends Protocol {
29593
29637
  /**
29594
29638
  * Initializes this server with the given name and version information.
@@ -29654,16 +29698,7 @@ var Server = class extends Protocol {
29654
29698
  if (!methodSchema) {
29655
29699
  throw new Error("Schema is missing a method literal");
29656
29700
  }
29657
- let methodValue;
29658
- if (isZ4Schema(methodSchema)) {
29659
- const v4Schema = methodSchema;
29660
- const v4Def = v4Schema._zod?.def;
29661
- methodValue = v4Def?.value ?? v4Schema.value;
29662
- } else {
29663
- const v3Schema = methodSchema;
29664
- const legacyDef = v3Schema._def;
29665
- methodValue = legacyDef?.value ?? v3Schema.value;
29666
- }
29701
+ const methodValue = getLiteralValue(methodSchema);
29667
29702
  if (typeof methodValue !== "string") {
29668
29703
  throw new Error("Schema method literal must be a string");
29669
29704
  }
@@ -29968,7 +30003,7 @@ var Server = class extends Protocol {
29968
30003
  }
29969
30004
  };
29970
30005
 
29971
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
30006
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
29972
30007
  var COMPLETABLE_SYMBOL = Symbol.for("mcp.completable");
29973
30008
  function isCompletable(schema) {
29974
30009
  return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
@@ -29982,7 +30017,7 @@ var McpZodTypeKind;
29982
30017
  McpZodTypeKind2["Completable"] = "McpCompletable";
29983
30018
  })(McpZodTypeKind || (McpZodTypeKind = {}));
29984
30019
 
29985
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
30020
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
29986
30021
  var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
29987
30022
  function validateToolName(name) {
29988
30023
  const warnings = [];
@@ -30040,7 +30075,7 @@ function validateAndWarnToolName(name) {
30040
30075
  return result.isValid;
30041
30076
  }
30042
30077
 
30043
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
30078
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
30044
30079
  var ExperimentalMcpServerTasks = class {
30045
30080
  constructor(_mcpServer) {
30046
30081
  this._mcpServer = _mcpServer;
@@ -30055,7 +30090,7 @@ var ExperimentalMcpServerTasks = class {
30055
30090
  }
30056
30091
  };
30057
30092
 
30058
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
30093
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
30059
30094
  var McpServer = class {
30060
30095
  constructor(serverInfo, options) {
30061
30096
  this._registeredResources = {};
@@ -30847,12 +30882,21 @@ var EMPTY_COMPLETION_RESULT = {
30847
30882
  }
30848
30883
  };
30849
30884
 
30850
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30885
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30851
30886
  import process3 from "node:process";
30852
30887
 
30853
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
30888
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
30889
+ var STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
30854
30890
  var ReadBuffer = class {
30891
+ constructor(options) {
30892
+ this._maxBufferSize = options?.maxBufferSize ?? STDIO_DEFAULT_MAX_BUFFER_SIZE;
30893
+ }
30855
30894
  append(chunk) {
30895
+ const newSize = (this._buffer?.length ?? 0) + chunk.length;
30896
+ if (newSize > this._maxBufferSize) {
30897
+ this.clear();
30898
+ throw new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);
30899
+ }
30856
30900
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
30857
30901
  }
30858
30902
  readMessage() {
@@ -30878,20 +30922,26 @@ function serializeMessage(message) {
30878
30922
  return JSON.stringify(message) + "\n";
30879
30923
  }
30880
30924
 
30881
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30925
+ // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30882
30926
  var StdioServerTransport = class {
30883
- constructor(_stdin = process3.stdin, _stdout = process3.stdout) {
30927
+ constructor(_stdin = process3.stdin, _stdout = process3.stdout, options) {
30884
30928
  this._stdin = _stdin;
30885
30929
  this._stdout = _stdout;
30886
- this._readBuffer = new ReadBuffer();
30887
30930
  this._started = false;
30888
30931
  this._ondata = (chunk) => {
30889
- this._readBuffer.append(chunk);
30890
- this.processReadBuffer();
30932
+ try {
30933
+ this._readBuffer.append(chunk);
30934
+ this.processReadBuffer();
30935
+ } catch (error51) {
30936
+ this.onerror?.(error51);
30937
+ this.close().catch(() => {
30938
+ });
30939
+ }
30891
30940
  };
30892
30941
  this._onerror = (error51) => {
30893
30942
  this.onerror?.(error51);
30894
30943
  };
30944
+ this._readBuffer = new ReadBuffer({ maxBufferSize: options?.maxBufferSize });
30895
30945
  }
30896
30946
  /**
30897
30947
  * Starts listening for messages on stdin.
@@ -30945,37 +30995,23 @@ var fail = (text) => ({ text, isError: true });
30945
30995
  var nap = (ctx, ms) => ctx.sleep ? ctx.sleep(ms) : new Promise((resolve) => setTimeout(resolve, ms));
30946
30996
  var TERMINAL = /* @__PURE__ */ new Set(["completed", "failed", "canceled"]);
30947
30997
  var POLL_ERROR_LIMIT = 5;
30948
- var BUILD_WAIT_SECONDS = 180;
30949
30998
  var JOB_WAIT_SECONDS = 300;
30950
- var EXPORT_WAIT_SECONDS = 300;
30951
30999
  var BRAND_WAIT_SECONDS = 300;
30952
- async function waitForJob(ctx, jobId, budgetMs, progress) {
30953
- const started = Date.now();
30954
- const deadline = started + budgetMs;
30955
- let latest = null;
30956
- let consecutiveErrors = 0;
30957
- let lastError = "";
30958
- while (Date.now() < deadline) {
30959
- if (progress?.signal?.aborted) return { row: latest, pollError: null };
30960
- try {
30961
- const result = await ctx.invoke("job-status", { jobIds: [jobId] });
30962
- latest = result.jobs[0] ?? latest;
30963
- consecutiveErrors = 0;
30964
- if (latest && TERMINAL.has(latest.status)) return { row: latest, pollError: null };
30965
- } catch (error51) {
30966
- lastError = error51 instanceof Error ? error51.message : String(error51);
30967
- consecutiveErrors += 1;
30968
- if (consecutiveErrors >= POLL_ERROR_LIMIT) return { row: latest, pollError: lastError };
30969
- }
30970
- progress?.report?.({
30971
- progress: Math.min(Date.now() - started, budgetMs),
30972
- total: budgetMs,
30973
- message: describeJob(jobId, latest, consecutiveErrors, lastError)
30974
- });
30975
- await nap(ctx, 2e3);
30976
- }
30977
- return { row: latest, pollError: null };
31000
+ var MAX_WAIT_SECONDS = 540;
31001
+ var maxWaitSeconds = () => {
31002
+ const override = Number(process.env.IMPRACTICAL_MAX_WAIT_SECONDS);
31003
+ return Number.isFinite(override) && override > 0 ? override : MAX_WAIT_SECONDS;
31004
+ };
31005
+ function waitBudgetMs(requested, fallbackSeconds) {
31006
+ const asked = Number(requested);
31007
+ const seconds = Number.isFinite(asked) && asked > 0 ? asked : fallbackSeconds;
31008
+ return Math.min(seconds, maxWaitSeconds()) * 1e3;
30978
31009
  }
31010
+ var waitWasClamped = (requested) => {
31011
+ const asked = Number(requested);
31012
+ return Number.isFinite(asked) && asked > maxWaitSeconds();
31013
+ };
31014
+ var clampNote = (requested) => waitWasClamped(requested) ? ` Waiting was capped at ${maxWaitSeconds()}s (you asked for ${Number(requested)}s) because MCP clients drop a request that stays open too long, which would report this job as failed while it is still running.` : "";
30979
31015
  function describeJob(jobId, row, consecutiveErrors, lastError) {
30980
31016
  if (consecutiveErrors) return `${jobId}: status check failed (${lastError}), retrying`;
30981
31017
  const stage = row?.stage ? ` \u2014 ${row.stage}` : "";
@@ -30988,7 +31024,7 @@ var studioLink = (ctx, projectId, slug) => {
30988
31024
  const base = (ctx.appUrl ?? "https://motion.impractical.ai").replace(/\/$/, "");
30989
31025
  return `${base}/projects/${projectId}/studio${slug ? `?scene=${slug}` : ""}`;
30990
31026
  };
30991
- async function saveDraft(ctx, draftId, apply, options) {
31027
+ async function saveDraft(ctx, draftId, apply) {
30992
31028
  let conflicts = 0;
30993
31029
  while (true) {
30994
31030
  const draft = await getDraft(ctx, draftId);
@@ -31009,14 +31045,11 @@ async function saveDraft(ctx, draftId, apply, options) {
31009
31045
  files: change.files,
31010
31046
  deletedPaths: change.deletedPaths
31011
31047
  });
31012
- return await reportBuild(
31013
- ctx,
31048
+ return reportBuildStart(
31014
31049
  draftId,
31015
31050
  saved,
31016
31051
  changedCount,
31017
- change.deletedPaths.length,
31018
- options.waitMs,
31019
- options.progress
31052
+ change.deletedPaths.length
31020
31053
  );
31021
31054
  } catch (error51) {
31022
31055
  const status = error51.status;
@@ -31034,39 +31067,30 @@ async function saveDraft(ctx, draftId, apply, options) {
31034
31067
  }
31035
31068
  }
31036
31069
  }
31037
- async function reportBuild(ctx, draftId, saved, changed, deleted, waitMs, progress) {
31070
+ function reportBuildStart(draftId, saved, changed, deleted) {
31038
31071
  const summary = `Saved ${changed} file(s)` + (deleted ? `, deleted ${deleted}` : "") + ` as revision ${saved.revision}.`;
31039
31072
  if (!saved.jobId) {
31040
- return {
31041
- text: `${summary}
31042
- No preview build was queued \u2014 a draft needs both App.tsx and direction.ts before it can render.`
31043
- };
31044
- }
31045
- const { row, pollError } = await waitForJob(ctx, saved.jobId, waitMs, progress);
31046
- if (pollError) {
31047
- return {
31048
- text: `${summary}
31049
- The save COMMITTED \u2014 do not re-apply this edit. Could not read the preview build's status (${pollError}). Check it with ${resumeWith(saved.jobId)}.`
31050
- };
31051
- }
31052
- if (!row || !TERMINAL.has(row.status)) {
31053
- return {
31054
- text: `${summary}
31055
- Preview build ${saved.jobId} is still ${row?.status ?? "queued"}. Follow it with ${resumeWith(saved.jobId)}.`
31056
- };
31057
- }
31058
- if (row.status !== "completed") {
31059
- return fail(
31060
- `${summary}
31061
- Preview build FAILED \u2014 fix this and save again:
31062
-
31063
- ${row.error ?? row.status}`
31064
- );
31073
+ return json2({
31074
+ committed: true,
31075
+ draftId,
31076
+ revision: saved.revision,
31077
+ jobId: null,
31078
+ previewQueued: false,
31079
+ summary,
31080
+ note: "No preview build was queued \u2014 a draft needs both App.tsx and direction.ts before it can render."
31081
+ });
31065
31082
  }
31066
- return {
31067
- text: `${summary}
31068
- Preview built successfully at revision ${row.revision ?? saved.revision}. Capture frames with get_frames({ draftId: "${draftId}", times: [0, 1, 2] }).`
31069
- };
31083
+ return json2({
31084
+ committed: true,
31085
+ draftId,
31086
+ revision: saved.revision,
31087
+ jobId: saved.jobId,
31088
+ previewQueued: true,
31089
+ status: "queued",
31090
+ summary,
31091
+ resumeWith: resumeWith(saved.jobId),
31092
+ note: "The save committed. Do not re-apply it. Follow the preview build with resumeWith; if a transport timeout ever hides a mutation reply, read the changed file before retrying."
31093
+ });
31070
31094
  }
31071
31095
  var accountStatus = {
31072
31096
  name: "account_status",
@@ -31078,17 +31102,20 @@ var accountStatus = {
31078
31102
  var whoami = {
31079
31103
  ...accountStatus,
31080
31104
  name: "whoami",
31081
- title: "Show the connected workspace (legacy alias)"
31105
+ title: "Show the connected workspace (legacy alias)",
31106
+ description: "Deprecated alias for account_status. Use account_status to show the connected workspace, plan, weekly MCP usage, reset time, seats, and billing state."
31082
31107
  };
31083
31108
  var upgradeTool = {
31084
31109
  name: "upgrade",
31085
- title: "Open Pro billing",
31086
- description: "Give the user the authenticated billing page for upgrading to Pro. This requires explicit user interaction in the browser.",
31087
- inputSchema: {},
31110
+ title: "Get the Pro billing link",
31111
+ description: "Return the authenticated Pro billing URL. Set open=true only after the user explicitly asks to open it in their browser.",
31112
+ inputSchema: {
31113
+ open: external_exports.boolean().optional().describe("Open billing in the user's browser. Defaults to false.")
31114
+ },
31088
31115
  local: true,
31089
- handler: async (_args, ctx) => {
31116
+ handler: async (args, ctx) => {
31090
31117
  const url2 = `${(ctx.appUrl ?? "https://motion.impractical.ai").replace(/\/$/, "")}/account/billing`;
31091
- const opened = ctx.openExternal?.(url2) ?? false;
31118
+ const opened = args.open === true ? ctx.openExternal?.(url2) ?? false : false;
31092
31119
  return { text: opened ? `Opened billing in the user's browser: ${url2}` : url2 };
31093
31120
  }
31094
31121
  };
@@ -31201,35 +31228,30 @@ var readDraftFile = {
31201
31228
  var writeDraftFiles = {
31202
31229
  name: "write_draft_files",
31203
31230
  title: "Write draft files",
31204
- description: "Create or overwrite whole files in a draft, and optionally delete others. Waits for the preview rebuild and returns the build error if your code does not compile. Prefer edit_draft_file for small changes. Only .ts/.tsx/.js/.jsx/.css/.json paths sync, max 100 files per draft. Never edit project.json.",
31231
+ description: "Create or overwrite whole files in a draft, and optionally delete others. Returns the committed revision and preview-build job id immediately; follow that id with job_status. Prefer edit_draft_file for small changes. Only .ts/.tsx/.js/.jsx/.css/.json paths sync, max 100 files per draft. Never edit project.json.",
31205
31232
  inputSchema: {
31206
31233
  draftId: external_exports.string().describe("The draft id."),
31207
31234
  files: external_exports.record(external_exports.string(), external_exports.string()).describe("Map of file path to full file content."),
31208
- deletedPaths: external_exports.array(external_exports.string()).optional().describe("Paths to remove from the draft."),
31209
- waitSeconds: external_exports.number().optional().describe(`How long to wait for the preview build. Default ${BUILD_WAIT_SECONDS}.`)
31235
+ deletedPaths: external_exports.array(external_exports.string()).optional().describe("Paths to remove from the draft.")
31210
31236
  },
31211
- handler: async (args, ctx, progress) => {
31237
+ handler: async (args, ctx) => {
31212
31238
  const files = args.files ?? {};
31213
31239
  const deletedPaths = args.deletedPaths ?? [];
31214
- return saveDraft(ctx, String(args.draftId), () => ({ files, deletedPaths }), {
31215
- waitMs: Number(args.waitSeconds ?? BUILD_WAIT_SECONDS) * 1e3,
31216
- progress
31217
- });
31240
+ return saveDraft(ctx, String(args.draftId), () => ({ files, deletedPaths }));
31218
31241
  }
31219
31242
  };
31220
31243
  var editDraftFile = {
31221
31244
  name: "edit_draft_file",
31222
31245
  title: "Edit one draft file",
31223
- description: "Replace an exact string in one draft file. The read, the edit and the write happen in a single call against the current revision, so concurrent edits from the web tweak chat cannot clobber yours. Waits for the preview rebuild and returns the build error if your code does not compile.",
31246
+ description: "Replace an exact string in one draft file. The read, the edit and the write happen in a single call against the current revision, so concurrent edits from the web tweak chat cannot clobber yours. Returns the committed revision and preview-build job id immediately; follow that id with job_status.",
31224
31247
  inputSchema: {
31225
31248
  draftId: external_exports.string().describe("The draft id."),
31226
31249
  path: external_exports.string().describe("File path within the draft, e.g. 'direction.ts'."),
31227
31250
  oldString: external_exports.string().describe("Exact text to replace. Must appear in the file."),
31228
31251
  newString: external_exports.string().describe("Replacement text."),
31229
- replaceAll: external_exports.boolean().optional().describe("Replace every occurrence. Default false, which requires a unique match."),
31230
- waitSeconds: external_exports.number().optional().describe(`How long to wait for the preview build. Default ${BUILD_WAIT_SECONDS}.`)
31252
+ replaceAll: external_exports.boolean().optional().describe("Replace every occurrence. Default false, which requires a unique match.")
31231
31253
  },
31232
- handler: async (args, ctx, progress) => {
31254
+ handler: async (args, ctx) => {
31233
31255
  const path = String(args.path);
31234
31256
  const oldString = String(args.oldString);
31235
31257
  const newString = String(args.newString);
@@ -31254,8 +31276,7 @@ var editDraftFile = {
31254
31276
  }
31255
31277
  const next = args.replaceAll ? content.split(oldString).join(newString) : content.replace(oldString, newString);
31256
31278
  return { files: { [path]: next }, deletedPaths: [] };
31257
- },
31258
- { waitMs: Number(args.waitSeconds ?? BUILD_WAIT_SECONDS) * 1e3, progress }
31279
+ }
31259
31280
  );
31260
31281
  return problem ? fail(problem) : output;
31261
31282
  }
@@ -31267,12 +31288,12 @@ var jobStatus = {
31267
31288
  inputSchema: {
31268
31289
  jobIds: external_exports.array(external_exports.string()).min(1).max(20).describe("Job ids to check."),
31269
31290
  wait: external_exports.boolean().optional().describe("Poll until every job reaches a terminal state."),
31270
- waitSeconds: external_exports.number().optional().describe(`Polling budget when wait is true. Default ${JOB_WAIT_SECONDS}.`)
31291
+ waitSeconds: external_exports.number().optional().describe(`Polling budget when wait is true. Default ${JOB_WAIT_SECONDS}, capped at ${maxWaitSeconds()}s. When the budget runs out the call returns the job ids instead of failing \u2014 call it again to keep waiting.`)
31271
31292
  },
31272
31293
  handler: async (args, ctx, progress) => {
31273
31294
  const jobIds = args.jobIds;
31274
31295
  if (!args.wait) return json2(await ctx.invoke("job-status", { jobIds }));
31275
- const budgetMs = Number(args.waitSeconds ?? JOB_WAIT_SECONDS) * 1e3;
31296
+ const budgetMs = waitBudgetMs(args.waitSeconds, JOB_WAIT_SECONDS);
31276
31297
  const started = Date.now();
31277
31298
  const deadline = started + budgetMs;
31278
31299
  let rows = [];
@@ -31298,41 +31319,32 @@ var jobStatus = {
31298
31319
  });
31299
31320
  await nap(ctx, 2e3);
31300
31321
  }
31301
- return json2({ timedOut: true, stillRunning: jobIds, jobs: rows });
31322
+ return json2({
31323
+ timedOut: true,
31324
+ stillRunning: jobIds,
31325
+ jobs: rows,
31326
+ resumeWith: `job_status({ jobIds: ${JSON.stringify(jobIds)}, wait: true })`,
31327
+ note: "The jobs are still running in the cloud \u2014 this is a pause, not a failure. Call the command in resumeWith to keep following them." + clampNote(args.waitSeconds)
31328
+ });
31302
31329
  }
31303
31330
  };
31304
31331
  var exportVideo = {
31305
31332
  name: "export_video",
31306
31333
  title: "Export the final MP4",
31307
- description: "Render the draft to a final MP4 and return a signed download URL. The URL expires, so only export once the user is happy with the frames.",
31334
+ description: "Start the final MP4 render and return its job id immediately. Follow that id with job_status for the signed download URL. Only export once the user is happy with the frames.",
31308
31335
  inputSchema: {
31309
- draftId: external_exports.string().describe("The draft id."),
31310
- waitSeconds: external_exports.number().optional().describe(
31311
- `How long to wait before handing back the job id. Default ${EXPORT_WAIT_SECONDS}. Raising this does not make the render faster \u2014 it only holds this call open longer.`
31312
- )
31336
+ draftId: external_exports.string().describe("The draft id.")
31313
31337
  },
31314
- handler: async (args, ctx, progress) => {
31338
+ handler: async (args, ctx) => {
31315
31339
  const started = await ctx.invoke("start-export", { draftId: args.draftId });
31316
- const { row, pollError } = await waitForJob(
31317
- ctx,
31318
- started.jobId,
31319
- Number(args.waitSeconds ?? EXPORT_WAIT_SECONDS) * 1e3,
31320
- progress
31321
- );
31322
- if (pollError) {
31323
- return {
31324
- text: `Export job ${started.jobId} is RUNNING, but its status could not be read (${pollError}). Do not start another export. Resume with ${resumeWith(started.jobId)}.`
31325
- };
31326
- }
31327
- if (!row || !TERMINAL.has(row.status)) {
31328
- return {
31329
- text: `Export job ${started.jobId} is still ${row?.status ?? "queued"} \u2014 this is normal, renders outlive a single tool call. Do not start another export. Resume with ${resumeWith(started.jobId)}.`
31330
- };
31331
- }
31332
- if (row.status !== "completed" || !row.master?.url) {
31333
- return fail(`Export ${started.jobId} ${row.status}${row.error ? `: ${row.error}` : ""}`);
31334
- }
31335
- return json2({ jobId: started.jobId, url: row.master.url, bytes: row.master.bytes });
31340
+ return json2({
31341
+ started: true,
31342
+ draftId: String(args.draftId),
31343
+ jobId: started.jobId,
31344
+ status: "queued",
31345
+ resumeWith: resumeWith(started.jobId),
31346
+ note: "Export started. Do not start another export. Follow this job with resumeWith to obtain the signed download URL."
31347
+ });
31336
31348
  }
31337
31349
  };
31338
31350
  var brandList = {
@@ -31352,32 +31364,60 @@ var brandGet = {
31352
31364
  var brandExtract = {
31353
31365
  name: "brand_extract",
31354
31366
  title: "Extract a brand kit from a URL",
31355
- description: "Extract a brand kit (colors, fonts, logo) from a website. Takes a few minutes. Pass the resulting slug to create_video as brandSlug.",
31367
+ description: "Start extracting a brand kit (colors, fonts, logo) from a website and return the run id immediately. To observe an existing run, call this tool with jobId instead of url; that status mode never starts another extraction.",
31356
31368
  inputSchema: {
31357
- url: external_exports.string().describe("The brand website URL."),
31369
+ url: external_exports.string().optional().describe("The brand website URL. Omit when continuing by jobId."),
31370
+ jobId: external_exports.string().optional().describe("Run id returned by a previous brand_extract call."),
31358
31371
  reextract: external_exports.boolean().optional().describe("Re-extract even if a kit already exists."),
31359
- waitSeconds: external_exports.number().optional().describe(`Polling budget. Default ${BRAND_WAIT_SECONDS}.`)
31372
+ wait: external_exports.boolean().optional().describe("With jobId, poll until this extraction is terminal."),
31373
+ waitSeconds: external_exports.number().optional().describe(
31374
+ `With jobId and wait, poll for up to ${BRAND_WAIT_SECONDS}s by default, capped at ${maxWaitSeconds()}s.`
31375
+ )
31360
31376
  },
31361
31377
  handler: async (args, ctx, progress) => {
31362
- const started = await ctx.invoke("brand-extraction", {
31363
- action: "start",
31364
- url: args.url,
31365
- ...args.reextract ? { reextract: true } : {}
31366
- });
31367
- const budgetMs = Number(args.waitSeconds ?? BRAND_WAIT_SECONDS) * 1e3;
31378
+ const url2 = typeof args.url === "string" ? args.url : "";
31379
+ const jobId = typeof args.jobId === "string" ? args.jobId : "";
31380
+ if (url2 && jobId) return fail("Pass either url to start or jobId to continue, not both.");
31381
+ if (!url2 && !jobId) return fail("Pass url to start an extraction, or jobId to continue one.");
31382
+ if (url2) {
31383
+ const started = await ctx.invoke("brand-extraction", {
31384
+ action: "start",
31385
+ url: url2,
31386
+ ...args.reextract ? { reextract: true } : {}
31387
+ });
31388
+ return json2({
31389
+ started: true,
31390
+ jobId: started.job,
31391
+ slug: started.slug,
31392
+ status: "queued",
31393
+ resumeWith: `brand_extract({ jobId: "${started.job}", wait: true })`,
31394
+ note: "Brand extraction started. Do not call brand_extract with the URL again. Continue this exact run with resumeWith, then pass the completed slug to create_video as brandSlug."
31395
+ });
31396
+ }
31397
+ const readStatus = () => ctx.invoke("brand-extraction", { action: "status", job: jobId });
31398
+ if (!args.wait) {
31399
+ const status = await readStatus();
31400
+ if (status.status === "error" || status.status === "failed" || status.error) {
31401
+ return fail(`Brand extraction failed${status.error ? `: ${status.error}` : ""}`);
31402
+ }
31403
+ return json2({ jobId, ...status });
31404
+ }
31405
+ const budgetMs = waitBudgetMs(args.waitSeconds, BRAND_WAIT_SECONDS);
31368
31406
  const startedAt = Date.now();
31369
31407
  const deadline = startedAt + budgetMs;
31370
31408
  let consecutiveErrors = 0;
31371
31409
  let lastError = "";
31372
31410
  let stage = "";
31411
+ let lastStatus = {};
31373
31412
  while (Date.now() < deadline) {
31374
31413
  if (progress?.signal?.aborted) break;
31375
31414
  try {
31376
- const status = await ctx.invoke("brand-extraction", { action: "status", job: started.job });
31415
+ const status = await readStatus();
31416
+ lastStatus = status;
31377
31417
  consecutiveErrors = 0;
31378
31418
  stage = status.stage ?? stage;
31379
31419
  if (status.status === "done") {
31380
- return json2({ slug: status.slug ?? started.slug, status: "done" });
31420
+ return json2({ jobId, ...status });
31381
31421
  }
31382
31422
  if (status.status === "error" || status.status === "failed" || status.error) {
31383
31423
  return fail(`Brand extraction failed${status.error ? `: ${status.error}` : ""}`);
@@ -31389,13 +31429,18 @@ var brandExtract = {
31389
31429
  progress?.report?.({
31390
31430
  progress: Math.min(Date.now() - startedAt, budgetMs),
31391
31431
  total: budgetMs,
31392
- message: `brand ${started.slug}: ${stage || "extracting"}`
31432
+ message: `brand run ${jobId}: ${stage || "extracting"}`
31393
31433
  });
31394
31434
  await nap(ctx, 2e3);
31395
31435
  }
31396
- return {
31397
- text: `Brand extraction for ${started.slug} is still running${lastError ? ` (last status check failed: ${lastError})` : ""}. Call brand_extract again with the same url to pick it back up, or brand_get({ slug: "${started.slug}" }) once it lands.`
31398
- };
31436
+ return json2({
31437
+ timedOut: true,
31438
+ jobId,
31439
+ status: lastStatus,
31440
+ ...lastError ? { pollError: lastError } : {},
31441
+ resumeWith: `brand_extract({ jobId: "${jobId}", wait: true })`,
31442
+ note: "The extraction is still running \u2014 this is a pause, not a failure. Continue the same run with resumeWith; never call brand_extract with the URL again for this run." + clampNote(args.waitSeconds)
31443
+ });
31399
31444
  }
31400
31445
  };
31401
31446
  var motionProfile = {
@@ -31649,6 +31694,7 @@ var getFramesTool = {
31649
31694
  };
31650
31695
 
31651
31696
  // src/mcp/connect.ts
31697
+ var CONNECT_WAIT_SECONDS = 300;
31652
31698
  async function connectWorkspace(input, deps) {
31653
31699
  const grant = await deps.request(deps.supabaseUrl, "cli-device-auth", {
31654
31700
  action: "start"
@@ -31693,7 +31739,7 @@ var connectTool = {
31693
31739
  title: "Connect this workspace",
31694
31740
  description: "Authenticate Impractical Motion for this machine. Opens the user's browser to approve the connection, waits for them to confirm, and stores the credential locally. TELL THE USER YOU ARE ABOUT TO OPEN THEIR BROWSER BEFORE CALLING THIS \u2014 the call blocks until they approve. Use it whenever a tool reports that the workspace is not connected.",
31695
31741
  inputSchema: {
31696
- waitSeconds: external_exports.number().optional().describe("How long to wait for browser approval. Default 300.")
31742
+ waitSeconds: external_exports.number().optional().describe(`How long to wait for browser approval. Default ${CONNECT_WAIT_SECONDS}.`)
31697
31743
  },
31698
31744
  local: true,
31699
31745
  handler: async (args, ctx) => {
@@ -31701,7 +31747,10 @@ var connectTool = {
31701
31747
  const supabaseUrl = stored.supabaseUrl ?? PRODUCTION_SUPABASE_URL;
31702
31748
  const appUrl = stored.appUrl ?? PRODUCTION_APP_URL;
31703
31749
  const result = await connectWorkspace(
31704
- { waitMs: Number(args.waitSeconds ?? 300) * 1e3 },
31750
+ // Capped like every other wait: a browser approval that outlives the MCP
31751
+ // client's request deadline reports a failure the user then repeats,
31752
+ // burning a second device grant on an approval that already worked.
31753
+ { waitMs: waitBudgetMs(args.waitSeconds, CONNECT_WAIT_SECONDS) },
31705
31754
  {
31706
31755
  request: (url2, name, body) => invokeAt(url2, name, body),
31707
31756
  open: openBrowser,
@@ -31796,7 +31845,10 @@ var UNMETERED_MCP_TOOLS = /* @__PURE__ */ new Set([
31796
31845
  "account_status",
31797
31846
  "whoami",
31798
31847
  "upgrade",
31799
- "studio_link"
31848
+ "studio_link",
31849
+ // This tool has a packaged local fallback and is explicitly required before
31850
+ // authentication-dependent work. Admission must not block that fallback.
31851
+ "engine_types"
31800
31852
  ]);
31801
31853
  var encoder = new TextEncoder();
31802
31854
  var decoder = new TextDecoder();
@@ -31833,7 +31885,6 @@ var TOOLS = [
31833
31885
  engineTypesTool,
31834
31886
  motionContextTool
31835
31887
  ];
31836
- var VERSION = "0.1.0";
31837
31888
  function toContent(output) {
31838
31889
  const content = [{ type: "text", text: output.text }];
31839
31890
  for (const image of output.images ?? []) {
@@ -31875,7 +31926,10 @@ Quota warning: ${admission.warning}`;
31875
31926
  } catch (error51) {
31876
31927
  const status = error51.status;
31877
31928
  const message = error51 instanceof Error ? error51.message : String(error51);
31878
- const hint = status === 401 || isNotConnected(message) ? "\n\nCall the `connect` tool to authenticate this workspace." : status === 402 ? "\n\nThe workspace needs an active subscription or trial." : status === 429 ? "\n\nCall `upgrade` to open billing, or wait until the Monday UTC reset." : "";
31929
+ const details = error51 instanceof ApiError ? error51.details : void 0;
31930
+ const resetTime = typeof details?.resetTime === "string" ? details.resetTime : void 0;
31931
+ const upgradeUrl = typeof details?.upgradeUrl === "string" ? details.upgradeUrl : void 0;
31932
+ const hint = status === 401 || isNotConnected(message) ? "\n\nCall the `connect` tool to authenticate this workspace." : status === 402 ? "\n\nThe workspace needs an active subscription or trial." : status === 429 ? "\n\nNo work was started for this call. The free workspace has used all 200 weekly MCP calls." + (resetTime ? ` It resets at ${resetTime}.` : " It resets Monday at 00:00 UTC.") + ` Ask the user to upgrade${upgradeUrl ? ` at ${upgradeUrl}` : " with the `upgrade` tool"}, or retry after the reset. \`account_status\` remains available without using quota.` : "";
31879
31933
  return toContent({ text: `${tool.name} failed: ${message}${hint}`, isError: true });
31880
31934
  }
31881
31935
  }
@@ -31900,8 +31954,12 @@ function registerEngineResource(server) {
31900
31954
  );
31901
31955
  }
31902
31956
  function createServer(ctx) {
31957
+ const validatedCtx = {
31958
+ ...ctx,
31959
+ invoke: async (name, body = {}) => validateApiResponse(name, body, await ctx.invoke(name, body))
31960
+ };
31903
31961
  const server = new McpServer(
31904
- { name: "impractical-motion", version: VERSION },
31962
+ { name: "impractical-motion", version: PACKAGE_VERSION },
31905
31963
  {
31906
31964
  // This string lands in the client's system prompt at connection time —
31907
31965
  // the ONLY channel guaranteed to be in context before the agent acts.
@@ -31909,23 +31967,10 @@ function createServer(ctx) {
31909
31967
  // agent that skips motion_context still cannot produce slop by default.
31910
31968
  // The full language (ease table, blur doctrine, camera grammar, beat
31911
31969
  // sheets) ships live in motion_context's `guidance.motionDirection`.
31912
- instructions: `Impractical Motion makes studio-quality motion-graphics videos. Draft source lives in the cloud \u2014 there is no working copy on disk, so edit through these tools rather than writing files.
31913
-
31914
- You are the director. Call engine_types first to learn the API, then motion_context to study the current house library and production references, then create_video, then write App.tsx (the stage markup) and direction.ts (the GSAP choreography) with edit_draft_file / write_draft_files. Every save rebuilds the preview and returns the build error if your code does not compile. Call get_frames to SEE the result before telling the user it is done, then export_video and hand them the studio_link.
31915
-
31916
- JOBS OUTLIVE TOOL CALLS. Builds and exports run in the cloud, and a tool that returns "still running" or "could not read its status" has NOT failed \u2014 the work is still going and the reply carries the job id. Resume it with job_status({ jobIds: [...], wait: true }). Never start a second export, and never re-apply an edit that already reported a committed revision: both waste the user's quota and their time.
31917
-
31918
- THE MOTION FLOOR \u2014 these hold even if you read nothing else:
31919
- 1. Beat out the story before writing code: every beat needs a time, a thing on screen, and a move. A beat with no move is not a beat.
31920
- 2. Text enters on RISE \u2014 text.reveal(el, 'rise') on promo-out, lines ~0.2s apart. Do NOT default type to 'blur': word-by-word de-blur reads as out-of-focus and a staggered blur turns to mush. Blur is for whole-frame moves \u2014 fx.spike(el, 'blur') alongside a whip or dive, where it hides the cut. Never animate blur above 20px.
31921
- 3. Every ease is a named house curve \u2014 ease-out-* for entrances, ease-in-out-* for travel and ALL camera moves, ease-in-* for exits and dives only. Never leave an ease unspecified, and never put an ease-in-* on an entrance.
31922
- 4. Motion is fast: entrances 0.4-0.6s, exits shorter, line staggers ~0.2s apart, nothing over 1s except a deliberate hold drift or slow push.
31923
- 5. Nothing is ever static \u2014 every hold carries a slow drift or camera push. Cuts are HARD (tl.set), never crossfades.
31924
- 6. Determinism: no Date.now, Math.random, setTimeout, or CSS transitions. The exporter renders by seeking, so wall-clock motion shimmers or vanishes.
31925
- 7. Never claim a video is done without calling get_frames and looking at the frames.`
31970
+ instructions: "Impractical Motion makes studio-quality motion-graphics videos. Draft source lives in the cloud \u2014 there is no working copy on disk, so edit through these tools rather than writing files.\n\nYou are the director. Call engine_types first to learn the API, then motion_context to study the current house library and production references, then create_video, then write App.tsx (the stage markup) and direction.ts (the GSAP choreography) with edit_draft_file / write_draft_files. Every save returns its committed revision and preview-build job id immediately. Follow that id with job_status and fix any build error it returns. Call get_frames to SEE the result before telling the user it is done, then call export_video, follow its returned job id with job_status, and hand the user the studio_link.\n\nJOBS OUTLIVE TOOL CALLS. Job-producing mutations return their durable job id BEFORE any wait; resume that exact id with job_status({ jobIds: [...], wait: true }). Never start a second export or re-apply an edit after a committed revision. If the MCP client kills a call and shows only a timeout, assume the acknowledgment may have been lost: DO NOT blindly retry a mutating or metered tool. Verify state first. For a write/edit, use list_draft_files and read_draft_file to confirm the intended source and revision. For an export or other project mutation, use get_project/list_projects to check whether it already started or completed. brand_extract returns a durable run handle; continue that exact jobId in status mode and never re-extract blindly. If its start acknowledgement is lost, check brand_list/brand_get before starting again. Retry only when those reads prove the mutation did not commit; otherwise continue from the observed state.\n\nTHE MOTION FLOOR \u2014 these hold even if you read nothing else:\n1. Beat out the story before writing code: every beat needs a time, a thing on screen, and a move. A beat with no move is not a beat.\n2. Text enters on RISE \u2014 text.reveal(el, 'rise') on promo-out, lines ~0.2s apart. Do NOT default type to 'blur': word-by-word de-blur reads as out-of-focus and a staggered blur turns to mush. Blur is for whole-frame moves \u2014 fx.spike(el, 'blur') alongside a whip or dive, where it hides the cut. Never animate blur above 20px.\n3. Every ease is a named house curve \u2014 ease-out-* for entrances, ease-in-out-* for travel and ALL camera moves, ease-in-* for exits and dives only. Never leave an ease unspecified, and never put an ease-in-* on an entrance.\n4. Motion is fast: entrances 0.4-0.6s, exits shorter, line staggers ~0.2s apart, nothing over 1s except a deliberate hold drift or slow push.\n5. Nothing is ever static \u2014 every hold carries a slow drift or camera push. Cuts are HARD (tl.set), never crossfades.\n6. Determinism: no Date.now, Math.random, setTimeout, or CSS transitions. The exporter renders by seeking, so wall-clock motion shimmers or vanishes.\n7. Never claim a video is done without calling get_frames and looking at the frames."
31926
31971
  }
31927
31972
  );
31928
- for (const tool of TOOLS) register(server, tool, ctx);
31973
+ for (const tool of TOOLS) register(server, tool, validatedCtx);
31929
31974
  registerEngineResource(server);
31930
31975
  return server;
31931
31976
  }