@impractical-ai/motion 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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();
@@ -3894,9 +3896,9 @@ var require_fast_uri = __commonJS({
3894
3896
  }
3895
3897
  });
3896
3898
 
3897
- // ../node_modules/ajv/dist/runtime/uri.js
3899
+ // ../../../node_modules/ajv/dist/runtime/uri.js
3898
3900
  var require_uri = __commonJS({
3899
- "../node_modules/ajv/dist/runtime/uri.js"(exports) {
3901
+ "../../../node_modules/ajv/dist/runtime/uri.js"(exports) {
3900
3902
  "use strict";
3901
3903
  Object.defineProperty(exports, "__esModule", { value: true });
3902
3904
  var uri = require_fast_uri();
@@ -3905,9 +3907,9 @@ var require_uri = __commonJS({
3905
3907
  }
3906
3908
  });
3907
3909
 
3908
- // ../node_modules/ajv/dist/core.js
3910
+ // ../../../node_modules/ajv/dist/core.js
3909
3911
  var require_core = __commonJS({
3910
- "../node_modules/ajv/dist/core.js"(exports) {
3912
+ "../../../node_modules/ajv/dist/core.js"(exports) {
3911
3913
  "use strict";
3912
3914
  Object.defineProperty(exports, "__esModule", { value: true });
3913
3915
  exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
@@ -4516,9 +4518,9 @@ var require_core = __commonJS({
4516
4518
  }
4517
4519
  });
4518
4520
 
4519
- // ../node_modules/ajv/dist/vocabularies/core/id.js
4521
+ // ../../../node_modules/ajv/dist/vocabularies/core/id.js
4520
4522
  var require_id = __commonJS({
4521
- "../node_modules/ajv/dist/vocabularies/core/id.js"(exports) {
4523
+ "../../../node_modules/ajv/dist/vocabularies/core/id.js"(exports) {
4522
4524
  "use strict";
4523
4525
  Object.defineProperty(exports, "__esModule", { value: true });
4524
4526
  var def = {
@@ -4531,9 +4533,9 @@ var require_id = __commonJS({
4531
4533
  }
4532
4534
  });
4533
4535
 
4534
- // ../node_modules/ajv/dist/vocabularies/core/ref.js
4536
+ // ../../../node_modules/ajv/dist/vocabularies/core/ref.js
4535
4537
  var require_ref = __commonJS({
4536
- "../node_modules/ajv/dist/vocabularies/core/ref.js"(exports) {
4538
+ "../../../node_modules/ajv/dist/vocabularies/core/ref.js"(exports) {
4537
4539
  "use strict";
4538
4540
  Object.defineProperty(exports, "__esModule", { value: true });
4539
4541
  exports.callRef = exports.getValidate = void 0;
@@ -4653,9 +4655,9 @@ var require_ref = __commonJS({
4653
4655
  }
4654
4656
  });
4655
4657
 
4656
- // ../node_modules/ajv/dist/vocabularies/core/index.js
4658
+ // ../../../node_modules/ajv/dist/vocabularies/core/index.js
4657
4659
  var require_core2 = __commonJS({
4658
- "../node_modules/ajv/dist/vocabularies/core/index.js"(exports) {
4660
+ "../../../node_modules/ajv/dist/vocabularies/core/index.js"(exports) {
4659
4661
  "use strict";
4660
4662
  Object.defineProperty(exports, "__esModule", { value: true });
4661
4663
  var id_1 = require_id();
@@ -4674,9 +4676,9 @@ var require_core2 = __commonJS({
4674
4676
  }
4675
4677
  });
4676
4678
 
4677
- // ../node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4679
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4678
4680
  var require_limitNumber = __commonJS({
4679
- "../node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) {
4681
+ "../../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) {
4680
4682
  "use strict";
4681
4683
  Object.defineProperty(exports, "__esModule", { value: true });
4682
4684
  var codegen_1 = require_codegen();
@@ -4706,9 +4708,9 @@ var require_limitNumber = __commonJS({
4706
4708
  }
4707
4709
  });
4708
4710
 
4709
- // ../node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4711
+ // ../../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4710
4712
  var require_multipleOf = __commonJS({
4711
- "../node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) {
4713
+ "../../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) {
4712
4714
  "use strict";
4713
4715
  Object.defineProperty(exports, "__esModule", { value: true });
4714
4716
  var codegen_1 = require_codegen();
@@ -4734,9 +4736,9 @@ var require_multipleOf = __commonJS({
4734
4736
  }
4735
4737
  });
4736
4738
 
4737
- // ../node_modules/ajv/dist/runtime/ucs2length.js
4739
+ // ../../../node_modules/ajv/dist/runtime/ucs2length.js
4738
4740
  var require_ucs2length = __commonJS({
4739
- "../node_modules/ajv/dist/runtime/ucs2length.js"(exports) {
4741
+ "../../../node_modules/ajv/dist/runtime/ucs2length.js"(exports) {
4740
4742
  "use strict";
4741
4743
  Object.defineProperty(exports, "__esModule", { value: true });
4742
4744
  function ucs2length(str) {
@@ -4760,9 +4762,9 @@ var require_ucs2length = __commonJS({
4760
4762
  }
4761
4763
  });
4762
4764
 
4763
- // ../node_modules/ajv/dist/vocabularies/validation/limitLength.js
4765
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitLength.js
4764
4766
  var require_limitLength = __commonJS({
4765
- "../node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) {
4767
+ "../../../node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) {
4766
4768
  "use strict";
4767
4769
  Object.defineProperty(exports, "__esModule", { value: true });
4768
4770
  var codegen_1 = require_codegen();
@@ -4792,9 +4794,9 @@ var require_limitLength = __commonJS({
4792
4794
  }
4793
4795
  });
4794
4796
 
4795
- // ../node_modules/ajv/dist/vocabularies/validation/pattern.js
4797
+ // ../../../node_modules/ajv/dist/vocabularies/validation/pattern.js
4796
4798
  var require_pattern = __commonJS({
4797
- "../node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) {
4799
+ "../../../node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) {
4798
4800
  "use strict";
4799
4801
  Object.defineProperty(exports, "__esModule", { value: true });
4800
4802
  var code_1 = require_code2();
@@ -4829,9 +4831,9 @@ var require_pattern = __commonJS({
4829
4831
  }
4830
4832
  });
4831
4833
 
4832
- // ../node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4834
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4833
4835
  var require_limitProperties = __commonJS({
4834
- "../node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) {
4836
+ "../../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) {
4835
4837
  "use strict";
4836
4838
  Object.defineProperty(exports, "__esModule", { value: true });
4837
4839
  var codegen_1 = require_codegen();
@@ -4858,9 +4860,9 @@ var require_limitProperties = __commonJS({
4858
4860
  }
4859
4861
  });
4860
4862
 
4861
- // ../node_modules/ajv/dist/vocabularies/validation/required.js
4863
+ // ../../../node_modules/ajv/dist/vocabularies/validation/required.js
4862
4864
  var require_required = __commonJS({
4863
- "../node_modules/ajv/dist/vocabularies/validation/required.js"(exports) {
4865
+ "../../../node_modules/ajv/dist/vocabularies/validation/required.js"(exports) {
4864
4866
  "use strict";
4865
4867
  Object.defineProperty(exports, "__esModule", { value: true });
4866
4868
  var code_1 = require_code2();
@@ -4940,9 +4942,9 @@ var require_required = __commonJS({
4940
4942
  }
4941
4943
  });
4942
4944
 
4943
- // ../node_modules/ajv/dist/vocabularies/validation/limitItems.js
4945
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitItems.js
4944
4946
  var require_limitItems = __commonJS({
4945
- "../node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) {
4947
+ "../../../node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) {
4946
4948
  "use strict";
4947
4949
  Object.defineProperty(exports, "__esModule", { value: true });
4948
4950
  var codegen_1 = require_codegen();
@@ -4969,9 +4971,9 @@ var require_limitItems = __commonJS({
4969
4971
  }
4970
4972
  });
4971
4973
 
4972
- // ../node_modules/ajv/dist/runtime/equal.js
4974
+ // ../../../node_modules/ajv/dist/runtime/equal.js
4973
4975
  var require_equal = __commonJS({
4974
- "../node_modules/ajv/dist/runtime/equal.js"(exports) {
4976
+ "../../../node_modules/ajv/dist/runtime/equal.js"(exports) {
4975
4977
  "use strict";
4976
4978
  Object.defineProperty(exports, "__esModule", { value: true });
4977
4979
  var equal = require_fast_deep_equal();
@@ -4980,9 +4982,9 @@ var require_equal = __commonJS({
4980
4982
  }
4981
4983
  });
4982
4984
 
4983
- // ../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4985
+ // ../../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4984
4986
  var require_uniqueItems = __commonJS({
4985
- "../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) {
4987
+ "../../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) {
4986
4988
  "use strict";
4987
4989
  Object.defineProperty(exports, "__esModule", { value: true });
4988
4990
  var dataType_1 = require_dataType();
@@ -5047,9 +5049,9 @@ var require_uniqueItems = __commonJS({
5047
5049
  }
5048
5050
  });
5049
5051
 
5050
- // ../node_modules/ajv/dist/vocabularies/validation/const.js
5052
+ // ../../../node_modules/ajv/dist/vocabularies/validation/const.js
5051
5053
  var require_const = __commonJS({
5052
- "../node_modules/ajv/dist/vocabularies/validation/const.js"(exports) {
5054
+ "../../../node_modules/ajv/dist/vocabularies/validation/const.js"(exports) {
5053
5055
  "use strict";
5054
5056
  Object.defineProperty(exports, "__esModule", { value: true });
5055
5057
  var codegen_1 = require_codegen();
@@ -5076,9 +5078,9 @@ var require_const = __commonJS({
5076
5078
  }
5077
5079
  });
5078
5080
 
5079
- // ../node_modules/ajv/dist/vocabularies/validation/enum.js
5081
+ // ../../../node_modules/ajv/dist/vocabularies/validation/enum.js
5080
5082
  var require_enum = __commonJS({
5081
- "../node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) {
5083
+ "../../../node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) {
5082
5084
  "use strict";
5083
5085
  Object.defineProperty(exports, "__esModule", { value: true });
5084
5086
  var codegen_1 = require_codegen();
@@ -5125,9 +5127,9 @@ var require_enum = __commonJS({
5125
5127
  }
5126
5128
  });
5127
5129
 
5128
- // ../node_modules/ajv/dist/vocabularies/validation/index.js
5130
+ // ../../../node_modules/ajv/dist/vocabularies/validation/index.js
5129
5131
  var require_validation = __commonJS({
5130
- "../node_modules/ajv/dist/vocabularies/validation/index.js"(exports) {
5132
+ "../../../node_modules/ajv/dist/vocabularies/validation/index.js"(exports) {
5131
5133
  "use strict";
5132
5134
  Object.defineProperty(exports, "__esModule", { value: true });
5133
5135
  var limitNumber_1 = require_limitNumber();
@@ -5163,9 +5165,9 @@ var require_validation = __commonJS({
5163
5165
  }
5164
5166
  });
5165
5167
 
5166
- // ../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5168
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5167
5169
  var require_additionalItems = __commonJS({
5168
- "../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) {
5170
+ "../../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) {
5169
5171
  "use strict";
5170
5172
  Object.defineProperty(exports, "__esModule", { value: true });
5171
5173
  exports.validateAdditionalItems = void 0;
@@ -5216,9 +5218,9 @@ var require_additionalItems = __commonJS({
5216
5218
  }
5217
5219
  });
5218
5220
 
5219
- // ../node_modules/ajv/dist/vocabularies/applicator/items.js
5221
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/items.js
5220
5222
  var require_items = __commonJS({
5221
- "../node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) {
5223
+ "../../../node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) {
5222
5224
  "use strict";
5223
5225
  Object.defineProperty(exports, "__esModule", { value: true });
5224
5226
  exports.validateTuple = void 0;
@@ -5273,9 +5275,9 @@ var require_items = __commonJS({
5273
5275
  }
5274
5276
  });
5275
5277
 
5276
- // ../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5278
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5277
5279
  var require_prefixItems = __commonJS({
5278
- "../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) {
5280
+ "../../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) {
5279
5281
  "use strict";
5280
5282
  Object.defineProperty(exports, "__esModule", { value: true });
5281
5283
  var items_1 = require_items();
@@ -5290,9 +5292,9 @@ var require_prefixItems = __commonJS({
5290
5292
  }
5291
5293
  });
5292
5294
 
5293
- // ../node_modules/ajv/dist/vocabularies/applicator/items2020.js
5295
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/items2020.js
5294
5296
  var require_items2020 = __commonJS({
5295
- "../node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) {
5297
+ "../../../node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) {
5296
5298
  "use strict";
5297
5299
  Object.defineProperty(exports, "__esModule", { value: true });
5298
5300
  var codegen_1 = require_codegen();
@@ -5325,9 +5327,9 @@ var require_items2020 = __commonJS({
5325
5327
  }
5326
5328
  });
5327
5329
 
5328
- // ../node_modules/ajv/dist/vocabularies/applicator/contains.js
5330
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/contains.js
5329
5331
  var require_contains = __commonJS({
5330
- "../node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) {
5332
+ "../../../node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) {
5331
5333
  "use strict";
5332
5334
  Object.defineProperty(exports, "__esModule", { value: true });
5333
5335
  var codegen_1 = require_codegen();
@@ -5419,9 +5421,9 @@ var require_contains = __commonJS({
5419
5421
  }
5420
5422
  });
5421
5423
 
5422
- // ../node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5424
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5423
5425
  var require_dependencies = __commonJS({
5424
- "../node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) {
5426
+ "../../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) {
5425
5427
  "use strict";
5426
5428
  Object.defineProperty(exports, "__esModule", { value: true });
5427
5429
  exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;
@@ -5513,9 +5515,9 @@ var require_dependencies = __commonJS({
5513
5515
  }
5514
5516
  });
5515
5517
 
5516
- // ../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5518
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5517
5519
  var require_propertyNames = __commonJS({
5518
- "../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) {
5520
+ "../../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) {
5519
5521
  "use strict";
5520
5522
  Object.defineProperty(exports, "__esModule", { value: true });
5521
5523
  var codegen_1 = require_codegen();
@@ -5556,9 +5558,9 @@ var require_propertyNames = __commonJS({
5556
5558
  }
5557
5559
  });
5558
5560
 
5559
- // ../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5561
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5560
5562
  var require_additionalProperties = __commonJS({
5561
- "../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) {
5563
+ "../../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) {
5562
5564
  "use strict";
5563
5565
  Object.defineProperty(exports, "__esModule", { value: true });
5564
5566
  var code_1 = require_code2();
@@ -5662,9 +5664,9 @@ var require_additionalProperties = __commonJS({
5662
5664
  }
5663
5665
  });
5664
5666
 
5665
- // ../node_modules/ajv/dist/vocabularies/applicator/properties.js
5667
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/properties.js
5666
5668
  var require_properties = __commonJS({
5667
- "../node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) {
5669
+ "../../../node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) {
5668
5670
  "use strict";
5669
5671
  Object.defineProperty(exports, "__esModule", { value: true });
5670
5672
  var validate_1 = require_validate();
@@ -5720,9 +5722,9 @@ var require_properties = __commonJS({
5720
5722
  }
5721
5723
  });
5722
5724
 
5723
- // ../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5725
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5724
5726
  var require_patternProperties = __commonJS({
5725
- "../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) {
5727
+ "../../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) {
5726
5728
  "use strict";
5727
5729
  Object.defineProperty(exports, "__esModule", { value: true });
5728
5730
  var code_1 = require_code2();
@@ -5794,9 +5796,9 @@ var require_patternProperties = __commonJS({
5794
5796
  }
5795
5797
  });
5796
5798
 
5797
- // ../node_modules/ajv/dist/vocabularies/applicator/not.js
5799
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/not.js
5798
5800
  var require_not = __commonJS({
5799
- "../node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) {
5801
+ "../../../node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) {
5800
5802
  "use strict";
5801
5803
  Object.defineProperty(exports, "__esModule", { value: true });
5802
5804
  var util_1 = require_util();
@@ -5825,9 +5827,9 @@ var require_not = __commonJS({
5825
5827
  }
5826
5828
  });
5827
5829
 
5828
- // ../node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5830
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5829
5831
  var require_anyOf = __commonJS({
5830
- "../node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) {
5832
+ "../../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) {
5831
5833
  "use strict";
5832
5834
  Object.defineProperty(exports, "__esModule", { value: true });
5833
5835
  var code_1 = require_code2();
@@ -5842,9 +5844,9 @@ var require_anyOf = __commonJS({
5842
5844
  }
5843
5845
  });
5844
5846
 
5845
- // ../node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5847
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5846
5848
  var require_oneOf = __commonJS({
5847
- "../node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) {
5849
+ "../../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) {
5848
5850
  "use strict";
5849
5851
  Object.defineProperty(exports, "__esModule", { value: true });
5850
5852
  var codegen_1 = require_codegen();
@@ -5900,9 +5902,9 @@ var require_oneOf = __commonJS({
5900
5902
  }
5901
5903
  });
5902
5904
 
5903
- // ../node_modules/ajv/dist/vocabularies/applicator/allOf.js
5905
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/allOf.js
5904
5906
  var require_allOf = __commonJS({
5905
- "../node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) {
5907
+ "../../../node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) {
5906
5908
  "use strict";
5907
5909
  Object.defineProperty(exports, "__esModule", { value: true });
5908
5910
  var util_1 = require_util();
@@ -5927,9 +5929,9 @@ var require_allOf = __commonJS({
5927
5929
  }
5928
5930
  });
5929
5931
 
5930
- // ../node_modules/ajv/dist/vocabularies/applicator/if.js
5932
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/if.js
5931
5933
  var require_if = __commonJS({
5932
- "../node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) {
5934
+ "../../../node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) {
5933
5935
  "use strict";
5934
5936
  Object.defineProperty(exports, "__esModule", { value: true });
5935
5937
  var codegen_1 = require_codegen();
@@ -5996,9 +5998,9 @@ var require_if = __commonJS({
5996
5998
  }
5997
5999
  });
5998
6000
 
5999
- // ../node_modules/ajv/dist/vocabularies/applicator/thenElse.js
6001
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js
6000
6002
  var require_thenElse = __commonJS({
6001
- "../node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) {
6003
+ "../../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) {
6002
6004
  "use strict";
6003
6005
  Object.defineProperty(exports, "__esModule", { value: true });
6004
6006
  var util_1 = require_util();
@@ -6014,9 +6016,9 @@ var require_thenElse = __commonJS({
6014
6016
  }
6015
6017
  });
6016
6018
 
6017
- // ../node_modules/ajv/dist/vocabularies/applicator/index.js
6019
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/index.js
6018
6020
  var require_applicator = __commonJS({
6019
- "../node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) {
6021
+ "../../../node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) {
6020
6022
  "use strict";
6021
6023
  Object.defineProperty(exports, "__esModule", { value: true });
6022
6024
  var additionalItems_1 = require_additionalItems();
@@ -6062,9 +6064,9 @@ var require_applicator = __commonJS({
6062
6064
  }
6063
6065
  });
6064
6066
 
6065
- // ../node_modules/ajv/dist/vocabularies/format/format.js
6067
+ // ../../../node_modules/ajv/dist/vocabularies/format/format.js
6066
6068
  var require_format = __commonJS({
6067
- "../node_modules/ajv/dist/vocabularies/format/format.js"(exports) {
6069
+ "../../../node_modules/ajv/dist/vocabularies/format/format.js"(exports) {
6068
6070
  "use strict";
6069
6071
  Object.defineProperty(exports, "__esModule", { value: true });
6070
6072
  var codegen_1 = require_codegen();
@@ -6152,9 +6154,9 @@ var require_format = __commonJS({
6152
6154
  }
6153
6155
  });
6154
6156
 
6155
- // ../node_modules/ajv/dist/vocabularies/format/index.js
6157
+ // ../../../node_modules/ajv/dist/vocabularies/format/index.js
6156
6158
  var require_format2 = __commonJS({
6157
- "../node_modules/ajv/dist/vocabularies/format/index.js"(exports) {
6159
+ "../../../node_modules/ajv/dist/vocabularies/format/index.js"(exports) {
6158
6160
  "use strict";
6159
6161
  Object.defineProperty(exports, "__esModule", { value: true });
6160
6162
  var format_1 = require_format();
@@ -6163,9 +6165,9 @@ var require_format2 = __commonJS({
6163
6165
  }
6164
6166
  });
6165
6167
 
6166
- // ../node_modules/ajv/dist/vocabularies/metadata.js
6168
+ // ../../../node_modules/ajv/dist/vocabularies/metadata.js
6167
6169
  var require_metadata = __commonJS({
6168
- "../node_modules/ajv/dist/vocabularies/metadata.js"(exports) {
6170
+ "../../../node_modules/ajv/dist/vocabularies/metadata.js"(exports) {
6169
6171
  "use strict";
6170
6172
  Object.defineProperty(exports, "__esModule", { value: true });
6171
6173
  exports.contentVocabulary = exports.metadataVocabulary = void 0;
@@ -6186,9 +6188,9 @@ var require_metadata = __commonJS({
6186
6188
  }
6187
6189
  });
6188
6190
 
6189
- // ../node_modules/ajv/dist/vocabularies/draft7.js
6191
+ // ../../../node_modules/ajv/dist/vocabularies/draft7.js
6190
6192
  var require_draft7 = __commonJS({
6191
- "../node_modules/ajv/dist/vocabularies/draft7.js"(exports) {
6193
+ "../../../node_modules/ajv/dist/vocabularies/draft7.js"(exports) {
6192
6194
  "use strict";
6193
6195
  Object.defineProperty(exports, "__esModule", { value: true });
6194
6196
  var core_1 = require_core2();
@@ -6208,9 +6210,9 @@ var require_draft7 = __commonJS({
6208
6210
  }
6209
6211
  });
6210
6212
 
6211
- // ../node_modules/ajv/dist/vocabularies/discriminator/types.js
6213
+ // ../../../node_modules/ajv/dist/vocabularies/discriminator/types.js
6212
6214
  var require_types = __commonJS({
6213
- "../node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) {
6215
+ "../../../node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) {
6214
6216
  "use strict";
6215
6217
  Object.defineProperty(exports, "__esModule", { value: true });
6216
6218
  exports.DiscrError = void 0;
@@ -6222,9 +6224,9 @@ var require_types = __commonJS({
6222
6224
  }
6223
6225
  });
6224
6226
 
6225
- // ../node_modules/ajv/dist/vocabularies/discriminator/index.js
6227
+ // ../../../node_modules/ajv/dist/vocabularies/discriminator/index.js
6226
6228
  var require_discriminator = __commonJS({
6227
- "../node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) {
6229
+ "../../../node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) {
6228
6230
  "use strict";
6229
6231
  Object.defineProperty(exports, "__esModule", { value: true });
6230
6232
  var codegen_1 = require_codegen();
@@ -6327,9 +6329,9 @@ var require_discriminator = __commonJS({
6327
6329
  }
6328
6330
  });
6329
6331
 
6330
- // ../node_modules/ajv/dist/refs/json-schema-draft-07.json
6332
+ // ../../../node_modules/ajv/dist/refs/json-schema-draft-07.json
6331
6333
  var require_json_schema_draft_07 = __commonJS({
6332
- "../node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module) {
6334
+ "../../../node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module) {
6333
6335
  module.exports = {
6334
6336
  $schema: "http://json-schema.org/draft-07/schema#",
6335
6337
  $id: "http://json-schema.org/draft-07/schema#",
@@ -6484,9 +6486,9 @@ var require_json_schema_draft_07 = __commonJS({
6484
6486
  }
6485
6487
  });
6486
6488
 
6487
- // ../node_modules/ajv/dist/ajv.js
6489
+ // ../../../node_modules/ajv/dist/ajv.js
6488
6490
  var require_ajv = __commonJS({
6489
- "../node_modules/ajv/dist/ajv.js"(exports, module) {
6491
+ "../../../node_modules/ajv/dist/ajv.js"(exports, module) {
6490
6492
  "use strict";
6491
6493
  Object.defineProperty(exports, "__esModule", { value: true });
6492
6494
  exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;
@@ -6554,9 +6556,9 @@ var require_ajv = __commonJS({
6554
6556
  }
6555
6557
  });
6556
6558
 
6557
- // ../node_modules/ajv-formats/dist/formats.js
6559
+ // ../../../node_modules/ajv-formats/dist/formats.js
6558
6560
  var require_formats = __commonJS({
6559
- "../node_modules/ajv-formats/dist/formats.js"(exports) {
6561
+ "../../../node_modules/ajv-formats/dist/formats.js"(exports) {
6560
6562
  "use strict";
6561
6563
  Object.defineProperty(exports, "__esModule", { value: true });
6562
6564
  exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
@@ -6757,9 +6759,9 @@ var require_formats = __commonJS({
6757
6759
  }
6758
6760
  });
6759
6761
 
6760
- // ../node_modules/ajv-formats/dist/limit.js
6762
+ // ../../../node_modules/ajv-formats/dist/limit.js
6761
6763
  var require_limit = __commonJS({
6762
- "../node_modules/ajv-formats/dist/limit.js"(exports) {
6764
+ "../../../node_modules/ajv-formats/dist/limit.js"(exports) {
6763
6765
  "use strict";
6764
6766
  Object.defineProperty(exports, "__esModule", { value: true });
6765
6767
  exports.formatLimitDefinition = void 0;
@@ -6829,9 +6831,9 @@ var require_limit = __commonJS({
6829
6831
  }
6830
6832
  });
6831
6833
 
6832
- // ../node_modules/ajv-formats/dist/index.js
6834
+ // ../../../node_modules/ajv-formats/dist/index.js
6833
6835
  var require_dist = __commonJS({
6834
- "../node_modules/ajv-formats/dist/index.js"(exports, module) {
6836
+ "../../../node_modules/ajv-formats/dist/index.js"(exports, module) {
6835
6837
  "use strict";
6836
6838
  Object.defineProperty(exports, "__esModule", { value: true });
6837
6839
  var formats_1 = require_formats();
@@ -6875,7 +6877,7 @@ var require_dist = __commonJS({
6875
6877
  import { readFileSync } from "node:fs";
6876
6878
  import { fileURLToPath } from "node:url";
6877
6879
 
6878
- // ../node_modules/zod/v3/helpers/util.js
6880
+ // ../../../node_modules/zod/v3/helpers/util.js
6879
6881
  var util;
6880
6882
  (function(util2) {
6881
6883
  util2.assertEqual = (_) => {
@@ -7009,7 +7011,7 @@ var getParsedType = (data) => {
7009
7011
  }
7010
7012
  };
7011
7013
 
7012
- // ../node_modules/zod/v3/ZodError.js
7014
+ // ../../../node_modules/zod/v3/ZodError.js
7013
7015
  var ZodIssueCode = util.arrayToEnum([
7014
7016
  "invalid_type",
7015
7017
  "invalid_literal",
@@ -7123,7 +7125,7 @@ ZodError.create = (issues) => {
7123
7125
  return error51;
7124
7126
  };
7125
7127
 
7126
- // ../node_modules/zod/v3/locales/en.js
7128
+ // ../../../node_modules/zod/v3/locales/en.js
7127
7129
  var errorMap = (issue2, _ctx) => {
7128
7130
  let message;
7129
7131
  switch (issue2.code) {
@@ -7226,13 +7228,13 @@ var errorMap = (issue2, _ctx) => {
7226
7228
  };
7227
7229
  var en_default = errorMap;
7228
7230
 
7229
- // ../node_modules/zod/v3/errors.js
7231
+ // ../../../node_modules/zod/v3/errors.js
7230
7232
  var overrideErrorMap = en_default;
7231
7233
  function getErrorMap() {
7232
7234
  return overrideErrorMap;
7233
7235
  }
7234
7236
 
7235
- // ../node_modules/zod/v3/helpers/parseUtil.js
7237
+ // ../../../node_modules/zod/v3/helpers/parseUtil.js
7236
7238
  var makeIssue = (params) => {
7237
7239
  const { data, path, errorMaps, issueData } = params;
7238
7240
  const fullPath = [...path, ...issueData.path || []];
@@ -7341,14 +7343,14 @@ var isDirty = (x) => x.status === "dirty";
7341
7343
  var isValid = (x) => x.status === "valid";
7342
7344
  var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
7343
7345
 
7344
- // ../node_modules/zod/v3/helpers/errorUtil.js
7346
+ // ../../../node_modules/zod/v3/helpers/errorUtil.js
7345
7347
  var errorUtil;
7346
7348
  (function(errorUtil2) {
7347
7349
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
7348
7350
  errorUtil2.toString = (message) => typeof message === "string" ? message : message?.message;
7349
7351
  })(errorUtil || (errorUtil = {}));
7350
7352
 
7351
- // ../node_modules/zod/v3/types.js
7353
+ // ../../../node_modules/zod/v3/types.js
7352
7354
  var ParseInputLazyPath = class {
7353
7355
  constructor(parent, value, path, key) {
7354
7356
  this._cachedPath = [];
@@ -10752,7 +10754,7 @@ var nullableType = ZodNullable.create;
10752
10754
  var preprocessType = ZodEffects.createWithPreprocess;
10753
10755
  var pipelineType = ZodPipeline.create;
10754
10756
 
10755
- // ../node_modules/zod/v4/core/index.js
10757
+ // ../../../node_modules/zod/v4/core/index.js
10756
10758
  var core_exports2 = {};
10757
10759
  __export(core_exports2, {
10758
10760
  $ZodAny: () => $ZodAny,
@@ -11031,7 +11033,7 @@ __export(core_exports2, {
11031
11033
  version: () => version
11032
11034
  });
11033
11035
 
11034
- // ../node_modules/zod/v4/core/core.js
11036
+ // ../../../node_modules/zod/v4/core/core.js
11035
11037
  var _a;
11036
11038
  var NEVER = /* @__PURE__ */ Object.freeze({
11037
11039
  status: "aborted"
@@ -11108,7 +11110,7 @@ function config(newConfig) {
11108
11110
  return globalConfig;
11109
11111
  }
11110
11112
 
11111
- // ../node_modules/zod/v4/core/util.js
11113
+ // ../../../node_modules/zod/v4/core/util.js
11112
11114
  var util_exports = {};
11113
11115
  __export(util_exports, {
11114
11116
  BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
@@ -11804,7 +11806,7 @@ var Class = class {
11804
11806
  }
11805
11807
  };
11806
11808
 
11807
- // ../node_modules/zod/v4/core/errors.js
11809
+ // ../../../node_modules/zod/v4/core/errors.js
11808
11810
  var initializer = (inst, def) => {
11809
11811
  inst.name = "$ZodError";
11810
11812
  Object.defineProperty(inst, "_zod", {
@@ -11943,7 +11945,7 @@ function prettifyError(error51) {
11943
11945
  return lines.join("\n");
11944
11946
  }
11945
11947
 
11946
- // ../node_modules/zod/v4/core/parse.js
11948
+ // ../../../node_modules/zod/v4/core/parse.js
11947
11949
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
11948
11950
  const ctx = _ctx ? { ..._ctx, async: false } : { async: false };
11949
11951
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -12031,7 +12033,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
12031
12033
  };
12032
12034
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
12033
12035
 
12034
- // ../node_modules/zod/v4/core/regexes.js
12036
+ // ../../../node_modules/zod/v4/core/regexes.js
12035
12037
  var regexes_exports = {};
12036
12038
  __export(regexes_exports, {
12037
12039
  base64: () => base64,
@@ -12190,7 +12192,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
12190
12192
  var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
12191
12193
  var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
12192
12194
 
12193
- // ../node_modules/zod/v4/core/checks.js
12195
+ // ../../../node_modules/zod/v4/core/checks.js
12194
12196
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
12195
12197
  var _a3;
12196
12198
  inst._zod ?? (inst._zod = {});
@@ -12738,7 +12740,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
12738
12740
  };
12739
12741
  });
12740
12742
 
12741
- // ../node_modules/zod/v4/core/doc.js
12743
+ // ../../../node_modules/zod/v4/core/doc.js
12742
12744
  var Doc = class {
12743
12745
  constructor(args = []) {
12744
12746
  this.content = [];
@@ -12774,14 +12776,14 @@ var Doc = class {
12774
12776
  }
12775
12777
  };
12776
12778
 
12777
- // ../node_modules/zod/v4/core/versions.js
12779
+ // ../../../node_modules/zod/v4/core/versions.js
12778
12780
  var version = {
12779
12781
  major: 4,
12780
12782
  minor: 4,
12781
12783
  patch: 3
12782
12784
  };
12783
12785
 
12784
- // ../node_modules/zod/v4/core/schemas.js
12786
+ // ../../../node_modules/zod/v4/core/schemas.js
12785
12787
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
12786
12788
  var _a3;
12787
12789
  inst ?? (inst = {});
@@ -14874,7 +14876,7 @@ function handleRefineResult(result, payload, input, inst) {
14874
14876
  }
14875
14877
  }
14876
14878
 
14877
- // ../node_modules/zod/v4/locales/index.js
14879
+ // ../../../node_modules/zod/v4/locales/index.js
14878
14880
  var locales_exports = {};
14879
14881
  __export(locales_exports, {
14880
14882
  ar: () => ar_default,
@@ -14931,7 +14933,7 @@ __export(locales_exports, {
14931
14933
  zhTW: () => zh_TW_default
14932
14934
  });
14933
14935
 
14934
- // ../node_modules/zod/v4/locales/ar.js
14936
+ // ../../../node_modules/zod/v4/locales/ar.js
14935
14937
  var error = () => {
14936
14938
  const Sizable = {
14937
14939
  string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
@@ -15038,7 +15040,7 @@ function ar_default() {
15038
15040
  };
15039
15041
  }
15040
15042
 
15041
- // ../node_modules/zod/v4/locales/az.js
15043
+ // ../../../node_modules/zod/v4/locales/az.js
15042
15044
  var error2 = () => {
15043
15045
  const Sizable = {
15044
15046
  string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
@@ -15144,7 +15146,7 @@ function az_default() {
15144
15146
  };
15145
15147
  }
15146
15148
 
15147
- // ../node_modules/zod/v4/locales/be.js
15149
+ // ../../../node_modules/zod/v4/locales/be.js
15148
15150
  function getBelarusianPlural(count, one, few, many) {
15149
15151
  const absCount = Math.abs(count);
15150
15152
  const lastDigit = absCount % 10;
@@ -15301,7 +15303,7 @@ function be_default() {
15301
15303
  };
15302
15304
  }
15303
15305
 
15304
- // ../node_modules/zod/v4/locales/bg.js
15306
+ // ../../../node_modules/zod/v4/locales/bg.js
15305
15307
  var error4 = () => {
15306
15308
  const Sizable = {
15307
15309
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" },
@@ -15422,7 +15424,7 @@ function bg_default() {
15422
15424
  };
15423
15425
  }
15424
15426
 
15425
- // ../node_modules/zod/v4/locales/ca.js
15427
+ // ../../../node_modules/zod/v4/locales/ca.js
15426
15428
  var error5 = () => {
15427
15429
  const Sizable = {
15428
15430
  string: { unit: "car\xE0cters", verb: "contenir" },
@@ -15531,7 +15533,7 @@ function ca_default() {
15531
15533
  };
15532
15534
  }
15533
15535
 
15534
- // ../node_modules/zod/v4/locales/cs.js
15536
+ // ../../../node_modules/zod/v4/locales/cs.js
15535
15537
  var error6 = () => {
15536
15538
  const Sizable = {
15537
15539
  string: { unit: "znak\u016F", verb: "m\xEDt" },
@@ -15643,7 +15645,7 @@ function cs_default() {
15643
15645
  };
15644
15646
  }
15645
15647
 
15646
- // ../node_modules/zod/v4/locales/da.js
15648
+ // ../../../node_modules/zod/v4/locales/da.js
15647
15649
  var error7 = () => {
15648
15650
  const Sizable = {
15649
15651
  string: { unit: "tegn", verb: "havde" },
@@ -15759,7 +15761,7 @@ function da_default() {
15759
15761
  };
15760
15762
  }
15761
15763
 
15762
- // ../node_modules/zod/v4/locales/de.js
15764
+ // ../../../node_modules/zod/v4/locales/de.js
15763
15765
  var error8 = () => {
15764
15766
  const Sizable = {
15765
15767
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -15868,7 +15870,7 @@ function de_default() {
15868
15870
  };
15869
15871
  }
15870
15872
 
15871
- // ../node_modules/zod/v4/locales/el.js
15873
+ // ../../../node_modules/zod/v4/locales/el.js
15872
15874
  var error9 = () => {
15873
15875
  const Sizable = {
15874
15876
  string: { unit: "\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" },
@@ -15978,7 +15980,7 @@ function el_default() {
15978
15980
  };
15979
15981
  }
15980
15982
 
15981
- // ../node_modules/zod/v4/locales/en.js
15983
+ // ../../../node_modules/zod/v4/locales/en.js
15982
15984
  var error10 = () => {
15983
15985
  const Sizable = {
15984
15986
  string: { unit: "characters", verb: "to have" },
@@ -16091,7 +16093,7 @@ function en_default2() {
16091
16093
  };
16092
16094
  }
16093
16095
 
16094
- // ../node_modules/zod/v4/locales/eo.js
16096
+ // ../../../node_modules/zod/v4/locales/eo.js
16095
16097
  var error11 = () => {
16096
16098
  const Sizable = {
16097
16099
  string: { unit: "karaktrojn", verb: "havi" },
@@ -16201,7 +16203,7 @@ function eo_default() {
16201
16203
  };
16202
16204
  }
16203
16205
 
16204
- // ../node_modules/zod/v4/locales/es.js
16206
+ // ../../../node_modules/zod/v4/locales/es.js
16205
16207
  var error12 = () => {
16206
16208
  const Sizable = {
16207
16209
  string: { unit: "caracteres", verb: "tener" },
@@ -16334,7 +16336,7 @@ function es_default() {
16334
16336
  };
16335
16337
  }
16336
16338
 
16337
- // ../node_modules/zod/v4/locales/fa.js
16339
+ // ../../../node_modules/zod/v4/locales/fa.js
16338
16340
  var error13 = () => {
16339
16341
  const Sizable = {
16340
16342
  string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
@@ -16449,7 +16451,7 @@ function fa_default() {
16449
16451
  };
16450
16452
  }
16451
16453
 
16452
- // ../node_modules/zod/v4/locales/fi.js
16454
+ // ../../../node_modules/zod/v4/locales/fi.js
16453
16455
  var error14 = () => {
16454
16456
  const Sizable = {
16455
16457
  string: { unit: "merkki\xE4", subject: "merkkijonon" },
@@ -16562,7 +16564,7 @@ function fi_default() {
16562
16564
  };
16563
16565
  }
16564
16566
 
16565
- // ../node_modules/zod/v4/locales/fr.js
16567
+ // ../../../node_modules/zod/v4/locales/fr.js
16566
16568
  var error15 = () => {
16567
16569
  const Sizable = {
16568
16570
  string: { unit: "caract\xE8res", verb: "avoir" },
@@ -16688,7 +16690,7 @@ function fr_default() {
16688
16690
  };
16689
16691
  }
16690
16692
 
16691
- // ../node_modules/zod/v4/locales/fr-CA.js
16693
+ // ../../../node_modules/zod/v4/locales/fr-CA.js
16692
16694
  var error16 = () => {
16693
16695
  const Sizable = {
16694
16696
  string: { unit: "caract\xE8res", verb: "avoir" },
@@ -16796,7 +16798,7 @@ function fr_CA_default() {
16796
16798
  };
16797
16799
  }
16798
16800
 
16799
- // ../node_modules/zod/v4/locales/he.js
16801
+ // ../../../node_modules/zod/v4/locales/he.js
16800
16802
  var error17 = () => {
16801
16803
  const TypeNames = {
16802
16804
  string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" },
@@ -16991,7 +16993,7 @@ function he_default() {
16991
16993
  };
16992
16994
  }
16993
16995
 
16994
- // ../node_modules/zod/v4/locales/hr.js
16996
+ // ../../../node_modules/zod/v4/locales/hr.js
16995
16997
  var error18 = () => {
16996
16998
  const Sizable = {
16997
16999
  string: { unit: "znakova", verb: "imati" },
@@ -17114,7 +17116,7 @@ function hr_default() {
17114
17116
  };
17115
17117
  }
17116
17118
 
17117
- // ../node_modules/zod/v4/locales/hu.js
17119
+ // ../../../node_modules/zod/v4/locales/hu.js
17118
17120
  var error19 = () => {
17119
17121
  const Sizable = {
17120
17122
  string: { unit: "karakter", verb: "legyen" },
@@ -17223,7 +17225,7 @@ function hu_default() {
17223
17225
  };
17224
17226
  }
17225
17227
 
17226
- // ../node_modules/zod/v4/locales/hy.js
17228
+ // ../../../node_modules/zod/v4/locales/hy.js
17227
17229
  function getArmenianPlural(count, one, many) {
17228
17230
  return Math.abs(count) === 1 ? one : many;
17229
17231
  }
@@ -17371,7 +17373,7 @@ function hy_default() {
17371
17373
  };
17372
17374
  }
17373
17375
 
17374
- // ../node_modules/zod/v4/locales/id.js
17376
+ // ../../../node_modules/zod/v4/locales/id.js
17375
17377
  var error21 = () => {
17376
17378
  const Sizable = {
17377
17379
  string: { unit: "karakter", verb: "memiliki" },
@@ -17478,7 +17480,7 @@ function id_default() {
17478
17480
  };
17479
17481
  }
17480
17482
 
17481
- // ../node_modules/zod/v4/locales/is.js
17483
+ // ../../../node_modules/zod/v4/locales/is.js
17482
17484
  var error22 = () => {
17483
17485
  const Sizable = {
17484
17486
  string: { unit: "stafi", verb: "a\xF0 hafa" },
@@ -17588,7 +17590,7 @@ function is_default() {
17588
17590
  };
17589
17591
  }
17590
17592
 
17591
- // ../node_modules/zod/v4/locales/it.js
17593
+ // ../../../node_modules/zod/v4/locales/it.js
17592
17594
  var error23 = () => {
17593
17595
  const Sizable = {
17594
17596
  string: { unit: "caratteri", verb: "avere" },
@@ -17697,7 +17699,7 @@ function it_default() {
17697
17699
  };
17698
17700
  }
17699
17701
 
17700
- // ../node_modules/zod/v4/locales/ja.js
17702
+ // ../../../node_modules/zod/v4/locales/ja.js
17701
17703
  var error24 = () => {
17702
17704
  const Sizable = {
17703
17705
  string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
@@ -17805,7 +17807,7 @@ function ja_default() {
17805
17807
  };
17806
17808
  }
17807
17809
 
17808
- // ../node_modules/zod/v4/locales/ka.js
17810
+ // ../../../node_modules/zod/v4/locales/ka.js
17809
17811
  var error25 = () => {
17810
17812
  const Sizable = {
17811
17813
  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 +17920,7 @@ function ka_default() {
17918
17920
  };
17919
17921
  }
17920
17922
 
17921
- // ../node_modules/zod/v4/locales/km.js
17923
+ // ../../../node_modules/zod/v4/locales/km.js
17922
17924
  var error26 = () => {
17923
17925
  const Sizable = {
17924
17926
  string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
@@ -18029,12 +18031,12 @@ function km_default() {
18029
18031
  };
18030
18032
  }
18031
18033
 
18032
- // ../node_modules/zod/v4/locales/kh.js
18034
+ // ../../../node_modules/zod/v4/locales/kh.js
18033
18035
  function kh_default() {
18034
18036
  return km_default();
18035
18037
  }
18036
18038
 
18037
- // ../node_modules/zod/v4/locales/ko.js
18039
+ // ../../../node_modules/zod/v4/locales/ko.js
18038
18040
  var error27 = () => {
18039
18041
  const Sizable = {
18040
18042
  string: { unit: "\uBB38\uC790", verb: "to have" },
@@ -18146,7 +18148,7 @@ function ko_default() {
18146
18148
  };
18147
18149
  }
18148
18150
 
18149
- // ../node_modules/zod/v4/locales/lt.js
18151
+ // ../../../node_modules/zod/v4/locales/lt.js
18150
18152
  var capitalizeFirstCharacter = (text) => {
18151
18153
  return text.charAt(0).toUpperCase() + text.slice(1);
18152
18154
  };
@@ -18350,7 +18352,7 @@ function lt_default() {
18350
18352
  };
18351
18353
  }
18352
18354
 
18353
- // ../node_modules/zod/v4/locales/mk.js
18355
+ // ../../../node_modules/zod/v4/locales/mk.js
18354
18356
  var error29 = () => {
18355
18357
  const Sizable = {
18356
18358
  string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
@@ -18460,7 +18462,7 @@ function mk_default() {
18460
18462
  };
18461
18463
  }
18462
18464
 
18463
- // ../node_modules/zod/v4/locales/ms.js
18465
+ // ../../../node_modules/zod/v4/locales/ms.js
18464
18466
  var error30 = () => {
18465
18467
  const Sizable = {
18466
18468
  string: { unit: "aksara", verb: "mempunyai" },
@@ -18568,7 +18570,7 @@ function ms_default() {
18568
18570
  };
18569
18571
  }
18570
18572
 
18571
- // ../node_modules/zod/v4/locales/nl.js
18573
+ // ../../../node_modules/zod/v4/locales/nl.js
18572
18574
  var error31 = () => {
18573
18575
  const Sizable = {
18574
18576
  string: { unit: "tekens", verb: "heeft" },
@@ -18679,7 +18681,7 @@ function nl_default() {
18679
18681
  };
18680
18682
  }
18681
18683
 
18682
- // ../node_modules/zod/v4/locales/no.js
18684
+ // ../../../node_modules/zod/v4/locales/no.js
18683
18685
  var error32 = () => {
18684
18686
  const Sizable = {
18685
18687
  string: { unit: "tegn", verb: "\xE5 ha" },
@@ -18788,7 +18790,7 @@ function no_default() {
18788
18790
  };
18789
18791
  }
18790
18792
 
18791
- // ../node_modules/zod/v4/locales/ota.js
18793
+ // ../../../node_modules/zod/v4/locales/ota.js
18792
18794
  var error33 = () => {
18793
18795
  const Sizable = {
18794
18796
  string: { unit: "harf", verb: "olmal\u0131d\u0131r" },
@@ -18898,7 +18900,7 @@ function ota_default() {
18898
18900
  };
18899
18901
  }
18900
18902
 
18901
- // ../node_modules/zod/v4/locales/ps.js
18903
+ // ../../../node_modules/zod/v4/locales/ps.js
18902
18904
  var error34 = () => {
18903
18905
  const Sizable = {
18904
18906
  string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" },
@@ -19013,7 +19015,7 @@ function ps_default() {
19013
19015
  };
19014
19016
  }
19015
19017
 
19016
- // ../node_modules/zod/v4/locales/pl.js
19018
+ // ../../../node_modules/zod/v4/locales/pl.js
19017
19019
  var error35 = () => {
19018
19020
  const Sizable = {
19019
19021
  string: { unit: "znak\xF3w", verb: "mie\u0107" },
@@ -19123,7 +19125,7 @@ function pl_default() {
19123
19125
  };
19124
19126
  }
19125
19127
 
19126
- // ../node_modules/zod/v4/locales/pt.js
19128
+ // ../../../node_modules/zod/v4/locales/pt.js
19127
19129
  var error36 = () => {
19128
19130
  const Sizable = {
19129
19131
  string: { unit: "caracteres", verb: "ter" },
@@ -19232,7 +19234,7 @@ function pt_default() {
19232
19234
  };
19233
19235
  }
19234
19236
 
19235
- // ../node_modules/zod/v4/locales/ro.js
19237
+ // ../../../node_modules/zod/v4/locales/ro.js
19236
19238
  var error37 = () => {
19237
19239
  const Sizable = {
19238
19240
  string: { unit: "caractere", verb: "s\u0103 aib\u0103" },
@@ -19352,7 +19354,7 @@ function ro_default() {
19352
19354
  };
19353
19355
  }
19354
19356
 
19355
- // ../node_modules/zod/v4/locales/ru.js
19357
+ // ../../../node_modules/zod/v4/locales/ru.js
19356
19358
  function getRussianPlural(count, one, few, many) {
19357
19359
  const absCount = Math.abs(count);
19358
19360
  const lastDigit = absCount % 10;
@@ -19509,7 +19511,7 @@ function ru_default() {
19509
19511
  };
19510
19512
  }
19511
19513
 
19512
- // ../node_modules/zod/v4/locales/sl.js
19514
+ // ../../../node_modules/zod/v4/locales/sl.js
19513
19515
  var error39 = () => {
19514
19516
  const Sizable = {
19515
19517
  string: { unit: "znakov", verb: "imeti" },
@@ -19619,7 +19621,7 @@ function sl_default() {
19619
19621
  };
19620
19622
  }
19621
19623
 
19622
- // ../node_modules/zod/v4/locales/sv.js
19624
+ // ../../../node_modules/zod/v4/locales/sv.js
19623
19625
  var error40 = () => {
19624
19626
  const Sizable = {
19625
19627
  string: { unit: "tecken", verb: "att ha" },
@@ -19730,7 +19732,7 @@ function sv_default() {
19730
19732
  };
19731
19733
  }
19732
19734
 
19733
- // ../node_modules/zod/v4/locales/ta.js
19735
+ // ../../../node_modules/zod/v4/locales/ta.js
19734
19736
  var error41 = () => {
19735
19737
  const Sizable = {
19736
19738
  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 +19843,7 @@ function ta_default() {
19841
19843
  };
19842
19844
  }
19843
19845
 
19844
- // ../node_modules/zod/v4/locales/th.js
19846
+ // ../../../node_modules/zod/v4/locales/th.js
19845
19847
  var error42 = () => {
19846
19848
  const Sizable = {
19847
19849
  string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
@@ -19952,7 +19954,7 @@ function th_default() {
19952
19954
  };
19953
19955
  }
19954
19956
 
19955
- // ../node_modules/zod/v4/locales/tr.js
19957
+ // ../../../node_modules/zod/v4/locales/tr.js
19956
19958
  var error43 = () => {
19957
19959
  const Sizable = {
19958
19960
  string: { unit: "karakter", verb: "olmal\u0131" },
@@ -20058,7 +20060,7 @@ function tr_default() {
20058
20060
  };
20059
20061
  }
20060
20062
 
20061
- // ../node_modules/zod/v4/locales/uk.js
20063
+ // ../../../node_modules/zod/v4/locales/uk.js
20062
20064
  var error44 = () => {
20063
20065
  const Sizable = {
20064
20066
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
@@ -20167,12 +20169,12 @@ function uk_default() {
20167
20169
  };
20168
20170
  }
20169
20171
 
20170
- // ../node_modules/zod/v4/locales/ua.js
20172
+ // ../../../node_modules/zod/v4/locales/ua.js
20171
20173
  function ua_default() {
20172
20174
  return uk_default();
20173
20175
  }
20174
20176
 
20175
- // ../node_modules/zod/v4/locales/ur.js
20177
+ // ../../../node_modules/zod/v4/locales/ur.js
20176
20178
  var error45 = () => {
20177
20179
  const Sizable = {
20178
20180
  string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
@@ -20283,7 +20285,7 @@ function ur_default() {
20283
20285
  };
20284
20286
  }
20285
20287
 
20286
- // ../node_modules/zod/v4/locales/uz.js
20288
+ // ../../../node_modules/zod/v4/locales/uz.js
20287
20289
  var error46 = () => {
20288
20290
  const Sizable = {
20289
20291
  string: { unit: "belgi", verb: "bo\u2018lishi kerak" },
@@ -20394,7 +20396,7 @@ function uz_default() {
20394
20396
  };
20395
20397
  }
20396
20398
 
20397
- // ../node_modules/zod/v4/locales/vi.js
20399
+ // ../../../node_modules/zod/v4/locales/vi.js
20398
20400
  var error47 = () => {
20399
20401
  const Sizable = {
20400
20402
  string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" },
@@ -20503,7 +20505,7 @@ function vi_default() {
20503
20505
  };
20504
20506
  }
20505
20507
 
20506
- // ../node_modules/zod/v4/locales/zh-CN.js
20508
+ // ../../../node_modules/zod/v4/locales/zh-CN.js
20507
20509
  var error48 = () => {
20508
20510
  const Sizable = {
20509
20511
  string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" },
@@ -20613,7 +20615,7 @@ function zh_CN_default() {
20613
20615
  };
20614
20616
  }
20615
20617
 
20616
- // ../node_modules/zod/v4/locales/zh-TW.js
20618
+ // ../../../node_modules/zod/v4/locales/zh-TW.js
20617
20619
  var error49 = () => {
20618
20620
  const Sizable = {
20619
20621
  string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" },
@@ -20721,7 +20723,7 @@ function zh_TW_default() {
20721
20723
  };
20722
20724
  }
20723
20725
 
20724
- // ../node_modules/zod/v4/locales/yo.js
20726
+ // ../../../node_modules/zod/v4/locales/yo.js
20725
20727
  var error50 = () => {
20726
20728
  const Sizable = {
20727
20729
  string: { unit: "\xE0mi", verb: "n\xED" },
@@ -20829,7 +20831,7 @@ function yo_default() {
20829
20831
  };
20830
20832
  }
20831
20833
 
20832
- // ../node_modules/zod/v4/core/registries.js
20834
+ // ../../../node_modules/zod/v4/core/registries.js
20833
20835
  var _a2;
20834
20836
  var $output = Symbol("ZodOutput");
20835
20837
  var $input = Symbol("ZodInput");
@@ -20879,7 +20881,7 @@ function registry() {
20879
20881
  (_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry());
20880
20882
  var globalRegistry = globalThis.__zod_globalRegistry;
20881
20883
 
20882
- // ../node_modules/zod/v4/core/api.js
20884
+ // ../../../node_modules/zod/v4/core/api.js
20883
20885
  // @__NO_SIDE_EFFECTS__
20884
20886
  function _string(Class2, params) {
20885
20887
  return new Class2({
@@ -21918,7 +21920,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
21918
21920
  return inst;
21919
21921
  }
21920
21922
 
21921
- // ../node_modules/zod/v4/core/to-json-schema.js
21923
+ // ../../../node_modules/zod/v4/core/to-json-schema.js
21922
21924
  function initializeContext(params) {
21923
21925
  let target = params?.target ?? "draft-2020-12";
21924
21926
  if (target === "draft-4")
@@ -22277,7 +22279,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
22277
22279
  return finalize(ctx, schema);
22278
22280
  };
22279
22281
 
22280
- // ../node_modules/zod/v4/core/json-schema-processors.js
22282
+ // ../../../node_modules/zod/v4/core/json-schema-processors.js
22281
22283
  var formatMap = {
22282
22284
  guid: "uuid",
22283
22285
  url: "uri",
@@ -22821,7 +22823,7 @@ function toJSONSchema(input, params) {
22821
22823
  return finalize(ctx, input);
22822
22824
  }
22823
22825
 
22824
- // ../node_modules/zod/v4/core/json-schema-generator.js
22826
+ // ../../../node_modules/zod/v4/core/json-schema-generator.js
22825
22827
  var JSONSchemaGenerator = class {
22826
22828
  /** @deprecated Access via ctx instead */
22827
22829
  get metadataRegistry() {
@@ -22896,10 +22898,10 @@ var JSONSchemaGenerator = class {
22896
22898
  }
22897
22899
  };
22898
22900
 
22899
- // ../node_modules/zod/v4/core/json-schema.js
22901
+ // ../../../node_modules/zod/v4/core/json-schema.js
22900
22902
  var json_schema_exports = {};
22901
22903
 
22902
- // ../node_modules/zod/v4/mini/schemas.js
22904
+ // ../../../node_modules/zod/v4/mini/schemas.js
22903
22905
  var ZodMiniType = /* @__PURE__ */ $constructor("ZodMiniType", (inst, def) => {
22904
22906
  if (!inst._zod)
22905
22907
  throw new Error("Uninitialized schema in ZodMiniType.");
@@ -22945,7 +22947,7 @@ function object(shape, params) {
22945
22947
  return new ZodMiniObject(def);
22946
22948
  }
22947
22949
 
22948
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22950
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22949
22951
  function isZ4Schema(s) {
22950
22952
  const schema = s;
22951
22953
  return !!schema._zod;
@@ -23089,7 +23091,7 @@ function getLiteralValue(schema) {
23089
23091
  return void 0;
23090
23092
  }
23091
23093
 
23092
- // ../node_modules/zod/v4/classic/external.js
23094
+ // ../../../node_modules/zod/v4/classic/external.js
23093
23095
  var external_exports = {};
23094
23096
  __export(external_exports, {
23095
23097
  $brand: () => $brand,
@@ -23332,7 +23334,7 @@ __export(external_exports, {
23332
23334
  xor: () => xor
23333
23335
  });
23334
23336
 
23335
- // ../node_modules/zod/v4/classic/schemas.js
23337
+ // ../../../node_modules/zod/v4/classic/schemas.js
23336
23338
  var schemas_exports2 = {};
23337
23339
  __export(schemas_exports2, {
23338
23340
  ZodAny: () => ZodAny2,
@@ -23503,7 +23505,7 @@ __export(schemas_exports2, {
23503
23505
  xor: () => xor
23504
23506
  });
23505
23507
 
23506
- // ../node_modules/zod/v4/classic/checks.js
23508
+ // ../../../node_modules/zod/v4/classic/checks.js
23507
23509
  var checks_exports2 = {};
23508
23510
  __export(checks_exports2, {
23509
23511
  endsWith: () => _endsWith,
@@ -23537,7 +23539,7 @@ __export(checks_exports2, {
23537
23539
  uppercase: () => _uppercase
23538
23540
  });
23539
23541
 
23540
- // ../node_modules/zod/v4/classic/iso.js
23542
+ // ../../../node_modules/zod/v4/classic/iso.js
23541
23543
  var iso_exports2 = {};
23542
23544
  __export(iso_exports2, {
23543
23545
  ZodISODate: () => ZodISODate,
@@ -23578,7 +23580,7 @@ function duration2(params) {
23578
23580
  return _isoDuration(ZodISODuration, params);
23579
23581
  }
23580
23582
 
23581
- // ../node_modules/zod/v4/classic/errors.js
23583
+ // ../../../node_modules/zod/v4/classic/errors.js
23582
23584
  var initializer2 = (inst, issues) => {
23583
23585
  $ZodError.init(inst, issues);
23584
23586
  inst.name = "ZodError";
@@ -23618,7 +23620,7 @@ var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, {
23618
23620
  Parent: Error
23619
23621
  });
23620
23622
 
23621
- // ../node_modules/zod/v4/classic/parse.js
23623
+ // ../../../node_modules/zod/v4/classic/parse.js
23622
23624
  var parse2 = /* @__PURE__ */ _parse(ZodRealError);
23623
23625
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
23624
23626
  var safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -23632,7 +23634,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
23632
23634
  var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
23633
23635
  var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
23634
23636
 
23635
- // ../node_modules/zod/v4/classic/schemas.js
23637
+ // ../../../node_modules/zod/v4/classic/schemas.js
23636
23638
  var _installedGroups = /* @__PURE__ */ new WeakMap();
23637
23639
  function _installLazyMethods(inst, group, methods) {
23638
23640
  const proto = Object.getPrototypeOf(inst);
@@ -24922,7 +24924,7 @@ function preprocess(fn, schema) {
24922
24924
  });
24923
24925
  }
24924
24926
 
24925
- // ../node_modules/zod/v4/classic/compat.js
24927
+ // ../../../node_modules/zod/v4/classic/compat.js
24926
24928
  var ZodIssueCode2 = {
24927
24929
  invalid_type: "invalid_type",
24928
24930
  too_big: "too_big",
@@ -24948,7 +24950,7 @@ var ZodFirstPartyTypeKind2;
24948
24950
  /* @__PURE__ */ (function(ZodFirstPartyTypeKind3) {
24949
24951
  })(ZodFirstPartyTypeKind2 || (ZodFirstPartyTypeKind2 = {}));
24950
24952
 
24951
- // ../node_modules/zod/v4/classic/from-json-schema.js
24953
+ // ../../../node_modules/zod/v4/classic/from-json-schema.js
24952
24954
  var z = {
24953
24955
  ...schemas_exports2,
24954
24956
  ...checks_exports2,
@@ -25428,7 +25430,7 @@ function fromJSONSchema(schema, params) {
25428
25430
  return convertSchema(normalized, ctx);
25429
25431
  }
25430
25432
 
25431
- // ../node_modules/zod/v4/classic/coerce.js
25433
+ // ../../../node_modules/zod/v4/classic/coerce.js
25432
25434
  var coerce_exports2 = {};
25433
25435
  __export(coerce_exports2, {
25434
25436
  bigint: () => bigint3,
@@ -25453,10 +25455,10 @@ function date4(params) {
25453
25455
  return _coercedDate(ZodDate2, params);
25454
25456
  }
25455
25457
 
25456
- // ../node_modules/zod/v4/classic/external.js
25458
+ // ../../../node_modules/zod/v4/classic/external.js
25457
25459
  config(en_default2());
25458
25460
 
25459
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
25461
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
25460
25462
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
25461
25463
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
25462
25464
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -26987,12 +26989,12 @@ var UrlElicitationRequiredError = class extends McpError {
26987
26989
  }
26988
26990
  };
26989
26991
 
26990
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26992
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26991
26993
  function isTerminal(status) {
26992
26994
  return status === "completed" || status === "failed" || status === "cancelled";
26993
26995
  }
26994
26996
 
26995
- // ../node_modules/zod-to-json-schema/dist/esm/Options.js
26997
+ // ../../../node_modules/zod-to-json-schema/dist/esm/Options.js
26996
26998
  var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
26997
26999
  var defaultOptions = {
26998
27000
  name: void 0,
@@ -27026,7 +27028,7 @@ var getDefaultOptions = (options) => typeof options === "string" ? {
27026
27028
  ...options
27027
27029
  };
27028
27030
 
27029
- // ../node_modules/zod-to-json-schema/dist/esm/Refs.js
27031
+ // ../../../node_modules/zod-to-json-schema/dist/esm/Refs.js
27030
27032
  var getRefs = (options) => {
27031
27033
  const _options = getDefaultOptions(options);
27032
27034
  const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
@@ -27047,7 +27049,7 @@ var getRefs = (options) => {
27047
27049
  };
27048
27050
  };
27049
27051
 
27050
- // ../node_modules/zod-to-json-schema/dist/esm/errorMessages.js
27052
+ // ../../../node_modules/zod-to-json-schema/dist/esm/errorMessages.js
27051
27053
  function addErrorMessage(res, key, errorMessage, refs) {
27052
27054
  if (!refs?.errorMessages)
27053
27055
  return;
@@ -27063,7 +27065,7 @@ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
27063
27065
  addErrorMessage(res, key, errorMessage, refs);
27064
27066
  }
27065
27067
 
27066
- // ../node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
27068
+ // ../../../node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
27067
27069
  var getRelativePath = (pathA, pathB) => {
27068
27070
  let i = 0;
27069
27071
  for (; i < pathA.length && i < pathB.length; i++) {
@@ -27073,7 +27075,7 @@ var getRelativePath = (pathA, pathB) => {
27073
27075
  return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
27074
27076
  };
27075
27077
 
27076
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/any.js
27078
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/any.js
27077
27079
  function parseAnyDef(refs) {
27078
27080
  if (refs.target !== "openAi") {
27079
27081
  return {};
@@ -27089,7 +27091,7 @@ function parseAnyDef(refs) {
27089
27091
  };
27090
27092
  }
27091
27093
 
27092
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/array.js
27094
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/array.js
27093
27095
  function parseArrayDef(def, refs) {
27094
27096
  const res = {
27095
27097
  type: "array"
@@ -27113,7 +27115,7 @@ function parseArrayDef(def, refs) {
27113
27115
  return res;
27114
27116
  }
27115
27117
 
27116
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
27118
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
27117
27119
  function parseBigintDef(def, refs) {
27118
27120
  const res = {
27119
27121
  type: "integer",
@@ -27159,24 +27161,24 @@ function parseBigintDef(def, refs) {
27159
27161
  return res;
27160
27162
  }
27161
27163
 
27162
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
27164
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
27163
27165
  function parseBooleanDef() {
27164
27166
  return {
27165
27167
  type: "boolean"
27166
27168
  };
27167
27169
  }
27168
27170
 
27169
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
27171
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
27170
27172
  function parseBrandedDef(_def, refs) {
27171
27173
  return parseDef(_def.type._def, refs);
27172
27174
  }
27173
27175
 
27174
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
27176
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
27175
27177
  var parseCatchDef = (def, refs) => {
27176
27178
  return parseDef(def.innerType._def, refs);
27177
27179
  };
27178
27180
 
27179
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/date.js
27181
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/date.js
27180
27182
  function parseDateDef(def, refs, overrideDateStrategy) {
27181
27183
  const strategy = overrideDateStrategy ?? refs.dateStrategy;
27182
27184
  if (Array.isArray(strategy)) {
@@ -27235,7 +27237,7 @@ var integerDateParser = (def, refs) => {
27235
27237
  return res;
27236
27238
  };
27237
27239
 
27238
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/default.js
27240
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/default.js
27239
27241
  function parseDefaultDef(_def, refs) {
27240
27242
  return {
27241
27243
  ...parseDef(_def.innerType._def, refs),
@@ -27243,12 +27245,12 @@ function parseDefaultDef(_def, refs) {
27243
27245
  };
27244
27246
  }
27245
27247
 
27246
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
27248
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
27247
27249
  function parseEffectsDef(_def, refs) {
27248
27250
  return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
27249
27251
  }
27250
27252
 
27251
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
27253
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
27252
27254
  function parseEnumDef(def) {
27253
27255
  return {
27254
27256
  type: "string",
@@ -27256,7 +27258,7 @@ function parseEnumDef(def) {
27256
27258
  };
27257
27259
  }
27258
27260
 
27259
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
27261
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
27260
27262
  var isJsonSchema7AllOfType = (type) => {
27261
27263
  if ("type" in type && type.type === "string")
27262
27264
  return false;
@@ -27298,7 +27300,7 @@ function parseIntersectionDef(def, refs) {
27298
27300
  } : void 0;
27299
27301
  }
27300
27302
 
27301
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
27303
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
27302
27304
  function parseLiteralDef(def, refs) {
27303
27305
  const parsedType2 = typeof def.value;
27304
27306
  if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") {
@@ -27318,7 +27320,7 @@ function parseLiteralDef(def, refs) {
27318
27320
  };
27319
27321
  }
27320
27322
 
27321
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/string.js
27323
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/string.js
27322
27324
  var emojiRegex2 = void 0;
27323
27325
  var zodPatterns = {
27324
27326
  /**
@@ -27643,7 +27645,7 @@ function stringifyRegExpWithFlags(regex, refs) {
27643
27645
  return pattern;
27644
27646
  }
27645
27647
 
27646
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/record.js
27648
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/record.js
27647
27649
  function parseRecordDef(def, refs) {
27648
27650
  if (refs.target === "openAi") {
27649
27651
  console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
@@ -27695,7 +27697,7 @@ function parseRecordDef(def, refs) {
27695
27697
  return schema;
27696
27698
  }
27697
27699
 
27698
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/map.js
27700
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/map.js
27699
27701
  function parseMapDef(def, refs) {
27700
27702
  if (refs.mapStrategy === "record") {
27701
27703
  return parseRecordDef(def, refs);
@@ -27720,7 +27722,7 @@ function parseMapDef(def, refs) {
27720
27722
  };
27721
27723
  }
27722
27724
 
27723
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
27725
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
27724
27726
  function parseNativeEnumDef(def) {
27725
27727
  const object3 = def.values;
27726
27728
  const actualKeys = Object.keys(def.values).filter((key) => {
@@ -27734,7 +27736,7 @@ function parseNativeEnumDef(def) {
27734
27736
  };
27735
27737
  }
27736
27738
 
27737
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/never.js
27739
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/never.js
27738
27740
  function parseNeverDef(refs) {
27739
27741
  return refs.target === "openAi" ? void 0 : {
27740
27742
  not: parseAnyDef({
@@ -27744,7 +27746,7 @@ function parseNeverDef(refs) {
27744
27746
  };
27745
27747
  }
27746
27748
 
27747
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/null.js
27749
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/null.js
27748
27750
  function parseNullDef(refs) {
27749
27751
  return refs.target === "openApi3" ? {
27750
27752
  enum: ["null"],
@@ -27754,7 +27756,7 @@ function parseNullDef(refs) {
27754
27756
  };
27755
27757
  }
27756
27758
 
27757
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/union.js
27759
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/union.js
27758
27760
  var primitiveMappings = {
27759
27761
  ZodString: "string",
27760
27762
  ZodNumber: "number",
@@ -27822,7 +27824,7 @@ var asAnyOf = (def, refs) => {
27822
27824
  return anyOf.length ? { anyOf } : void 0;
27823
27825
  };
27824
27826
 
27825
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
27827
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
27826
27828
  function parseNullableDef(def, refs) {
27827
27829
  if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
27828
27830
  if (refs.target === "openApi3") {
@@ -27854,7 +27856,7 @@ function parseNullableDef(def, refs) {
27854
27856
  return base && { anyOf: [base, { type: "null" }] };
27855
27857
  }
27856
27858
 
27857
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/number.js
27859
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/number.js
27858
27860
  function parseNumberDef(def, refs) {
27859
27861
  const res = {
27860
27862
  type: "number"
@@ -27903,7 +27905,7 @@ function parseNumberDef(def, refs) {
27903
27905
  return res;
27904
27906
  }
27905
27907
 
27906
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/object.js
27908
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/object.js
27907
27909
  function parseObjectDef(def, refs) {
27908
27910
  const forceOptionalIntoNullable = refs.target === "openAi";
27909
27911
  const result = {
@@ -27973,7 +27975,7 @@ function safeIsOptional(schema) {
27973
27975
  }
27974
27976
  }
27975
27977
 
27976
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
27978
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
27977
27979
  var parseOptionalDef = (def, refs) => {
27978
27980
  if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
27979
27981
  return parseDef(def.innerType._def, refs);
@@ -27992,7 +27994,7 @@ var parseOptionalDef = (def, refs) => {
27992
27994
  } : parseAnyDef(refs);
27993
27995
  };
27994
27996
 
27995
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
27997
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
27996
27998
  var parsePipelineDef = (def, refs) => {
27997
27999
  if (refs.pipeStrategy === "input") {
27998
28000
  return parseDef(def.in._def, refs);
@@ -28012,12 +28014,12 @@ var parsePipelineDef = (def, refs) => {
28012
28014
  };
28013
28015
  };
28014
28016
 
28015
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
28017
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
28016
28018
  function parsePromiseDef(def, refs) {
28017
28019
  return parseDef(def.type._def, refs);
28018
28020
  }
28019
28021
 
28020
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/set.js
28022
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/set.js
28021
28023
  function parseSetDef(def, refs) {
28022
28024
  const items = parseDef(def.valueType._def, {
28023
28025
  ...refs,
@@ -28037,7 +28039,7 @@ function parseSetDef(def, refs) {
28037
28039
  return schema;
28038
28040
  }
28039
28041
 
28040
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
28042
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
28041
28043
  function parseTupleDef(def, refs) {
28042
28044
  if (def.rest) {
28043
28045
  return {
@@ -28065,24 +28067,24 @@ function parseTupleDef(def, refs) {
28065
28067
  }
28066
28068
  }
28067
28069
 
28068
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
28070
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
28069
28071
  function parseUndefinedDef(refs) {
28070
28072
  return {
28071
28073
  not: parseAnyDef(refs)
28072
28074
  };
28073
28075
  }
28074
28076
 
28075
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
28077
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
28076
28078
  function parseUnknownDef(refs) {
28077
28079
  return parseAnyDef(refs);
28078
28080
  }
28079
28081
 
28080
- // ../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
28082
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
28081
28083
  var parseReadonlyDef = (def, refs) => {
28082
28084
  return parseDef(def.innerType._def, refs);
28083
28085
  };
28084
28086
 
28085
- // ../node_modules/zod-to-json-schema/dist/esm/selectParser.js
28087
+ // ../../../node_modules/zod-to-json-schema/dist/esm/selectParser.js
28086
28088
  var selectParser = (def, typeName, refs) => {
28087
28089
  switch (typeName) {
28088
28090
  case ZodFirstPartyTypeKind.ZodString:
@@ -28158,7 +28160,7 @@ var selectParser = (def, typeName, refs) => {
28158
28160
  }
28159
28161
  };
28160
28162
 
28161
- // ../node_modules/zod-to-json-schema/dist/esm/parseDef.js
28163
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parseDef.js
28162
28164
  function parseDef(def, refs, forceResolution = false) {
28163
28165
  const seenItem = refs.seen.get(def);
28164
28166
  if (refs.override) {
@@ -28214,7 +28216,7 @@ var addMeta = (def, refs, jsonSchema) => {
28214
28216
  return jsonSchema;
28215
28217
  };
28216
28218
 
28217
- // ../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
28219
+ // ../../../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
28218
28220
  var zodToJsonSchema = (schema, options) => {
28219
28221
  const refs = getRefs(options);
28220
28222
  let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
@@ -28276,7 +28278,7 @@ var zodToJsonSchema = (schema, options) => {
28276
28278
  return combined;
28277
28279
  };
28278
28280
 
28279
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
28281
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
28280
28282
  function mapMiniTarget(t) {
28281
28283
  if (!t)
28282
28284
  return "draft-7";
@@ -28318,7 +28320,7 @@ function parseWithCompat(schema, data) {
28318
28320
  return result.data;
28319
28321
  }
28320
28322
 
28321
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
28323
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
28322
28324
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
28323
28325
  var Protocol = class {
28324
28326
  constructor(_options) {
@@ -29272,7 +29274,7 @@ function mergeCapabilities(base, additional) {
29272
29274
  return result;
29273
29275
  }
29274
29276
 
29275
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
29277
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
29276
29278
  var import_ajv = __toESM(require_ajv(), 1);
29277
29279
  var import_ajv_formats = __toESM(require_dist(), 1);
29278
29280
  function createDefaultAjvInstance() {
@@ -29340,7 +29342,7 @@ var AjvJsonSchemaValidator = class {
29340
29342
  }
29341
29343
  };
29342
29344
 
29343
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
29345
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
29344
29346
  var ExperimentalServerTasks = class {
29345
29347
  constructor(_server) {
29346
29348
  this._server = _server;
@@ -29553,7 +29555,7 @@ var ExperimentalServerTasks = class {
29553
29555
  }
29554
29556
  };
29555
29557
 
29556
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
29558
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
29557
29559
  function assertToolsCallTaskCapability(requests, method, entityName) {
29558
29560
  if (!requests) {
29559
29561
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -29588,7 +29590,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
29588
29590
  }
29589
29591
  }
29590
29592
 
29591
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
29593
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
29592
29594
  var Server = class extends Protocol {
29593
29595
  /**
29594
29596
  * Initializes this server with the given name and version information.
@@ -29968,7 +29970,7 @@ var Server = class extends Protocol {
29968
29970
  }
29969
29971
  };
29970
29972
 
29971
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
29973
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
29972
29974
  var COMPLETABLE_SYMBOL = Symbol.for("mcp.completable");
29973
29975
  function isCompletable(schema) {
29974
29976
  return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
@@ -29982,7 +29984,7 @@ var McpZodTypeKind;
29982
29984
  McpZodTypeKind2["Completable"] = "McpCompletable";
29983
29985
  })(McpZodTypeKind || (McpZodTypeKind = {}));
29984
29986
 
29985
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
29987
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
29986
29988
  var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
29987
29989
  function validateToolName(name) {
29988
29990
  const warnings = [];
@@ -30040,7 +30042,7 @@ function validateAndWarnToolName(name) {
30040
30042
  return result.isValid;
30041
30043
  }
30042
30044
 
30043
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
30045
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
30044
30046
  var ExperimentalMcpServerTasks = class {
30045
30047
  constructor(_mcpServer) {
30046
30048
  this._mcpServer = _mcpServer;
@@ -30055,7 +30057,7 @@ var ExperimentalMcpServerTasks = class {
30055
30057
  }
30056
30058
  };
30057
30059
 
30058
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
30060
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
30059
30061
  var McpServer = class {
30060
30062
  constructor(serverInfo, options) {
30061
30063
  this._registeredResources = {};
@@ -30847,10 +30849,10 @@ var EMPTY_COMPLETION_RESULT = {
30847
30849
  }
30848
30850
  };
30849
30851
 
30850
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30852
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30851
30853
  import process3 from "node:process";
30852
30854
 
30853
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
30855
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
30854
30856
  var ReadBuffer = class {
30855
30857
  append(chunk) {
30856
30858
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
@@ -30878,7 +30880,7 @@ function serializeMessage(message) {
30878
30880
  return JSON.stringify(message) + "\n";
30879
30881
  }
30880
30882
 
30881
- // ../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30883
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
30882
30884
  var StdioServerTransport = class {
30883
30885
  constructor(_stdin = process3.stdin, _stdout = process3.stdout) {
30884
30886
  this._stdin = _stdin;
@@ -30945,37 +30947,23 @@ var fail = (text) => ({ text, isError: true });
30945
30947
  var nap = (ctx, ms) => ctx.sleep ? ctx.sleep(ms) : new Promise((resolve) => setTimeout(resolve, ms));
30946
30948
  var TERMINAL = /* @__PURE__ */ new Set(["completed", "failed", "canceled"]);
30947
30949
  var POLL_ERROR_LIMIT = 5;
30948
- var BUILD_WAIT_SECONDS = 180;
30949
30950
  var JOB_WAIT_SECONDS = 300;
30950
- var EXPORT_WAIT_SECONDS = 300;
30951
30951
  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 };
30952
+ var MAX_WAIT_SECONDS = 540;
30953
+ var maxWaitSeconds = () => {
30954
+ const override = Number(process.env.IMPRACTICAL_MAX_WAIT_SECONDS);
30955
+ return Number.isFinite(override) && override > 0 ? override : MAX_WAIT_SECONDS;
30956
+ };
30957
+ function waitBudgetMs(requested, fallbackSeconds) {
30958
+ const asked = Number(requested);
30959
+ const seconds = Number.isFinite(asked) && asked > 0 ? asked : fallbackSeconds;
30960
+ return Math.min(seconds, maxWaitSeconds()) * 1e3;
30978
30961
  }
30962
+ var waitWasClamped = (requested) => {
30963
+ const asked = Number(requested);
30964
+ return Number.isFinite(asked) && asked > maxWaitSeconds();
30965
+ };
30966
+ 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
30967
  function describeJob(jobId, row, consecutiveErrors, lastError) {
30980
30968
  if (consecutiveErrors) return `${jobId}: status check failed (${lastError}), retrying`;
30981
30969
  const stage = row?.stage ? ` \u2014 ${row.stage}` : "";
@@ -30988,7 +30976,7 @@ var studioLink = (ctx, projectId, slug) => {
30988
30976
  const base = (ctx.appUrl ?? "https://motion.impractical.ai").replace(/\/$/, "");
30989
30977
  return `${base}/projects/${projectId}/studio${slug ? `?scene=${slug}` : ""}`;
30990
30978
  };
30991
- async function saveDraft(ctx, draftId, apply, options) {
30979
+ async function saveDraft(ctx, draftId, apply) {
30992
30980
  let conflicts = 0;
30993
30981
  while (true) {
30994
30982
  const draft = await getDraft(ctx, draftId);
@@ -31009,14 +30997,11 @@ async function saveDraft(ctx, draftId, apply, options) {
31009
30997
  files: change.files,
31010
30998
  deletedPaths: change.deletedPaths
31011
30999
  });
31012
- return await reportBuild(
31013
- ctx,
31000
+ return reportBuildStart(
31014
31001
  draftId,
31015
31002
  saved,
31016
31003
  changedCount,
31017
- change.deletedPaths.length,
31018
- options.waitMs,
31019
- options.progress
31004
+ change.deletedPaths.length
31020
31005
  );
31021
31006
  } catch (error51) {
31022
31007
  const status = error51.status;
@@ -31034,39 +31019,30 @@ async function saveDraft(ctx, draftId, apply, options) {
31034
31019
  }
31035
31020
  }
31036
31021
  }
31037
- async function reportBuild(ctx, draftId, saved, changed, deleted, waitMs, progress) {
31022
+ function reportBuildStart(draftId, saved, changed, deleted) {
31038
31023
  const summary = `Saved ${changed} file(s)` + (deleted ? `, deleted ${deleted}` : "") + ` as revision ${saved.revision}.`;
31039
31024
  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
- );
31025
+ return json2({
31026
+ committed: true,
31027
+ draftId,
31028
+ revision: saved.revision,
31029
+ jobId: null,
31030
+ previewQueued: false,
31031
+ summary,
31032
+ note: "No preview build was queued \u2014 a draft needs both App.tsx and direction.ts before it can render."
31033
+ });
31065
31034
  }
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
- };
31035
+ return json2({
31036
+ committed: true,
31037
+ draftId,
31038
+ revision: saved.revision,
31039
+ jobId: saved.jobId,
31040
+ previewQueued: true,
31041
+ status: "queued",
31042
+ summary,
31043
+ resumeWith: resumeWith(saved.jobId),
31044
+ 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."
31045
+ });
31070
31046
  }
31071
31047
  var accountStatus = {
31072
31048
  name: "account_status",
@@ -31078,17 +31054,20 @@ var accountStatus = {
31078
31054
  var whoami = {
31079
31055
  ...accountStatus,
31080
31056
  name: "whoami",
31081
- title: "Show the connected workspace (legacy alias)"
31057
+ title: "Show the connected workspace (legacy alias)",
31058
+ 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
31059
  };
31083
31060
  var upgradeTool = {
31084
31061
  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: {},
31062
+ title: "Get the Pro billing link",
31063
+ description: "Return the authenticated Pro billing URL. Set open=true only after the user explicitly asks to open it in their browser.",
31064
+ inputSchema: {
31065
+ open: external_exports.boolean().optional().describe("Open billing in the user's browser. Defaults to false.")
31066
+ },
31088
31067
  local: true,
31089
- handler: async (_args, ctx) => {
31068
+ handler: async (args, ctx) => {
31090
31069
  const url2 = `${(ctx.appUrl ?? "https://motion.impractical.ai").replace(/\/$/, "")}/account/billing`;
31091
- const opened = ctx.openExternal?.(url2) ?? false;
31070
+ const opened = args.open === true ? ctx.openExternal?.(url2) ?? false : false;
31092
31071
  return { text: opened ? `Opened billing in the user's browser: ${url2}` : url2 };
31093
31072
  }
31094
31073
  };
@@ -31201,35 +31180,30 @@ var readDraftFile = {
31201
31180
  var writeDraftFiles = {
31202
31181
  name: "write_draft_files",
31203
31182
  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.",
31183
+ 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
31184
  inputSchema: {
31206
31185
  draftId: external_exports.string().describe("The draft id."),
31207
31186
  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}.`)
31187
+ deletedPaths: external_exports.array(external_exports.string()).optional().describe("Paths to remove from the draft.")
31210
31188
  },
31211
- handler: async (args, ctx, progress) => {
31189
+ handler: async (args, ctx) => {
31212
31190
  const files = args.files ?? {};
31213
31191
  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
- });
31192
+ return saveDraft(ctx, String(args.draftId), () => ({ files, deletedPaths }));
31218
31193
  }
31219
31194
  };
31220
31195
  var editDraftFile = {
31221
31196
  name: "edit_draft_file",
31222
31197
  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.",
31198
+ 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
31199
  inputSchema: {
31225
31200
  draftId: external_exports.string().describe("The draft id."),
31226
31201
  path: external_exports.string().describe("File path within the draft, e.g. 'direction.ts'."),
31227
31202
  oldString: external_exports.string().describe("Exact text to replace. Must appear in the file."),
31228
31203
  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}.`)
31204
+ replaceAll: external_exports.boolean().optional().describe("Replace every occurrence. Default false, which requires a unique match.")
31231
31205
  },
31232
- handler: async (args, ctx, progress) => {
31206
+ handler: async (args, ctx) => {
31233
31207
  const path = String(args.path);
31234
31208
  const oldString = String(args.oldString);
31235
31209
  const newString = String(args.newString);
@@ -31254,8 +31228,7 @@ var editDraftFile = {
31254
31228
  }
31255
31229
  const next = args.replaceAll ? content.split(oldString).join(newString) : content.replace(oldString, newString);
31256
31230
  return { files: { [path]: next }, deletedPaths: [] };
31257
- },
31258
- { waitMs: Number(args.waitSeconds ?? BUILD_WAIT_SECONDS) * 1e3, progress }
31231
+ }
31259
31232
  );
31260
31233
  return problem ? fail(problem) : output;
31261
31234
  }
@@ -31267,12 +31240,12 @@ var jobStatus = {
31267
31240
  inputSchema: {
31268
31241
  jobIds: external_exports.array(external_exports.string()).min(1).max(20).describe("Job ids to check."),
31269
31242
  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}.`)
31243
+ 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
31244
  },
31272
31245
  handler: async (args, ctx, progress) => {
31273
31246
  const jobIds = args.jobIds;
31274
31247
  if (!args.wait) return json2(await ctx.invoke("job-status", { jobIds }));
31275
- const budgetMs = Number(args.waitSeconds ?? JOB_WAIT_SECONDS) * 1e3;
31248
+ const budgetMs = waitBudgetMs(args.waitSeconds, JOB_WAIT_SECONDS);
31276
31249
  const started = Date.now();
31277
31250
  const deadline = started + budgetMs;
31278
31251
  let rows = [];
@@ -31298,41 +31271,32 @@ var jobStatus = {
31298
31271
  });
31299
31272
  await nap(ctx, 2e3);
31300
31273
  }
31301
- return json2({ timedOut: true, stillRunning: jobIds, jobs: rows });
31274
+ return json2({
31275
+ timedOut: true,
31276
+ stillRunning: jobIds,
31277
+ jobs: rows,
31278
+ resumeWith: `job_status({ jobIds: ${JSON.stringify(jobIds)}, wait: true })`,
31279
+ 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)
31280
+ });
31302
31281
  }
31303
31282
  };
31304
31283
  var exportVideo = {
31305
31284
  name: "export_video",
31306
31285
  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.",
31286
+ 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
31287
  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
- )
31288
+ draftId: external_exports.string().describe("The draft id.")
31313
31289
  },
31314
- handler: async (args, ctx, progress) => {
31290
+ handler: async (args, ctx) => {
31315
31291
  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 });
31292
+ return json2({
31293
+ started: true,
31294
+ draftId: String(args.draftId),
31295
+ jobId: started.jobId,
31296
+ status: "queued",
31297
+ resumeWith: resumeWith(started.jobId),
31298
+ note: "Export started. Do not start another export. Follow this job with resumeWith to obtain the signed download URL."
31299
+ });
31336
31300
  }
31337
31301
  };
31338
31302
  var brandList = {
@@ -31352,32 +31316,60 @@ var brandGet = {
31352
31316
  var brandExtract = {
31353
31317
  name: "brand_extract",
31354
31318
  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.",
31319
+ 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
31320
  inputSchema: {
31357
- url: external_exports.string().describe("The brand website URL."),
31321
+ url: external_exports.string().optional().describe("The brand website URL. Omit when continuing by jobId."),
31322
+ jobId: external_exports.string().optional().describe("Run id returned by a previous brand_extract call."),
31358
31323
  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}.`)
31324
+ wait: external_exports.boolean().optional().describe("With jobId, poll until this extraction is terminal."),
31325
+ waitSeconds: external_exports.number().optional().describe(
31326
+ `With jobId and wait, poll for up to ${BRAND_WAIT_SECONDS}s by default, capped at ${maxWaitSeconds()}s.`
31327
+ )
31360
31328
  },
31361
31329
  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;
31330
+ const url2 = typeof args.url === "string" ? args.url : "";
31331
+ const jobId = typeof args.jobId === "string" ? args.jobId : "";
31332
+ if (url2 && jobId) return fail("Pass either url to start or jobId to continue, not both.");
31333
+ if (!url2 && !jobId) return fail("Pass url to start an extraction, or jobId to continue one.");
31334
+ if (url2) {
31335
+ const started = await ctx.invoke("brand-extraction", {
31336
+ action: "start",
31337
+ url: url2,
31338
+ ...args.reextract ? { reextract: true } : {}
31339
+ });
31340
+ return json2({
31341
+ started: true,
31342
+ jobId: started.job,
31343
+ slug: started.slug,
31344
+ status: "queued",
31345
+ resumeWith: `brand_extract({ jobId: "${started.job}", wait: true })`,
31346
+ 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."
31347
+ });
31348
+ }
31349
+ const readStatus = () => ctx.invoke("brand-extraction", { action: "status", job: jobId });
31350
+ if (!args.wait) {
31351
+ const status = await readStatus();
31352
+ if (status.status === "error" || status.status === "failed" || status.error) {
31353
+ return fail(`Brand extraction failed${status.error ? `: ${status.error}` : ""}`);
31354
+ }
31355
+ return json2({ jobId, ...status });
31356
+ }
31357
+ const budgetMs = waitBudgetMs(args.waitSeconds, BRAND_WAIT_SECONDS);
31368
31358
  const startedAt = Date.now();
31369
31359
  const deadline = startedAt + budgetMs;
31370
31360
  let consecutiveErrors = 0;
31371
31361
  let lastError = "";
31372
31362
  let stage = "";
31363
+ let lastStatus = {};
31373
31364
  while (Date.now() < deadline) {
31374
31365
  if (progress?.signal?.aborted) break;
31375
31366
  try {
31376
- const status = await ctx.invoke("brand-extraction", { action: "status", job: started.job });
31367
+ const status = await readStatus();
31368
+ lastStatus = status;
31377
31369
  consecutiveErrors = 0;
31378
31370
  stage = status.stage ?? stage;
31379
31371
  if (status.status === "done") {
31380
- return json2({ slug: status.slug ?? started.slug, status: "done" });
31372
+ return json2({ jobId, ...status });
31381
31373
  }
31382
31374
  if (status.status === "error" || status.status === "failed" || status.error) {
31383
31375
  return fail(`Brand extraction failed${status.error ? `: ${status.error}` : ""}`);
@@ -31389,13 +31381,18 @@ var brandExtract = {
31389
31381
  progress?.report?.({
31390
31382
  progress: Math.min(Date.now() - startedAt, budgetMs),
31391
31383
  total: budgetMs,
31392
- message: `brand ${started.slug}: ${stage || "extracting"}`
31384
+ message: `brand run ${jobId}: ${stage || "extracting"}`
31393
31385
  });
31394
31386
  await nap(ctx, 2e3);
31395
31387
  }
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
- };
31388
+ return json2({
31389
+ timedOut: true,
31390
+ jobId,
31391
+ status: lastStatus,
31392
+ ...lastError ? { pollError: lastError } : {},
31393
+ resumeWith: `brand_extract({ jobId: "${jobId}", wait: true })`,
31394
+ 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)
31395
+ });
31399
31396
  }
31400
31397
  };
31401
31398
  var motionProfile = {
@@ -31649,6 +31646,7 @@ var getFramesTool = {
31649
31646
  };
31650
31647
 
31651
31648
  // src/mcp/connect.ts
31649
+ var CONNECT_WAIT_SECONDS = 300;
31652
31650
  async function connectWorkspace(input, deps) {
31653
31651
  const grant = await deps.request(deps.supabaseUrl, "cli-device-auth", {
31654
31652
  action: "start"
@@ -31693,7 +31691,7 @@ var connectTool = {
31693
31691
  title: "Connect this workspace",
31694
31692
  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
31693
  inputSchema: {
31696
- waitSeconds: external_exports.number().optional().describe("How long to wait for browser approval. Default 300.")
31694
+ waitSeconds: external_exports.number().optional().describe(`How long to wait for browser approval. Default ${CONNECT_WAIT_SECONDS}.`)
31697
31695
  },
31698
31696
  local: true,
31699
31697
  handler: async (args, ctx) => {
@@ -31701,7 +31699,10 @@ var connectTool = {
31701
31699
  const supabaseUrl = stored.supabaseUrl ?? PRODUCTION_SUPABASE_URL;
31702
31700
  const appUrl = stored.appUrl ?? PRODUCTION_APP_URL;
31703
31701
  const result = await connectWorkspace(
31704
- { waitMs: Number(args.waitSeconds ?? 300) * 1e3 },
31702
+ // Capped like every other wait: a browser approval that outlives the MCP
31703
+ // client's request deadline reports a failure the user then repeats,
31704
+ // burning a second device grant on an approval that already worked.
31705
+ { waitMs: waitBudgetMs(args.waitSeconds, CONNECT_WAIT_SECONDS) },
31705
31706
  {
31706
31707
  request: (url2, name, body) => invokeAt(url2, name, body),
31707
31708
  open: openBrowser,
@@ -31796,7 +31797,10 @@ var UNMETERED_MCP_TOOLS = /* @__PURE__ */ new Set([
31796
31797
  "account_status",
31797
31798
  "whoami",
31798
31799
  "upgrade",
31799
- "studio_link"
31800
+ "studio_link",
31801
+ // This tool has a packaged local fallback and is explicitly required before
31802
+ // authentication-dependent work. Admission must not block that fallback.
31803
+ "engine_types"
31800
31804
  ]);
31801
31805
  var encoder = new TextEncoder();
31802
31806
  var decoder = new TextDecoder();
@@ -31833,7 +31837,6 @@ var TOOLS = [
31833
31837
  engineTypesTool,
31834
31838
  motionContextTool
31835
31839
  ];
31836
- var VERSION = "0.1.0";
31837
31840
  function toContent(output) {
31838
31841
  const content = [{ type: "text", text: output.text }];
31839
31842
  for (const image of output.images ?? []) {
@@ -31875,7 +31878,10 @@ Quota warning: ${admission.warning}`;
31875
31878
  } catch (error51) {
31876
31879
  const status = error51.status;
31877
31880
  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." : "";
31881
+ const details = error51 instanceof ApiError ? error51.details : void 0;
31882
+ const resetTime = typeof details?.resetTime === "string" ? details.resetTime : void 0;
31883
+ const upgradeUrl = typeof details?.upgradeUrl === "string" ? details.upgradeUrl : void 0;
31884
+ 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
31885
  return toContent({ text: `${tool.name} failed: ${message}${hint}`, isError: true });
31880
31886
  }
31881
31887
  }
@@ -31900,8 +31906,12 @@ function registerEngineResource(server) {
31900
31906
  );
31901
31907
  }
31902
31908
  function createServer(ctx) {
31909
+ const validatedCtx = {
31910
+ ...ctx,
31911
+ invoke: async (name, body = {}) => validateApiResponse(name, body, await ctx.invoke(name, body))
31912
+ };
31903
31913
  const server = new McpServer(
31904
- { name: "impractical-motion", version: VERSION },
31914
+ { name: "impractical-motion", version: PACKAGE_VERSION },
31905
31915
  {
31906
31916
  // This string lands in the client's system prompt at connection time —
31907
31917
  // the ONLY channel guaranteed to be in context before the agent acts.
@@ -31909,23 +31919,10 @@ function createServer(ctx) {
31909
31919
  // agent that skips motion_context still cannot produce slop by default.
31910
31920
  // The full language (ease table, blur doctrine, camera grammar, beat
31911
31921
  // 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.`
31922
+ 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
31923
  }
31927
31924
  );
31928
- for (const tool of TOOLS) register(server, tool, ctx);
31925
+ for (const tool of TOOLS) register(server, tool, validatedCtx);
31929
31926
  registerEngineResource(server);
31930
31927
  return server;
31931
31928
  }