@jaggerxtrm/specialists 3.6.19 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ var __export = (target, all) => {
29
29
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
30
30
  var __require = import.meta.require;
31
31
 
32
- // node_modules/zod/v3/helpers/util.js
32
+ // ../../../node_modules/zod/v3/helpers/util.js
33
33
  var util, objectUtil, ZodParsedType, getParsedType = (data) => {
34
34
  const t = typeof data;
35
35
  switch (t) {
@@ -160,7 +160,7 @@ var init_util = __esm(() => {
160
160
  ]);
161
161
  });
162
162
 
163
- // node_modules/zod/v3/ZodError.js
163
+ // ../../../node_modules/zod/v3/ZodError.js
164
164
  var ZodIssueCode, quotelessJson = (obj) => {
165
165
  const json = JSON.stringify(obj, null, 2);
166
166
  return json.replace(/"([^"]+)":/g, "$1:");
@@ -281,7 +281,7 @@ var init_ZodError = __esm(() => {
281
281
  };
282
282
  });
283
283
 
284
- // node_modules/zod/v3/locales/en.js
284
+ // ../../../node_modules/zod/v3/locales/en.js
285
285
  var errorMap = (issue, _ctx) => {
286
286
  let message;
287
287
  switch (issue.code) {
@@ -388,7 +388,7 @@ var init_en = __esm(() => {
388
388
  en_default = errorMap;
389
389
  });
390
390
 
391
- // node_modules/zod/v3/errors.js
391
+ // ../../../node_modules/zod/v3/errors.js
392
392
  function setErrorMap(map) {
393
393
  overrideErrorMap = map;
394
394
  }
@@ -401,7 +401,7 @@ var init_errors = __esm(() => {
401
401
  overrideErrorMap = en_default;
402
402
  });
403
403
 
404
- // node_modules/zod/v3/helpers/parseUtil.js
404
+ // ../../../node_modules/zod/v3/helpers/parseUtil.js
405
405
  function addIssueToContext(ctx, issueData) {
406
406
  const overrideMap = getErrorMap();
407
407
  const issue = makeIssue({
@@ -506,10 +506,10 @@ var init_parseUtil = __esm(() => {
506
506
  });
507
507
  });
508
508
 
509
- // node_modules/zod/v3/helpers/typeAliases.js
509
+ // ../../../node_modules/zod/v3/helpers/typeAliases.js
510
510
  var init_typeAliases = () => {};
511
511
 
512
- // node_modules/zod/v3/helpers/errorUtil.js
512
+ // ../../../node_modules/zod/v3/helpers/errorUtil.js
513
513
  var errorUtil;
514
514
  var init_errorUtil = __esm(() => {
515
515
  (function(errorUtil2) {
@@ -518,7 +518,7 @@ var init_errorUtil = __esm(() => {
518
518
  })(errorUtil || (errorUtil = {}));
519
519
  });
520
520
 
521
- // node_modules/zod/v3/types.js
521
+ // ../../../node_modules/zod/v3/types.js
522
522
  class ParseInputLazyPath {
523
523
  constructor(parent, value, path, key) {
524
524
  this._cachedPath = [];
@@ -3869,7 +3869,7 @@ var init_types = __esm(() => {
3869
3869
  NEVER = INVALID;
3870
3870
  });
3871
3871
 
3872
- // node_modules/zod/v3/external.js
3872
+ // ../../../node_modules/zod/v3/external.js
3873
3873
  var exports_external = {};
3874
3874
  __export(exports_external, {
3875
3875
  void: () => voidType,
@@ -3989,7 +3989,7 @@ var init_external = __esm(() => {
3989
3989
  init_ZodError();
3990
3990
  });
3991
3991
 
3992
- // node_modules/ajv/dist/compile/codegen/code.js
3992
+ // ../../../node_modules/ajv/dist/compile/codegen/code.js
3993
3993
  var require_code = __commonJS((exports) => {
3994
3994
  Object.defineProperty(exports, "__esModule", { value: true });
3995
3995
  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 = undefined;
@@ -4143,7 +4143,7 @@ var require_code = __commonJS((exports) => {
4143
4143
  exports.regexpCode = regexpCode;
4144
4144
  });
4145
4145
 
4146
- // node_modules/ajv/dist/compile/codegen/scope.js
4146
+ // ../../../node_modules/ajv/dist/compile/codegen/scope.js
4147
4147
  var require_scope = __commonJS((exports) => {
4148
4148
  Object.defineProperty(exports, "__esModule", { value: true });
4149
4149
  exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = undefined;
@@ -4289,7 +4289,7 @@ var require_scope = __commonJS((exports) => {
4289
4289
  exports.ValueScope = ValueScope;
4290
4290
  });
4291
4291
 
4292
- // node_modules/ajv/dist/compile/codegen/index.js
4292
+ // ../../../node_modules/ajv/dist/compile/codegen/index.js
4293
4293
  var require_codegen = __commonJS((exports) => {
4294
4294
  Object.defineProperty(exports, "__esModule", { value: true });
4295
4295
  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._ = undefined;
@@ -4999,7 +4999,7 @@ var require_codegen = __commonJS((exports) => {
4999
4999
  }
5000
5000
  });
5001
5001
 
5002
- // node_modules/ajv/dist/compile/util.js
5002
+ // ../../../node_modules/ajv/dist/compile/util.js
5003
5003
  var require_util = __commonJS((exports) => {
5004
5004
  Object.defineProperty(exports, "__esModule", { value: true });
5005
5005
  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 = undefined;
@@ -5163,7 +5163,7 @@ var require_util = __commonJS((exports) => {
5163
5163
  exports.checkStrictMode = checkStrictMode;
5164
5164
  });
5165
5165
 
5166
- // node_modules/ajv/dist/compile/names.js
5166
+ // ../../../node_modules/ajv/dist/compile/names.js
5167
5167
  var require_names = __commonJS((exports) => {
5168
5168
  Object.defineProperty(exports, "__esModule", { value: true });
5169
5169
  var codegen_1 = require_codegen();
@@ -5188,7 +5188,7 @@ var require_names = __commonJS((exports) => {
5188
5188
  exports.default = names;
5189
5189
  });
5190
5190
 
5191
- // node_modules/ajv/dist/compile/errors.js
5191
+ // ../../../node_modules/ajv/dist/compile/errors.js
5192
5192
  var require_errors = __commonJS((exports) => {
5193
5193
  Object.defineProperty(exports, "__esModule", { value: true });
5194
5194
  exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = undefined;
@@ -5306,7 +5306,7 @@ var require_errors = __commonJS((exports) => {
5306
5306
  }
5307
5307
  });
5308
5308
 
5309
- // node_modules/ajv/dist/compile/validate/boolSchema.js
5309
+ // ../../../node_modules/ajv/dist/compile/validate/boolSchema.js
5310
5310
  var require_boolSchema = __commonJS((exports) => {
5311
5311
  Object.defineProperty(exports, "__esModule", { value: true });
5312
5312
  exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = undefined;
@@ -5354,7 +5354,7 @@ var require_boolSchema = __commonJS((exports) => {
5354
5354
  }
5355
5355
  });
5356
5356
 
5357
- // node_modules/ajv/dist/compile/rules.js
5357
+ // ../../../node_modules/ajv/dist/compile/rules.js
5358
5358
  var require_rules = __commonJS((exports) => {
5359
5359
  Object.defineProperty(exports, "__esModule", { value: true });
5360
5360
  exports.getRules = exports.isJSONType = undefined;
@@ -5382,7 +5382,7 @@ var require_rules = __commonJS((exports) => {
5382
5382
  exports.getRules = getRules;
5383
5383
  });
5384
5384
 
5385
- // node_modules/ajv/dist/compile/validate/applicability.js
5385
+ // ../../../node_modules/ajv/dist/compile/validate/applicability.js
5386
5386
  var require_applicability = __commonJS((exports) => {
5387
5387
  Object.defineProperty(exports, "__esModule", { value: true });
5388
5388
  exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = undefined;
@@ -5402,7 +5402,7 @@ var require_applicability = __commonJS((exports) => {
5402
5402
  exports.shouldUseRule = shouldUseRule;
5403
5403
  });
5404
5404
 
5405
- // node_modules/ajv/dist/compile/validate/dataType.js
5405
+ // ../../../node_modules/ajv/dist/compile/validate/dataType.js
5406
5406
  var require_dataType = __commonJS((exports) => {
5407
5407
  Object.defineProperty(exports, "__esModule", { value: true });
5408
5408
  exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = undefined;
@@ -5583,7 +5583,7 @@ var require_dataType = __commonJS((exports) => {
5583
5583
  }
5584
5584
  });
5585
5585
 
5586
- // node_modules/ajv/dist/compile/validate/defaults.js
5586
+ // ../../../node_modules/ajv/dist/compile/validate/defaults.js
5587
5587
  var require_defaults = __commonJS((exports) => {
5588
5588
  Object.defineProperty(exports, "__esModule", { value: true });
5589
5589
  exports.assignDefaults = undefined;
@@ -5617,7 +5617,7 @@ var require_defaults = __commonJS((exports) => {
5617
5617
  }
5618
5618
  });
5619
5619
 
5620
- // node_modules/ajv/dist/vocabularies/code.js
5620
+ // ../../../node_modules/ajv/dist/vocabularies/code.js
5621
5621
  var require_code2 = __commonJS((exports) => {
5622
5622
  Object.defineProperty(exports, "__esModule", { value: true });
5623
5623
  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 = undefined;
@@ -5746,7 +5746,7 @@ var require_code2 = __commonJS((exports) => {
5746
5746
  exports.validateUnion = validateUnion;
5747
5747
  });
5748
5748
 
5749
- // node_modules/ajv/dist/compile/validate/keyword.js
5749
+ // ../../../node_modules/ajv/dist/compile/validate/keyword.js
5750
5750
  var require_keyword = __commonJS((exports) => {
5751
5751
  Object.defineProperty(exports, "__esModule", { value: true });
5752
5752
  exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = undefined;
@@ -5861,7 +5861,7 @@ var require_keyword = __commonJS((exports) => {
5861
5861
  exports.validateKeywordUsage = validateKeywordUsage;
5862
5862
  });
5863
5863
 
5864
- // node_modules/ajv/dist/compile/validate/subschema.js
5864
+ // ../../../node_modules/ajv/dist/compile/validate/subschema.js
5865
5865
  var require_subschema = __commonJS((exports) => {
5866
5866
  Object.defineProperty(exports, "__esModule", { value: true });
5867
5867
  exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = undefined;
@@ -5941,7 +5941,7 @@ var require_subschema = __commonJS((exports) => {
5941
5941
  exports.extendSubschemaMode = extendSubschemaMode;
5942
5942
  });
5943
5943
 
5944
- // node_modules/fast-deep-equal/index.js
5944
+ // ../../../node_modules/fast-deep-equal/index.js
5945
5945
  var require_fast_deep_equal = __commonJS((exports, module) => {
5946
5946
  module.exports = function equal(a, b) {
5947
5947
  if (a === b)
@@ -5983,7 +5983,7 @@ var require_fast_deep_equal = __commonJS((exports, module) => {
5983
5983
  };
5984
5984
  });
5985
5985
 
5986
- // node_modules/json-schema-traverse/index.js
5986
+ // ../../../node_modules/json-schema-traverse/index.js
5987
5987
  var require_json_schema_traverse = __commonJS((exports, module) => {
5988
5988
  var traverse = module.exports = function(schema, opts, cb) {
5989
5989
  if (typeof opts == "function") {
@@ -6066,7 +6066,7 @@ var require_json_schema_traverse = __commonJS((exports, module) => {
6066
6066
  }
6067
6067
  });
6068
6068
 
6069
- // node_modules/ajv/dist/compile/resolve.js
6069
+ // ../../../node_modules/ajv/dist/compile/resolve.js
6070
6070
  var require_resolve = __commonJS((exports) => {
6071
6071
  Object.defineProperty(exports, "__esModule", { value: true });
6072
6072
  exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = undefined;
@@ -6219,7 +6219,7 @@ var require_resolve = __commonJS((exports) => {
6219
6219
  exports.getSchemaRefs = getSchemaRefs;
6220
6220
  });
6221
6221
 
6222
- // node_modules/ajv/dist/compile/validate/index.js
6222
+ // ../../../node_modules/ajv/dist/compile/validate/index.js
6223
6223
  var require_validate = __commonJS((exports) => {
6224
6224
  Object.defineProperty(exports, "__esModule", { value: true });
6225
6225
  exports.getData = exports.KeywordCxt = exports.validateFunctionCode = undefined;
@@ -6724,7 +6724,7 @@ var require_validate = __commonJS((exports) => {
6724
6724
  exports.getData = getData;
6725
6725
  });
6726
6726
 
6727
- // node_modules/ajv/dist/runtime/validation_error.js
6727
+ // ../../../node_modules/ajv/dist/runtime/validation_error.js
6728
6728
  var require_validation_error = __commonJS((exports) => {
6729
6729
  Object.defineProperty(exports, "__esModule", { value: true });
6730
6730
 
@@ -6738,7 +6738,7 @@ var require_validation_error = __commonJS((exports) => {
6738
6738
  exports.default = ValidationError;
6739
6739
  });
6740
6740
 
6741
- // node_modules/ajv/dist/compile/ref_error.js
6741
+ // ../../../node_modules/ajv/dist/compile/ref_error.js
6742
6742
  var require_ref_error = __commonJS((exports) => {
6743
6743
  Object.defineProperty(exports, "__esModule", { value: true });
6744
6744
  var resolve_1 = require_resolve();
@@ -6753,7 +6753,7 @@ var require_ref_error = __commonJS((exports) => {
6753
6753
  exports.default = MissingRefError;
6754
6754
  });
6755
6755
 
6756
- // node_modules/ajv/dist/compile/index.js
6756
+ // ../../../node_modules/ajv/dist/compile/index.js
6757
6757
  var require_compile = __commonJS((exports) => {
6758
6758
  Object.defineProperty(exports, "__esModule", { value: true });
6759
6759
  exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = undefined;
@@ -6974,7 +6974,7 @@ var require_compile = __commonJS((exports) => {
6974
6974
  }
6975
6975
  });
6976
6976
 
6977
- // node_modules/ajv/dist/refs/data.json
6977
+ // ../../../node_modules/ajv/dist/refs/data.json
6978
6978
  var require_data = __commonJS((exports, module) => {
6979
6979
  module.exports = {
6980
6980
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
@@ -6991,7 +6991,7 @@ var require_data = __commonJS((exports, module) => {
6991
6991
  };
6992
6992
  });
6993
6993
 
6994
- // node_modules/fast-uri/lib/utils.js
6994
+ // ../../../node_modules/fast-uri/lib/utils.js
6995
6995
  var require_utils = __commonJS((exports, module) => {
6996
6996
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
6997
6997
  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);
@@ -7246,7 +7246,7 @@ var require_utils = __commonJS((exports, module) => {
7246
7246
  };
7247
7247
  });
7248
7248
 
7249
- // node_modules/fast-uri/lib/schemes.js
7249
+ // ../../../node_modules/fast-uri/lib/schemes.js
7250
7250
  var require_schemes = __commonJS((exports, module) => {
7251
7251
  var { isUUID } = require_utils();
7252
7252
  var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
@@ -7420,7 +7420,7 @@ var require_schemes = __commonJS((exports, module) => {
7420
7420
  };
7421
7421
  });
7422
7422
 
7423
- // node_modules/fast-uri/index.js
7423
+ // ../../../node_modules/fast-uri/index.js
7424
7424
  var require_fast_uri = __commonJS((exports, module) => {
7425
7425
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require_utils();
7426
7426
  var { SCHEMES, getSchemeHandler } = require_schemes();
@@ -7671,7 +7671,7 @@ var require_fast_uri = __commonJS((exports, module) => {
7671
7671
  module.exports.fastUri = fastUri;
7672
7672
  });
7673
7673
 
7674
- // node_modules/ajv/dist/runtime/uri.js
7674
+ // ../../../node_modules/ajv/dist/runtime/uri.js
7675
7675
  var require_uri = __commonJS((exports) => {
7676
7676
  Object.defineProperty(exports, "__esModule", { value: true });
7677
7677
  var uri = require_fast_uri();
@@ -7679,7 +7679,7 @@ var require_uri = __commonJS((exports) => {
7679
7679
  exports.default = uri;
7680
7680
  });
7681
7681
 
7682
- // node_modules/ajv/dist/core.js
7682
+ // ../../../node_modules/ajv/dist/core.js
7683
7683
  var require_core = __commonJS((exports) => {
7684
7684
  Object.defineProperty(exports, "__esModule", { value: true });
7685
7685
  exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = undefined;
@@ -8272,7 +8272,7 @@ var require_core = __commonJS((exports) => {
8272
8272
  }
8273
8273
  });
8274
8274
 
8275
- // node_modules/ajv/dist/vocabularies/core/id.js
8275
+ // ../../../node_modules/ajv/dist/vocabularies/core/id.js
8276
8276
  var require_id = __commonJS((exports) => {
8277
8277
  Object.defineProperty(exports, "__esModule", { value: true });
8278
8278
  var def = {
@@ -8284,7 +8284,7 @@ var require_id = __commonJS((exports) => {
8284
8284
  exports.default = def;
8285
8285
  });
8286
8286
 
8287
- // node_modules/ajv/dist/vocabularies/core/ref.js
8287
+ // ../../../node_modules/ajv/dist/vocabularies/core/ref.js
8288
8288
  var require_ref = __commonJS((exports) => {
8289
8289
  Object.defineProperty(exports, "__esModule", { value: true });
8290
8290
  exports.callRef = exports.getValidate = undefined;
@@ -8403,7 +8403,7 @@ var require_ref = __commonJS((exports) => {
8403
8403
  exports.default = def;
8404
8404
  });
8405
8405
 
8406
- // node_modules/ajv/dist/vocabularies/core/index.js
8406
+ // ../../../node_modules/ajv/dist/vocabularies/core/index.js
8407
8407
  var require_core2 = __commonJS((exports) => {
8408
8408
  Object.defineProperty(exports, "__esModule", { value: true });
8409
8409
  var id_1 = require_id();
@@ -8421,7 +8421,7 @@ var require_core2 = __commonJS((exports) => {
8421
8421
  exports.default = core2;
8422
8422
  });
8423
8423
 
8424
- // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
8424
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js
8425
8425
  var require_limitNumber = __commonJS((exports) => {
8426
8426
  Object.defineProperty(exports, "__esModule", { value: true });
8427
8427
  var codegen_1 = require_codegen();
@@ -8450,7 +8450,7 @@ var require_limitNumber = __commonJS((exports) => {
8450
8450
  exports.default = def;
8451
8451
  });
8452
8452
 
8453
- // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
8453
+ // ../../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js
8454
8454
  var require_multipleOf = __commonJS((exports) => {
8455
8455
  Object.defineProperty(exports, "__esModule", { value: true });
8456
8456
  var codegen_1 = require_codegen();
@@ -8475,7 +8475,7 @@ var require_multipleOf = __commonJS((exports) => {
8475
8475
  exports.default = def;
8476
8476
  });
8477
8477
 
8478
- // node_modules/ajv/dist/runtime/ucs2length.js
8478
+ // ../../../node_modules/ajv/dist/runtime/ucs2length.js
8479
8479
  var require_ucs2length = __commonJS((exports) => {
8480
8480
  Object.defineProperty(exports, "__esModule", { value: true });
8481
8481
  function ucs2length(str) {
@@ -8498,7 +8498,7 @@ var require_ucs2length = __commonJS((exports) => {
8498
8498
  ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
8499
8499
  });
8500
8500
 
8501
- // node_modules/ajv/dist/vocabularies/validation/limitLength.js
8501
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitLength.js
8502
8502
  var require_limitLength = __commonJS((exports) => {
8503
8503
  Object.defineProperty(exports, "__esModule", { value: true });
8504
8504
  var codegen_1 = require_codegen();
@@ -8527,7 +8527,7 @@ var require_limitLength = __commonJS((exports) => {
8527
8527
  exports.default = def;
8528
8528
  });
8529
8529
 
8530
- // node_modules/ajv/dist/vocabularies/validation/pattern.js
8530
+ // ../../../node_modules/ajv/dist/vocabularies/validation/pattern.js
8531
8531
  var require_pattern = __commonJS((exports) => {
8532
8532
  Object.defineProperty(exports, "__esModule", { value: true });
8533
8533
  var code_1 = require_code2();
@@ -8561,7 +8561,7 @@ var require_pattern = __commonJS((exports) => {
8561
8561
  exports.default = def;
8562
8562
  });
8563
8563
 
8564
- // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
8564
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js
8565
8565
  var require_limitProperties = __commonJS((exports) => {
8566
8566
  Object.defineProperty(exports, "__esModule", { value: true });
8567
8567
  var codegen_1 = require_codegen();
@@ -8587,7 +8587,7 @@ var require_limitProperties = __commonJS((exports) => {
8587
8587
  exports.default = def;
8588
8588
  });
8589
8589
 
8590
- // node_modules/ajv/dist/vocabularies/validation/required.js
8590
+ // ../../../node_modules/ajv/dist/vocabularies/validation/required.js
8591
8591
  var require_required = __commonJS((exports) => {
8592
8592
  Object.defineProperty(exports, "__esModule", { value: true });
8593
8593
  var code_1 = require_code2();
@@ -8666,7 +8666,7 @@ var require_required = __commonJS((exports) => {
8666
8666
  exports.default = def;
8667
8667
  });
8668
8668
 
8669
- // node_modules/ajv/dist/vocabularies/validation/limitItems.js
8669
+ // ../../../node_modules/ajv/dist/vocabularies/validation/limitItems.js
8670
8670
  var require_limitItems = __commonJS((exports) => {
8671
8671
  Object.defineProperty(exports, "__esModule", { value: true });
8672
8672
  var codegen_1 = require_codegen();
@@ -8692,7 +8692,7 @@ var require_limitItems = __commonJS((exports) => {
8692
8692
  exports.default = def;
8693
8693
  });
8694
8694
 
8695
- // node_modules/ajv/dist/runtime/equal.js
8695
+ // ../../../node_modules/ajv/dist/runtime/equal.js
8696
8696
  var require_equal = __commonJS((exports) => {
8697
8697
  Object.defineProperty(exports, "__esModule", { value: true });
8698
8698
  var equal = require_fast_deep_equal();
@@ -8700,7 +8700,7 @@ var require_equal = __commonJS((exports) => {
8700
8700
  exports.default = equal;
8701
8701
  });
8702
8702
 
8703
- // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
8703
+ // ../../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
8704
8704
  var require_uniqueItems = __commonJS((exports) => {
8705
8705
  Object.defineProperty(exports, "__esModule", { value: true });
8706
8706
  var dataType_1 = require_dataType();
@@ -8764,7 +8764,7 @@ var require_uniqueItems = __commonJS((exports) => {
8764
8764
  exports.default = def;
8765
8765
  });
8766
8766
 
8767
- // node_modules/ajv/dist/vocabularies/validation/const.js
8767
+ // ../../../node_modules/ajv/dist/vocabularies/validation/const.js
8768
8768
  var require_const = __commonJS((exports) => {
8769
8769
  Object.defineProperty(exports, "__esModule", { value: true });
8770
8770
  var codegen_1 = require_codegen();
@@ -8790,7 +8790,7 @@ var require_const = __commonJS((exports) => {
8790
8790
  exports.default = def;
8791
8791
  });
8792
8792
 
8793
- // node_modules/ajv/dist/vocabularies/validation/enum.js
8793
+ // ../../../node_modules/ajv/dist/vocabularies/validation/enum.js
8794
8794
  var require_enum = __commonJS((exports) => {
8795
8795
  Object.defineProperty(exports, "__esModule", { value: true });
8796
8796
  var codegen_1 = require_codegen();
@@ -8836,7 +8836,7 @@ var require_enum = __commonJS((exports) => {
8836
8836
  exports.default = def;
8837
8837
  });
8838
8838
 
8839
- // node_modules/ajv/dist/vocabularies/validation/index.js
8839
+ // ../../../node_modules/ajv/dist/vocabularies/validation/index.js
8840
8840
  var require_validation = __commonJS((exports) => {
8841
8841
  Object.defineProperty(exports, "__esModule", { value: true });
8842
8842
  var limitNumber_1 = require_limitNumber();
@@ -8866,7 +8866,7 @@ var require_validation = __commonJS((exports) => {
8866
8866
  exports.default = validation;
8867
8867
  });
8868
8868
 
8869
- // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
8869
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
8870
8870
  var require_additionalItems = __commonJS((exports) => {
8871
8871
  Object.defineProperty(exports, "__esModule", { value: true });
8872
8872
  exports.validateAdditionalItems = undefined;
@@ -8916,7 +8916,7 @@ var require_additionalItems = __commonJS((exports) => {
8916
8916
  exports.default = def;
8917
8917
  });
8918
8918
 
8919
- // node_modules/ajv/dist/vocabularies/applicator/items.js
8919
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/items.js
8920
8920
  var require_items = __commonJS((exports) => {
8921
8921
  Object.defineProperty(exports, "__esModule", { value: true });
8922
8922
  exports.validateTuple = undefined;
@@ -8970,7 +8970,7 @@ var require_items = __commonJS((exports) => {
8970
8970
  exports.default = def;
8971
8971
  });
8972
8972
 
8973
- // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
8973
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
8974
8974
  var require_prefixItems = __commonJS((exports) => {
8975
8975
  Object.defineProperty(exports, "__esModule", { value: true });
8976
8976
  var items_1 = require_items();
@@ -8984,7 +8984,7 @@ var require_prefixItems = __commonJS((exports) => {
8984
8984
  exports.default = def;
8985
8985
  });
8986
8986
 
8987
- // node_modules/ajv/dist/vocabularies/applicator/items2020.js
8987
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/items2020.js
8988
8988
  var require_items2020 = __commonJS((exports) => {
8989
8989
  Object.defineProperty(exports, "__esModule", { value: true });
8990
8990
  var codegen_1 = require_codegen();
@@ -9016,7 +9016,7 @@ var require_items2020 = __commonJS((exports) => {
9016
9016
  exports.default = def;
9017
9017
  });
9018
9018
 
9019
- // node_modules/ajv/dist/vocabularies/applicator/contains.js
9019
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/contains.js
9020
9020
  var require_contains = __commonJS((exports) => {
9021
9021
  Object.defineProperty(exports, "__esModule", { value: true });
9022
9022
  var codegen_1 = require_codegen();
@@ -9107,7 +9107,7 @@ var require_contains = __commonJS((exports) => {
9107
9107
  exports.default = def;
9108
9108
  });
9109
9109
 
9110
- // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
9110
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js
9111
9111
  var require_dependencies = __commonJS((exports) => {
9112
9112
  Object.defineProperty(exports, "__esModule", { value: true });
9113
9113
  exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = undefined;
@@ -9192,7 +9192,7 @@ var require_dependencies = __commonJS((exports) => {
9192
9192
  exports.default = def;
9193
9193
  });
9194
9194
 
9195
- // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
9195
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
9196
9196
  var require_propertyNames = __commonJS((exports) => {
9197
9197
  Object.defineProperty(exports, "__esModule", { value: true });
9198
9198
  var codegen_1 = require_codegen();
@@ -9232,7 +9232,7 @@ var require_propertyNames = __commonJS((exports) => {
9232
9232
  exports.default = def;
9233
9233
  });
9234
9234
 
9235
- // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
9235
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
9236
9236
  var require_additionalProperties = __commonJS((exports) => {
9237
9237
  Object.defineProperty(exports, "__esModule", { value: true });
9238
9238
  var code_1 = require_code2();
@@ -9335,7 +9335,7 @@ var require_additionalProperties = __commonJS((exports) => {
9335
9335
  exports.default = def;
9336
9336
  });
9337
9337
 
9338
- // node_modules/ajv/dist/vocabularies/applicator/properties.js
9338
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/properties.js
9339
9339
  var require_properties = __commonJS((exports) => {
9340
9340
  Object.defineProperty(exports, "__esModule", { value: true });
9341
9341
  var validate_1 = require_validate();
@@ -9390,7 +9390,7 @@ var require_properties = __commonJS((exports) => {
9390
9390
  exports.default = def;
9391
9391
  });
9392
9392
 
9393
- // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
9393
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
9394
9394
  var require_patternProperties = __commonJS((exports) => {
9395
9395
  Object.defineProperty(exports, "__esModule", { value: true });
9396
9396
  var code_1 = require_code2();
@@ -9461,7 +9461,7 @@ var require_patternProperties = __commonJS((exports) => {
9461
9461
  exports.default = def;
9462
9462
  });
9463
9463
 
9464
- // node_modules/ajv/dist/vocabularies/applicator/not.js
9464
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/not.js
9465
9465
  var require_not = __commonJS((exports) => {
9466
9466
  Object.defineProperty(exports, "__esModule", { value: true });
9467
9467
  var util_1 = require_util();
@@ -9489,7 +9489,7 @@ var require_not = __commonJS((exports) => {
9489
9489
  exports.default = def;
9490
9490
  });
9491
9491
 
9492
- // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
9492
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js
9493
9493
  var require_anyOf = __commonJS((exports) => {
9494
9494
  Object.defineProperty(exports, "__esModule", { value: true });
9495
9495
  var code_1 = require_code2();
@@ -9503,7 +9503,7 @@ var require_anyOf = __commonJS((exports) => {
9503
9503
  exports.default = def;
9504
9504
  });
9505
9505
 
9506
- // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
9506
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js
9507
9507
  var require_oneOf = __commonJS((exports) => {
9508
9508
  Object.defineProperty(exports, "__esModule", { value: true });
9509
9509
  var codegen_1 = require_codegen();
@@ -9558,7 +9558,7 @@ var require_oneOf = __commonJS((exports) => {
9558
9558
  exports.default = def;
9559
9559
  });
9560
9560
 
9561
- // node_modules/ajv/dist/vocabularies/applicator/allOf.js
9561
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/allOf.js
9562
9562
  var require_allOf = __commonJS((exports) => {
9563
9563
  Object.defineProperty(exports, "__esModule", { value: true });
9564
9564
  var util_1 = require_util();
@@ -9582,7 +9582,7 @@ var require_allOf = __commonJS((exports) => {
9582
9582
  exports.default = def;
9583
9583
  });
9584
9584
 
9585
- // node_modules/ajv/dist/vocabularies/applicator/if.js
9585
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/if.js
9586
9586
  var require_if = __commonJS((exports) => {
9587
9587
  Object.defineProperty(exports, "__esModule", { value: true });
9588
9588
  var codegen_1 = require_codegen();
@@ -9648,7 +9648,7 @@ var require_if = __commonJS((exports) => {
9648
9648
  exports.default = def;
9649
9649
  });
9650
9650
 
9651
- // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
9651
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js
9652
9652
  var require_thenElse = __commonJS((exports) => {
9653
9653
  Object.defineProperty(exports, "__esModule", { value: true });
9654
9654
  var util_1 = require_util();
@@ -9663,7 +9663,7 @@ var require_thenElse = __commonJS((exports) => {
9663
9663
  exports.default = def;
9664
9664
  });
9665
9665
 
9666
- // node_modules/ajv/dist/vocabularies/applicator/index.js
9666
+ // ../../../node_modules/ajv/dist/vocabularies/applicator/index.js
9667
9667
  var require_applicator = __commonJS((exports) => {
9668
9668
  Object.defineProperty(exports, "__esModule", { value: true });
9669
9669
  var additionalItems_1 = require_additionalItems();
@@ -9706,7 +9706,7 @@ var require_applicator = __commonJS((exports) => {
9706
9706
  exports.default = getApplicator;
9707
9707
  });
9708
9708
 
9709
- // node_modules/ajv/dist/vocabularies/format/format.js
9709
+ // ../../../node_modules/ajv/dist/vocabularies/format/format.js
9710
9710
  var require_format = __commonJS((exports) => {
9711
9711
  Object.defineProperty(exports, "__esModule", { value: true });
9712
9712
  var codegen_1 = require_codegen();
@@ -9793,7 +9793,7 @@ var require_format = __commonJS((exports) => {
9793
9793
  exports.default = def;
9794
9794
  });
9795
9795
 
9796
- // node_modules/ajv/dist/vocabularies/format/index.js
9796
+ // ../../../node_modules/ajv/dist/vocabularies/format/index.js
9797
9797
  var require_format2 = __commonJS((exports) => {
9798
9798
  Object.defineProperty(exports, "__esModule", { value: true });
9799
9799
  var format_1 = require_format();
@@ -9801,7 +9801,7 @@ var require_format2 = __commonJS((exports) => {
9801
9801
  exports.default = format;
9802
9802
  });
9803
9803
 
9804
- // node_modules/ajv/dist/vocabularies/metadata.js
9804
+ // ../../../node_modules/ajv/dist/vocabularies/metadata.js
9805
9805
  var require_metadata = __commonJS((exports) => {
9806
9806
  Object.defineProperty(exports, "__esModule", { value: true });
9807
9807
  exports.contentVocabulary = exports.metadataVocabulary = undefined;
@@ -9821,7 +9821,7 @@ var require_metadata = __commonJS((exports) => {
9821
9821
  ];
9822
9822
  });
9823
9823
 
9824
- // node_modules/ajv/dist/vocabularies/draft7.js
9824
+ // ../../../node_modules/ajv/dist/vocabularies/draft7.js
9825
9825
  var require_draft7 = __commonJS((exports) => {
9826
9826
  Object.defineProperty(exports, "__esModule", { value: true });
9827
9827
  var core_1 = require_core2();
@@ -9840,7 +9840,7 @@ var require_draft7 = __commonJS((exports) => {
9840
9840
  exports.default = draft7Vocabularies;
9841
9841
  });
9842
9842
 
9843
- // node_modules/ajv/dist/vocabularies/discriminator/types.js
9843
+ // ../../../node_modules/ajv/dist/vocabularies/discriminator/types.js
9844
9844
  var require_types = __commonJS((exports) => {
9845
9845
  Object.defineProperty(exports, "__esModule", { value: true });
9846
9846
  exports.DiscrError = undefined;
@@ -9851,7 +9851,7 @@ var require_types = __commonJS((exports) => {
9851
9851
  })(DiscrError || (exports.DiscrError = DiscrError = {}));
9852
9852
  });
9853
9853
 
9854
- // node_modules/ajv/dist/vocabularies/discriminator/index.js
9854
+ // ../../../node_modules/ajv/dist/vocabularies/discriminator/index.js
9855
9855
  var require_discriminator = __commonJS((exports) => {
9856
9856
  Object.defineProperty(exports, "__esModule", { value: true });
9857
9857
  var codegen_1 = require_codegen();
@@ -9953,7 +9953,7 @@ var require_discriminator = __commonJS((exports) => {
9953
9953
  exports.default = def;
9954
9954
  });
9955
9955
 
9956
- // node_modules/ajv/dist/refs/json-schema-draft-07.json
9956
+ // ../../../node_modules/ajv/dist/refs/json-schema-draft-07.json
9957
9957
  var require_json_schema_draft_07 = __commonJS((exports, module) => {
9958
9958
  module.exports = {
9959
9959
  $schema: "http://json-schema.org/draft-07/schema#",
@@ -10108,7 +10108,7 @@ var require_json_schema_draft_07 = __commonJS((exports, module) => {
10108
10108
  };
10109
10109
  });
10110
10110
 
10111
- // node_modules/ajv/dist/ajv.js
10111
+ // ../../../node_modules/ajv/dist/ajv.js
10112
10112
  var require_ajv = __commonJS((exports, module) => {
10113
10113
  Object.defineProperty(exports, "__esModule", { value: true });
10114
10114
  exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = undefined;
@@ -10176,7 +10176,7 @@ var require_ajv = __commonJS((exports, module) => {
10176
10176
  } });
10177
10177
  });
10178
10178
 
10179
- // node_modules/ajv-formats/dist/formats.js
10179
+ // ../../../node_modules/ajv-formats/dist/formats.js
10180
10180
  var require_formats = __commonJS((exports) => {
10181
10181
  Object.defineProperty(exports, "__esModule", { value: true });
10182
10182
  exports.formatNames = exports.fastFormats = exports.fullFormats = undefined;
@@ -10353,7 +10353,7 @@ var require_formats = __commonJS((exports) => {
10353
10353
  }
10354
10354
  });
10355
10355
 
10356
- // node_modules/ajv-formats/dist/limit.js
10356
+ // ../../../node_modules/ajv-formats/dist/limit.js
10357
10357
  var require_limit = __commonJS((exports) => {
10358
10358
  Object.defineProperty(exports, "__esModule", { value: true });
10359
10359
  exports.formatLimitDefinition = undefined;
@@ -10422,7 +10422,7 @@ var require_limit = __commonJS((exports) => {
10422
10422
  exports.default = formatLimitPlugin;
10423
10423
  });
10424
10424
 
10425
- // node_modules/ajv-formats/dist/index.js
10425
+ // ../../../node_modules/ajv-formats/dist/index.js
10426
10426
  var require_dist = __commonJS((exports, module) => {
10427
10427
  Object.defineProperty(exports, "__esModule", { value: true });
10428
10428
  var formats_1 = require_formats();
@@ -10461,7 +10461,7 @@ var require_dist = __commonJS((exports, module) => {
10461
10461
  exports.default = formatsPlugin;
10462
10462
  });
10463
10463
 
10464
- // node_modules/yaml/dist/nodes/identity.js
10464
+ // ../../../node_modules/yaml/dist/nodes/identity.js
10465
10465
  var require_identity = __commonJS((exports) => {
10466
10466
  var ALIAS = Symbol.for("yaml.alias");
10467
10467
  var DOC = Symbol.for("yaml.document");
@@ -10515,7 +10515,7 @@ var require_identity = __commonJS((exports) => {
10515
10515
  exports.isSeq = isSeq;
10516
10516
  });
10517
10517
 
10518
- // node_modules/yaml/dist/visit.js
10518
+ // ../../../node_modules/yaml/dist/visit.js
10519
10519
  var require_visit = __commonJS((exports) => {
10520
10520
  var identity = require_identity();
10521
10521
  var BREAK = Symbol("break visit");
@@ -10670,7 +10670,7 @@ var require_visit = __commonJS((exports) => {
10670
10670
  exports.visitAsync = visitAsync;
10671
10671
  });
10672
10672
 
10673
- // node_modules/yaml/dist/doc/directives.js
10673
+ // ../../../node_modules/yaml/dist/doc/directives.js
10674
10674
  var require_directives = __commonJS((exports) => {
10675
10675
  var identity = require_identity();
10676
10676
  var visit = require_visit();
@@ -10822,7 +10822,7 @@ var require_directives = __commonJS((exports) => {
10822
10822
  exports.Directives = Directives;
10823
10823
  });
10824
10824
 
10825
- // node_modules/yaml/dist/doc/anchors.js
10825
+ // ../../../node_modules/yaml/dist/doc/anchors.js
10826
10826
  var require_anchors = __commonJS((exports) => {
10827
10827
  var identity = require_identity();
10828
10828
  var visit = require_visit();
@@ -10884,7 +10884,7 @@ var require_anchors = __commonJS((exports) => {
10884
10884
  exports.findNewAnchor = findNewAnchor;
10885
10885
  });
10886
10886
 
10887
- // node_modules/yaml/dist/doc/applyReviver.js
10887
+ // ../../../node_modules/yaml/dist/doc/applyReviver.js
10888
10888
  var require_applyReviver = __commonJS((exports) => {
10889
10889
  function applyReviver(reviver, obj, key, val) {
10890
10890
  if (val && typeof val === "object") {
@@ -10931,7 +10931,7 @@ var require_applyReviver = __commonJS((exports) => {
10931
10931
  exports.applyReviver = applyReviver;
10932
10932
  });
10933
10933
 
10934
- // node_modules/yaml/dist/nodes/toJS.js
10934
+ // ../../../node_modules/yaml/dist/nodes/toJS.js
10935
10935
  var require_toJS = __commonJS((exports) => {
10936
10936
  var identity = require_identity();
10937
10937
  function toJS(value, arg, ctx) {
@@ -10958,7 +10958,7 @@ var require_toJS = __commonJS((exports) => {
10958
10958
  exports.toJS = toJS;
10959
10959
  });
10960
10960
 
10961
- // node_modules/yaml/dist/nodes/Node.js
10961
+ // ../../../node_modules/yaml/dist/nodes/Node.js
10962
10962
  var require_Node = __commonJS((exports) => {
10963
10963
  var applyReviver = require_applyReviver();
10964
10964
  var identity = require_identity();
@@ -10995,7 +10995,7 @@ var require_Node = __commonJS((exports) => {
10995
10995
  exports.NodeBase = NodeBase;
10996
10996
  });
10997
10997
 
10998
- // node_modules/yaml/dist/nodes/Alias.js
10998
+ // ../../../node_modules/yaml/dist/nodes/Alias.js
10999
10999
  var require_Alias = __commonJS((exports) => {
11000
11000
  var anchors = require_anchors();
11001
11001
  var visit = require_visit();
@@ -11103,7 +11103,7 @@ var require_Alias = __commonJS((exports) => {
11103
11103
  exports.Alias = Alias;
11104
11104
  });
11105
11105
 
11106
- // node_modules/yaml/dist/nodes/Scalar.js
11106
+ // ../../../node_modules/yaml/dist/nodes/Scalar.js
11107
11107
  var require_Scalar = __commonJS((exports) => {
11108
11108
  var identity = require_identity();
11109
11109
  var Node = require_Node();
@@ -11131,7 +11131,7 @@ var require_Scalar = __commonJS((exports) => {
11131
11131
  exports.isScalarValue = isScalarValue;
11132
11132
  });
11133
11133
 
11134
- // node_modules/yaml/dist/doc/createNode.js
11134
+ // ../../../node_modules/yaml/dist/doc/createNode.js
11135
11135
  var require_createNode = __commonJS((exports) => {
11136
11136
  var Alias = require_Alias();
11137
11137
  var identity = require_identity();
@@ -11203,7 +11203,7 @@ var require_createNode = __commonJS((exports) => {
11203
11203
  exports.createNode = createNode;
11204
11204
  });
11205
11205
 
11206
- // node_modules/yaml/dist/nodes/Collection.js
11206
+ // ../../../node_modules/yaml/dist/nodes/Collection.js
11207
11207
  var require_Collection = __commonJS((exports) => {
11208
11208
  var createNode = require_createNode();
11209
11209
  var identity = require_identity();
@@ -11318,7 +11318,7 @@ var require_Collection = __commonJS((exports) => {
11318
11318
  exports.isEmptyPath = isEmptyPath;
11319
11319
  });
11320
11320
 
11321
- // node_modules/yaml/dist/stringify/stringifyComment.js
11321
+ // ../../../node_modules/yaml/dist/stringify/stringifyComment.js
11322
11322
  var require_stringifyComment = __commonJS((exports) => {
11323
11323
  var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
11324
11324
  function indentComment(comment, indent) {
@@ -11335,7 +11335,7 @@ var require_stringifyComment = __commonJS((exports) => {
11335
11335
  exports.stringifyComment = stringifyComment;
11336
11336
  });
11337
11337
 
11338
- // node_modules/yaml/dist/stringify/foldFlowLines.js
11338
+ // ../../../node_modules/yaml/dist/stringify/foldFlowLines.js
11339
11339
  var require_foldFlowLines = __commonJS((exports) => {
11340
11340
  var FOLD_FLOW = "flow";
11341
11341
  var FOLD_BLOCK = "block";
@@ -11472,7 +11472,7 @@ ${indent}${text.slice(fold + 1, end2)}`;
11472
11472
  exports.foldFlowLines = foldFlowLines;
11473
11473
  });
11474
11474
 
11475
- // node_modules/yaml/dist/stringify/stringifyString.js
11475
+ // ../../../node_modules/yaml/dist/stringify/stringifyString.js
11476
11476
  var require_stringifyString = __commonJS((exports) => {
11477
11477
  var Scalar = require_Scalar();
11478
11478
  var foldFlowLines = require_foldFlowLines();
@@ -11770,7 +11770,7 @@ ${indent}`);
11770
11770
  exports.stringifyString = stringifyString;
11771
11771
  });
11772
11772
 
11773
- // node_modules/yaml/dist/stringify/stringify.js
11773
+ // ../../../node_modules/yaml/dist/stringify/stringify.js
11774
11774
  var require_stringify = __commonJS((exports) => {
11775
11775
  var anchors = require_anchors();
11776
11776
  var identity = require_identity();
@@ -11890,7 +11890,7 @@ ${ctx.indent}${str}`;
11890
11890
  exports.stringify = stringify;
11891
11891
  });
11892
11892
 
11893
- // node_modules/yaml/dist/stringify/stringifyPair.js
11893
+ // ../../../node_modules/yaml/dist/stringify/stringifyPair.js
11894
11894
  var require_stringifyPair = __commonJS((exports) => {
11895
11895
  var identity = require_identity();
11896
11896
  var Scalar = require_Scalar();
@@ -12026,7 +12026,7 @@ ${ctx.indent}`;
12026
12026
  exports.stringifyPair = stringifyPair;
12027
12027
  });
12028
12028
 
12029
- // node_modules/yaml/dist/log.js
12029
+ // ../../../node_modules/yaml/dist/log.js
12030
12030
  var require_log = __commonJS((exports) => {
12031
12031
  var node_process = __require("process");
12032
12032
  function debug(logLevel, ...messages) {
@@ -12045,7 +12045,7 @@ var require_log = __commonJS((exports) => {
12045
12045
  exports.warn = warn;
12046
12046
  });
12047
12047
 
12048
- // node_modules/yaml/dist/schema/yaml-1.1/merge.js
12048
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/merge.js
12049
12049
  var require_merge = __commonJS((exports) => {
12050
12050
  var identity = require_identity();
12051
12051
  var Scalar = require_Scalar();
@@ -12099,7 +12099,7 @@ var require_merge = __commonJS((exports) => {
12099
12099
  exports.merge = merge2;
12100
12100
  });
12101
12101
 
12102
- // node_modules/yaml/dist/nodes/addPairToJSMap.js
12102
+ // ../../../node_modules/yaml/dist/nodes/addPairToJSMap.js
12103
12103
  var require_addPairToJSMap = __commonJS((exports) => {
12104
12104
  var log = require_log();
12105
12105
  var merge2 = require_merge();
@@ -12160,7 +12160,7 @@ var require_addPairToJSMap = __commonJS((exports) => {
12160
12160
  exports.addPairToJSMap = addPairToJSMap;
12161
12161
  });
12162
12162
 
12163
- // node_modules/yaml/dist/nodes/Pair.js
12163
+ // ../../../node_modules/yaml/dist/nodes/Pair.js
12164
12164
  var require_Pair = __commonJS((exports) => {
12165
12165
  var createNode = require_createNode();
12166
12166
  var stringifyPair = require_stringifyPair();
@@ -12198,7 +12198,7 @@ var require_Pair = __commonJS((exports) => {
12198
12198
  exports.createPair = createPair;
12199
12199
  });
12200
12200
 
12201
- // node_modules/yaml/dist/stringify/stringifyCollection.js
12201
+ // ../../../node_modules/yaml/dist/stringify/stringifyCollection.js
12202
12202
  var require_stringifyCollection = __commonJS((exports) => {
12203
12203
  var identity = require_identity();
12204
12204
  var stringify = require_stringify();
@@ -12343,7 +12343,7 @@ ${indent}${end}`;
12343
12343
  exports.stringifyCollection = stringifyCollection;
12344
12344
  });
12345
12345
 
12346
- // node_modules/yaml/dist/nodes/YAMLMap.js
12346
+ // ../../../node_modules/yaml/dist/nodes/YAMLMap.js
12347
12347
  var require_YAMLMap = __commonJS((exports) => {
12348
12348
  var stringifyCollection = require_stringifyCollection();
12349
12349
  var addPairToJSMap = require_addPairToJSMap();
@@ -12470,7 +12470,7 @@ var require_YAMLMap = __commonJS((exports) => {
12470
12470
  exports.findPair = findPair;
12471
12471
  });
12472
12472
 
12473
- // node_modules/yaml/dist/schema/common/map.js
12473
+ // ../../../node_modules/yaml/dist/schema/common/map.js
12474
12474
  var require_map = __commonJS((exports) => {
12475
12475
  var identity = require_identity();
12476
12476
  var YAMLMap = require_YAMLMap();
@@ -12489,7 +12489,7 @@ var require_map = __commonJS((exports) => {
12489
12489
  exports.map = map2;
12490
12490
  });
12491
12491
 
12492
- // node_modules/yaml/dist/nodes/YAMLSeq.js
12492
+ // ../../../node_modules/yaml/dist/nodes/YAMLSeq.js
12493
12493
  var require_YAMLSeq = __commonJS((exports) => {
12494
12494
  var createNode = require_createNode();
12495
12495
  var stringifyCollection = require_stringifyCollection();
@@ -12582,7 +12582,7 @@ var require_YAMLSeq = __commonJS((exports) => {
12582
12582
  exports.YAMLSeq = YAMLSeq;
12583
12583
  });
12584
12584
 
12585
- // node_modules/yaml/dist/schema/common/seq.js
12585
+ // ../../../node_modules/yaml/dist/schema/common/seq.js
12586
12586
  var require_seq = __commonJS((exports) => {
12587
12587
  var identity = require_identity();
12588
12588
  var YAMLSeq = require_YAMLSeq();
@@ -12601,7 +12601,7 @@ var require_seq = __commonJS((exports) => {
12601
12601
  exports.seq = seq;
12602
12602
  });
12603
12603
 
12604
- // node_modules/yaml/dist/schema/common/string.js
12604
+ // ../../../node_modules/yaml/dist/schema/common/string.js
12605
12605
  var require_string = __commonJS((exports) => {
12606
12606
  var stringifyString = require_stringifyString();
12607
12607
  var string4 = {
@@ -12617,7 +12617,7 @@ var require_string = __commonJS((exports) => {
12617
12617
  exports.string = string4;
12618
12618
  });
12619
12619
 
12620
- // node_modules/yaml/dist/schema/common/null.js
12620
+ // ../../../node_modules/yaml/dist/schema/common/null.js
12621
12621
  var require_null = __commonJS((exports) => {
12622
12622
  var Scalar = require_Scalar();
12623
12623
  var nullTag = {
@@ -12632,7 +12632,7 @@ var require_null = __commonJS((exports) => {
12632
12632
  exports.nullTag = nullTag;
12633
12633
  });
12634
12634
 
12635
- // node_modules/yaml/dist/schema/core/bool.js
12635
+ // ../../../node_modules/yaml/dist/schema/core/bool.js
12636
12636
  var require_bool = __commonJS((exports) => {
12637
12637
  var Scalar = require_Scalar();
12638
12638
  var boolTag = {
@@ -12653,7 +12653,7 @@ var require_bool = __commonJS((exports) => {
12653
12653
  exports.boolTag = boolTag;
12654
12654
  });
12655
12655
 
12656
- // node_modules/yaml/dist/stringify/stringifyNumber.js
12656
+ // ../../../node_modules/yaml/dist/stringify/stringifyNumber.js
12657
12657
  var require_stringifyNumber = __commonJS((exports) => {
12658
12658
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
12659
12659
  if (typeof value === "bigint")
@@ -12677,7 +12677,7 @@ var require_stringifyNumber = __commonJS((exports) => {
12677
12677
  exports.stringifyNumber = stringifyNumber;
12678
12678
  });
12679
12679
 
12680
- // node_modules/yaml/dist/schema/core/float.js
12680
+ // ../../../node_modules/yaml/dist/schema/core/float.js
12681
12681
  var require_float = __commonJS((exports) => {
12682
12682
  var Scalar = require_Scalar();
12683
12683
  var stringifyNumber = require_stringifyNumber();
@@ -12720,7 +12720,7 @@ var require_float = __commonJS((exports) => {
12720
12720
  exports.floatNaN = floatNaN;
12721
12721
  });
12722
12722
 
12723
- // node_modules/yaml/dist/schema/core/int.js
12723
+ // ../../../node_modules/yaml/dist/schema/core/int.js
12724
12724
  var require_int = __commonJS((exports) => {
12725
12725
  var stringifyNumber = require_stringifyNumber();
12726
12726
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -12762,7 +12762,7 @@ var require_int = __commonJS((exports) => {
12762
12762
  exports.intOct = intOct;
12763
12763
  });
12764
12764
 
12765
- // node_modules/yaml/dist/schema/core/schema.js
12765
+ // ../../../node_modules/yaml/dist/schema/core/schema.js
12766
12766
  var require_schema = __commonJS((exports) => {
12767
12767
  var map2 = require_map();
12768
12768
  var _null4 = require_null();
@@ -12787,7 +12787,7 @@ var require_schema = __commonJS((exports) => {
12787
12787
  exports.schema = schema;
12788
12788
  });
12789
12789
 
12790
- // node_modules/yaml/dist/schema/json/schema.js
12790
+ // ../../../node_modules/yaml/dist/schema/json/schema.js
12791
12791
  var require_schema2 = __commonJS((exports) => {
12792
12792
  var Scalar = require_Scalar();
12793
12793
  var map2 = require_map();
@@ -12851,7 +12851,7 @@ var require_schema2 = __commonJS((exports) => {
12851
12851
  exports.schema = schema;
12852
12852
  });
12853
12853
 
12854
- // node_modules/yaml/dist/schema/yaml-1.1/binary.js
12854
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/binary.js
12855
12855
  var require_binary = __commonJS((exports) => {
12856
12856
  var node_buffer = __require("buffer");
12857
12857
  var Scalar = require_Scalar();
@@ -12906,7 +12906,7 @@ var require_binary = __commonJS((exports) => {
12906
12906
  exports.binary = binary;
12907
12907
  });
12908
12908
 
12909
- // node_modules/yaml/dist/schema/yaml-1.1/pairs.js
12909
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js
12910
12910
  var require_pairs = __commonJS((exports) => {
12911
12911
  var identity = require_identity();
12912
12912
  var Pair = require_Pair();
@@ -12981,7 +12981,7 @@ ${cn.comment}` : item.comment;
12981
12981
  exports.resolvePairs = resolvePairs;
12982
12982
  });
12983
12983
 
12984
- // node_modules/yaml/dist/schema/yaml-1.1/omap.js
12984
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/omap.js
12985
12985
  var require_omap = __commonJS((exports) => {
12986
12986
  var identity = require_identity();
12987
12987
  var toJS = require_toJS();
@@ -13053,7 +13053,7 @@ var require_omap = __commonJS((exports) => {
13053
13053
  exports.omap = omap;
13054
13054
  });
13055
13055
 
13056
- // node_modules/yaml/dist/schema/yaml-1.1/bool.js
13056
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/bool.js
13057
13057
  var require_bool2 = __commonJS((exports) => {
13058
13058
  var Scalar = require_Scalar();
13059
13059
  function boolStringify({ value, source }, ctx) {
@@ -13082,7 +13082,7 @@ var require_bool2 = __commonJS((exports) => {
13082
13082
  exports.trueTag = trueTag;
13083
13083
  });
13084
13084
 
13085
- // node_modules/yaml/dist/schema/yaml-1.1/float.js
13085
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/float.js
13086
13086
  var require_float2 = __commonJS((exports) => {
13087
13087
  var Scalar = require_Scalar();
13088
13088
  var stringifyNumber = require_stringifyNumber();
@@ -13128,7 +13128,7 @@ var require_float2 = __commonJS((exports) => {
13128
13128
  exports.floatNaN = floatNaN;
13129
13129
  });
13130
13130
 
13131
- // node_modules/yaml/dist/schema/yaml-1.1/int.js
13131
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/int.js
13132
13132
  var require_int2 = __commonJS((exports) => {
13133
13133
  var stringifyNumber = require_stringifyNumber();
13134
13134
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -13204,7 +13204,7 @@ var require_int2 = __commonJS((exports) => {
13204
13204
  exports.intOct = intOct;
13205
13205
  });
13206
13206
 
13207
- // node_modules/yaml/dist/schema/yaml-1.1/set.js
13207
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/set.js
13208
13208
  var require_set = __commonJS((exports) => {
13209
13209
  var identity = require_identity();
13210
13210
  var Pair = require_Pair();
@@ -13287,7 +13287,7 @@ var require_set = __commonJS((exports) => {
13287
13287
  exports.set = set2;
13288
13288
  });
13289
13289
 
13290
- // node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
13290
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
13291
13291
  var require_timestamp = __commonJS((exports) => {
13292
13292
  var stringifyNumber = require_stringifyNumber();
13293
13293
  function parseSexagesimal(str, asBigInt) {
@@ -13369,7 +13369,7 @@ var require_timestamp = __commonJS((exports) => {
13369
13369
  exports.timestamp = timestamp;
13370
13370
  });
13371
13371
 
13372
- // node_modules/yaml/dist/schema/yaml-1.1/schema.js
13372
+ // ../../../node_modules/yaml/dist/schema/yaml-1.1/schema.js
13373
13373
  var require_schema3 = __commonJS((exports) => {
13374
13374
  var map2 = require_map();
13375
13375
  var _null4 = require_null();
@@ -13410,7 +13410,7 @@ var require_schema3 = __commonJS((exports) => {
13410
13410
  exports.schema = schema;
13411
13411
  });
13412
13412
 
13413
- // node_modules/yaml/dist/schema/tags.js
13413
+ // ../../../node_modules/yaml/dist/schema/tags.js
13414
13414
  var require_tags = __commonJS((exports) => {
13415
13415
  var map2 = require_map();
13416
13416
  var _null4 = require_null();
@@ -13501,7 +13501,7 @@ var require_tags = __commonJS((exports) => {
13501
13501
  exports.getTags = getTags;
13502
13502
  });
13503
13503
 
13504
- // node_modules/yaml/dist/schema/Schema.js
13504
+ // ../../../node_modules/yaml/dist/schema/Schema.js
13505
13505
  var require_Schema = __commonJS((exports) => {
13506
13506
  var identity = require_identity();
13507
13507
  var map2 = require_map();
@@ -13531,7 +13531,7 @@ var require_Schema = __commonJS((exports) => {
13531
13531
  exports.Schema = Schema;
13532
13532
  });
13533
13533
 
13534
- // node_modules/yaml/dist/stringify/stringifyDocument.js
13534
+ // ../../../node_modules/yaml/dist/stringify/stringifyDocument.js
13535
13535
  var require_stringifyDocument = __commonJS((exports) => {
13536
13536
  var identity = require_identity();
13537
13537
  var stringify = require_stringify();
@@ -13611,7 +13611,7 @@ var require_stringifyDocument = __commonJS((exports) => {
13611
13611
  exports.stringifyDocument = stringifyDocument;
13612
13612
  });
13613
13613
 
13614
- // node_modules/yaml/dist/doc/Document.js
13614
+ // ../../../node_modules/yaml/dist/doc/Document.js
13615
13615
  var require_Document = __commonJS((exports) => {
13616
13616
  var Alias = require_Alias();
13617
13617
  var Collection = require_Collection();
@@ -13846,7 +13846,7 @@ var require_Document = __commonJS((exports) => {
13846
13846
  exports.Document = Document;
13847
13847
  });
13848
13848
 
13849
- // node_modules/yaml/dist/errors.js
13849
+ // ../../../node_modules/yaml/dist/errors.js
13850
13850
  var require_errors2 = __commonJS((exports) => {
13851
13851
  class YAMLError extends Error {
13852
13852
  constructor(name, pos, code, message) {
@@ -13911,7 +13911,7 @@ ${pointer}
13911
13911
  exports.prettifyError = prettifyError;
13912
13912
  });
13913
13913
 
13914
- // node_modules/yaml/dist/compose/resolve-props.js
13914
+ // ../../../node_modules/yaml/dist/compose/resolve-props.js
13915
13915
  var require_resolve_props = __commonJS((exports) => {
13916
13916
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
13917
13917
  let spaceBefore = false;
@@ -14041,7 +14041,7 @@ var require_resolve_props = __commonJS((exports) => {
14041
14041
  exports.resolveProps = resolveProps;
14042
14042
  });
14043
14043
 
14044
- // node_modules/yaml/dist/compose/util-contains-newline.js
14044
+ // ../../../node_modules/yaml/dist/compose/util-contains-newline.js
14045
14045
  var require_util_contains_newline = __commonJS((exports) => {
14046
14046
  function containsNewline(key) {
14047
14047
  if (!key)
@@ -14081,7 +14081,7 @@ var require_util_contains_newline = __commonJS((exports) => {
14081
14081
  exports.containsNewline = containsNewline;
14082
14082
  });
14083
14083
 
14084
- // node_modules/yaml/dist/compose/util-flow-indent-check.js
14084
+ // ../../../node_modules/yaml/dist/compose/util-flow-indent-check.js
14085
14085
  var require_util_flow_indent_check = __commonJS((exports) => {
14086
14086
  var utilContainsNewline = require_util_contains_newline();
14087
14087
  function flowIndentCheck(indent, fc, onError) {
@@ -14096,7 +14096,7 @@ var require_util_flow_indent_check = __commonJS((exports) => {
14096
14096
  exports.flowIndentCheck = flowIndentCheck;
14097
14097
  });
14098
14098
 
14099
- // node_modules/yaml/dist/compose/util-map-includes.js
14099
+ // ../../../node_modules/yaml/dist/compose/util-map-includes.js
14100
14100
  var require_util_map_includes = __commonJS((exports) => {
14101
14101
  var identity = require_identity();
14102
14102
  function mapIncludes(ctx, items, search) {
@@ -14109,7 +14109,7 @@ var require_util_map_includes = __commonJS((exports) => {
14109
14109
  exports.mapIncludes = mapIncludes;
14110
14110
  });
14111
14111
 
14112
- // node_modules/yaml/dist/compose/resolve-block-map.js
14112
+ // ../../../node_modules/yaml/dist/compose/resolve-block-map.js
14113
14113
  var require_resolve_block_map = __commonJS((exports) => {
14114
14114
  var Pair = require_Pair();
14115
14115
  var YAMLMap = require_YAMLMap();
@@ -14216,7 +14216,7 @@ var require_resolve_block_map = __commonJS((exports) => {
14216
14216
  exports.resolveBlockMap = resolveBlockMap;
14217
14217
  });
14218
14218
 
14219
- // node_modules/yaml/dist/compose/resolve-block-seq.js
14219
+ // ../../../node_modules/yaml/dist/compose/resolve-block-seq.js
14220
14220
  var require_resolve_block_seq = __commonJS((exports) => {
14221
14221
  var YAMLSeq = require_YAMLSeq();
14222
14222
  var resolveProps = require_resolve_props();
@@ -14264,7 +14264,7 @@ var require_resolve_block_seq = __commonJS((exports) => {
14264
14264
  exports.resolveBlockSeq = resolveBlockSeq;
14265
14265
  });
14266
14266
 
14267
- // node_modules/yaml/dist/compose/resolve-end.js
14267
+ // ../../../node_modules/yaml/dist/compose/resolve-end.js
14268
14268
  var require_resolve_end = __commonJS((exports) => {
14269
14269
  function resolveEnd(end, offset, reqSpace, onError) {
14270
14270
  let comment = "";
@@ -14304,7 +14304,7 @@ var require_resolve_end = __commonJS((exports) => {
14304
14304
  exports.resolveEnd = resolveEnd;
14305
14305
  });
14306
14306
 
14307
- // node_modules/yaml/dist/compose/resolve-flow-collection.js
14307
+ // ../../../node_modules/yaml/dist/compose/resolve-flow-collection.js
14308
14308
  var require_resolve_flow_collection = __commonJS((exports) => {
14309
14309
  var identity = require_identity();
14310
14310
  var Pair = require_Pair();
@@ -14495,7 +14495,7 @@ var require_resolve_flow_collection = __commonJS((exports) => {
14495
14495
  exports.resolveFlowCollection = resolveFlowCollection;
14496
14496
  });
14497
14497
 
14498
- // node_modules/yaml/dist/compose/compose-collection.js
14498
+ // ../../../node_modules/yaml/dist/compose/compose-collection.js
14499
14499
  var require_compose_collection = __commonJS((exports) => {
14500
14500
  var identity = require_identity();
14501
14501
  var Scalar = require_Scalar();
@@ -14557,7 +14557,7 @@ var require_compose_collection = __commonJS((exports) => {
14557
14557
  exports.composeCollection = composeCollection;
14558
14558
  });
14559
14559
 
14560
- // node_modules/yaml/dist/compose/resolve-block-scalar.js
14560
+ // ../../../node_modules/yaml/dist/compose/resolve-block-scalar.js
14561
14561
  var require_resolve_block_scalar = __commonJS((exports) => {
14562
14562
  var Scalar = require_Scalar();
14563
14563
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -14750,7 +14750,7 @@ var require_resolve_block_scalar = __commonJS((exports) => {
14750
14750
  exports.resolveBlockScalar = resolveBlockScalar;
14751
14751
  });
14752
14752
 
14753
- // node_modules/yaml/dist/compose/resolve-flow-scalar.js
14753
+ // ../../../node_modules/yaml/dist/compose/resolve-flow-scalar.js
14754
14754
  var require_resolve_flow_scalar = __commonJS((exports) => {
14755
14755
  var Scalar = require_Scalar();
14756
14756
  var resolveEnd = require_resolve_end();
@@ -14966,7 +14966,7 @@ var require_resolve_flow_scalar = __commonJS((exports) => {
14966
14966
  exports.resolveFlowScalar = resolveFlowScalar;
14967
14967
  });
14968
14968
 
14969
- // node_modules/yaml/dist/compose/compose-scalar.js
14969
+ // ../../../node_modules/yaml/dist/compose/compose-scalar.js
14970
14970
  var require_compose_scalar = __commonJS((exports) => {
14971
14971
  var identity = require_identity();
14972
14972
  var Scalar = require_Scalar();
@@ -15044,7 +15044,7 @@ var require_compose_scalar = __commonJS((exports) => {
15044
15044
  exports.composeScalar = composeScalar;
15045
15045
  });
15046
15046
 
15047
- // node_modules/yaml/dist/compose/util-empty-scalar-position.js
15047
+ // ../../../node_modules/yaml/dist/compose/util-empty-scalar-position.js
15048
15048
  var require_util_empty_scalar_position = __commonJS((exports) => {
15049
15049
  function emptyScalarPosition(offset, before, pos) {
15050
15050
  if (before) {
@@ -15071,7 +15071,7 @@ var require_util_empty_scalar_position = __commonJS((exports) => {
15071
15071
  exports.emptyScalarPosition = emptyScalarPosition;
15072
15072
  });
15073
15073
 
15074
- // node_modules/yaml/dist/compose/compose-node.js
15074
+ // ../../../node_modules/yaml/dist/compose/compose-node.js
15075
15075
  var require_compose_node = __commonJS((exports) => {
15076
15076
  var Alias = require_Alias();
15077
15077
  var identity = require_identity();
@@ -15169,7 +15169,7 @@ var require_compose_node = __commonJS((exports) => {
15169
15169
  exports.composeNode = composeNode;
15170
15170
  });
15171
15171
 
15172
- // node_modules/yaml/dist/compose/compose-doc.js
15172
+ // ../../../node_modules/yaml/dist/compose/compose-doc.js
15173
15173
  var require_compose_doc = __commonJS((exports) => {
15174
15174
  var Document = require_Document();
15175
15175
  var composeNode = require_compose_node();
@@ -15209,7 +15209,7 @@ var require_compose_doc = __commonJS((exports) => {
15209
15209
  exports.composeDoc = composeDoc;
15210
15210
  });
15211
15211
 
15212
- // node_modules/yaml/dist/compose/composer.js
15212
+ // ../../../node_modules/yaml/dist/compose/composer.js
15213
15213
  var require_composer = __commonJS((exports) => {
15214
15214
  var node_process = __require("process");
15215
15215
  var directives = require_directives();
@@ -15398,7 +15398,7 @@ ${end.comment}` : end.comment;
15398
15398
  exports.Composer = Composer;
15399
15399
  });
15400
15400
 
15401
- // node_modules/yaml/dist/parse/cst-scalar.js
15401
+ // ../../../node_modules/yaml/dist/parse/cst-scalar.js
15402
15402
  var require_cst_scalar = __commonJS((exports) => {
15403
15403
  var resolveBlockScalar = require_resolve_block_scalar();
15404
15404
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -15588,7 +15588,7 @@ var require_cst_scalar = __commonJS((exports) => {
15588
15588
  exports.setScalarValue = setScalarValue;
15589
15589
  });
15590
15590
 
15591
- // node_modules/yaml/dist/parse/cst-stringify.js
15591
+ // ../../../node_modules/yaml/dist/parse/cst-stringify.js
15592
15592
  var require_cst_stringify = __commonJS((exports) => {
15593
15593
  var stringify = (cst) => ("type" in cst) ? stringifyToken(cst) : stringifyItem(cst);
15594
15594
  function stringifyToken(token) {
@@ -15646,7 +15646,7 @@ var require_cst_stringify = __commonJS((exports) => {
15646
15646
  exports.stringify = stringify;
15647
15647
  });
15648
15648
 
15649
- // node_modules/yaml/dist/parse/cst-visit.js
15649
+ // ../../../node_modules/yaml/dist/parse/cst-visit.js
15650
15650
  var require_cst_visit = __commonJS((exports) => {
15651
15651
  var BREAK = Symbol("break visit");
15652
15652
  var SKIP = Symbol("skip children");
@@ -15705,7 +15705,7 @@ var require_cst_visit = __commonJS((exports) => {
15705
15705
  exports.visit = visit;
15706
15706
  });
15707
15707
 
15708
- // node_modules/yaml/dist/parse/cst.js
15708
+ // ../../../node_modules/yaml/dist/parse/cst.js
15709
15709
  var require_cst = __commonJS((exports) => {
15710
15710
  var cstScalar = require_cst_scalar();
15711
15711
  var cstStringify = require_cst_stringify();
@@ -15806,7 +15806,7 @@ var require_cst = __commonJS((exports) => {
15806
15806
  exports.tokenType = tokenType;
15807
15807
  });
15808
15808
 
15809
- // node_modules/yaml/dist/parse/lexer.js
15809
+ // ../../../node_modules/yaml/dist/parse/lexer.js
15810
15810
  var require_lexer = __commonJS((exports) => {
15811
15811
  var cst = require_cst();
15812
15812
  function isEmpty(ch) {
@@ -16392,7 +16392,7 @@ var require_lexer = __commonJS((exports) => {
16392
16392
  exports.Lexer = Lexer;
16393
16393
  });
16394
16394
 
16395
- // node_modules/yaml/dist/parse/line-counter.js
16395
+ // ../../../node_modules/yaml/dist/parse/line-counter.js
16396
16396
  var require_line_counter = __commonJS((exports) => {
16397
16397
  class LineCounter {
16398
16398
  constructor() {
@@ -16420,7 +16420,7 @@ var require_line_counter = __commonJS((exports) => {
16420
16420
  exports.LineCounter = LineCounter;
16421
16421
  });
16422
16422
 
16423
- // node_modules/yaml/dist/parse/parser.js
16423
+ // ../../../node_modules/yaml/dist/parse/parser.js
16424
16424
  var require_parser = __commonJS((exports) => {
16425
16425
  var node_process = __require("process");
16426
16426
  var cst = require_cst();
@@ -17269,7 +17269,7 @@ var require_parser = __commonJS((exports) => {
17269
17269
  exports.Parser = Parser;
17270
17270
  });
17271
17271
 
17272
- // node_modules/yaml/dist/public-api.js
17272
+ // ../../../node_modules/yaml/dist/public-api.js
17273
17273
  var require_public_api = __commonJS((exports) => {
17274
17274
  var composer = require_composer();
17275
17275
  var Document = require_Document();
@@ -17363,7 +17363,7 @@ var require_public_api = __commonJS((exports) => {
17363
17363
  exports.stringify = stringify;
17364
17364
  });
17365
17365
 
17366
- // node_modules/yaml/dist/index.js
17366
+ // ../../../node_modules/yaml/dist/index.js
17367
17367
  var composer, Document, Schema, errors4, Alias, identity, Pair, Scalar, YAMLMap, YAMLSeq, cst, lexer, lineCounter, parser, publicApi, visit, $Composer, $Document, $Schema, $YAMLError, $YAMLParseError, $YAMLWarning, $Alias, $isAlias, $isCollection, $isDocument, $isMap, $isNode, $isPair, $isScalar, $isSeq, $Pair, $Scalar, $YAMLMap, $YAMLSeq, $Lexer, $LineCounter, $Parser, $parse, $parseAllDocuments, $parseDocument, $stringify, $visit, $visitAsync;
17368
17368
  var init_dist = __esm(() => {
17369
17369
  composer = require_composer();
@@ -17412,7 +17412,7 @@ var init_dist = __esm(() => {
17412
17412
  $visitAsync = visit.visitAsync;
17413
17413
  });
17414
17414
 
17415
- // node_modules/zod/index.js
17415
+ // ../../../node_modules/zod/index.js
17416
17416
  var init_zod = __esm(() => {
17417
17417
  init_external();
17418
17418
  init_external();
@@ -17511,7 +17511,7 @@ ${result.warnings.map((w) => ` \u26A0 ${w}`).join(`
17511
17511
  const raw = JSON.parse(jsonContent);
17512
17512
  return SpecialistSchema.parseAsync(raw);
17513
17513
  }
17514
- var KebabCase, Semver, MetadataSchema, ExecutionSchema, PromptSchema2, ScriptEntrySchema, SkillsSchema, CapabilitiesSchema, CommunicationSchema, ValidationSchema, StallDetectionSchema, SpecialistSchema;
17514
+ var KebabCase, Semver, MetadataSchema, ExecutionSchema, PromptSchema2, ScriptEntrySchema, SkillsSchema, CapabilitiesSchema, CommunicationSchema, ValidationSchema, MandatoryRuleSchema, MandatoryRulesSchema, StallDetectionSchema, SpecialistSchema;
17515
17515
  var init_schema = __esm(() => {
17516
17516
  init_zod();
17517
17517
  KebabCase = stringType().regex(/^[a-z][a-z0-9-]*$/, "Must be kebab-case");
@@ -17580,6 +17580,17 @@ var init_schema = __esm(() => {
17580
17580
  files_to_watch: arrayType(stringType()).optional(),
17581
17581
  stale_threshold_days: numberType().optional()
17582
17582
  }).optional();
17583
+ MandatoryRuleSchema = objectType({
17584
+ id: stringType(),
17585
+ level: enumType(["error", "warn", "info"]).default("error"),
17586
+ text: stringType(),
17587
+ when: stringType().optional()
17588
+ });
17589
+ MandatoryRulesSchema = objectType({
17590
+ template_sets: arrayType(KebabCase).default([]),
17591
+ disable_default_globals: booleanType().default(false),
17592
+ inline_rules: arrayType(MandatoryRuleSchema).default([])
17593
+ }).optional();
17583
17594
  StallDetectionSchema = objectType({
17584
17595
  running_silence_warn_ms: numberType().optional(),
17585
17596
  running_silence_error_ms: numberType().optional(),
@@ -17596,6 +17607,7 @@ var init_schema = __esm(() => {
17596
17607
  communication: CommunicationSchema,
17597
17608
  validation: ValidationSchema,
17598
17609
  stall_detection: StallDetectionSchema,
17610
+ mandatory_rules: MandatoryRulesSchema,
17599
17611
  output_file: stringType().optional(),
17600
17612
  beads_integration: enumType(["auto", "always", "never"]).default("auto"),
17601
17613
  beads_write_notes: booleanType().default(true),
@@ -18750,6 +18762,152 @@ function stripJsonFences(text) {
18750
18762
  return text.replace(/^```(?:json)?\s*/i, "").replace(/\s*```$/i, "").trim();
18751
18763
  }
18752
18764
 
18765
+ // src/specialist/mandatory-rules.ts
18766
+ import { existsSync as existsSync3, readFileSync } from "fs";
18767
+ import { resolve as resolve2 } from "path";
18768
+ function readJsonFile(filePath) {
18769
+ return JSON.parse(readFileSync(filePath, "utf8"));
18770
+ }
18771
+ function loadMandatoryRulesIndex(cwd) {
18772
+ const indexPath = resolve2(cwd, "config/mandatory-rules/index.json");
18773
+ if (!existsSync3(indexPath)) {
18774
+ console.warn("[specialist runner] Missing config/mandatory-rules/index.json; skipping MANDATORY_RULES injection");
18775
+ return null;
18776
+ }
18777
+ return readJsonFile(indexPath);
18778
+ }
18779
+ function parseQuotedScalar(value) {
18780
+ const trimmed = value.trim();
18781
+ if (trimmed.startsWith('"') && trimmed.endsWith('"') || trimmed.startsWith("'") && trimmed.endsWith("'")) {
18782
+ return trimmed.slice(1, -1);
18783
+ }
18784
+ return trimmed;
18785
+ }
18786
+ function parseRuleEntry(lines, startIndex) {
18787
+ const entryLine = lines[startIndex]?.trim();
18788
+ if (!entryLine?.startsWith("- "))
18789
+ return null;
18790
+ const firstLine = entryLine.slice(2).trim();
18791
+ const inlineFields = {};
18792
+ if (firstLine.length > 0 && !firstLine.includes(":")) {
18793
+ inlineFields.text = parseQuotedScalar(firstLine);
18794
+ } else if (firstLine.length > 0) {
18795
+ const [key, ...rest] = firstLine.split(":");
18796
+ inlineFields[key.trim()] = parseQuotedScalar(rest.join(":"));
18797
+ }
18798
+ let nextIndex = startIndex + 1;
18799
+ while (nextIndex < lines.length) {
18800
+ const line = lines[nextIndex];
18801
+ if (!line.trim()) {
18802
+ nextIndex += 1;
18803
+ continue;
18804
+ }
18805
+ if (/^\s*-\s+/.test(line))
18806
+ break;
18807
+ if (!/^\s+/.test(line))
18808
+ break;
18809
+ const trimmed = line.trim();
18810
+ const match = trimmed.match(/^([A-Za-z0-9_]+):\s*(.*)$/);
18811
+ if (!match) {
18812
+ nextIndex += 1;
18813
+ continue;
18814
+ }
18815
+ inlineFields[match[1]] = parseQuotedScalar(match[2]);
18816
+ nextIndex += 1;
18817
+ }
18818
+ if (!inlineFields.text)
18819
+ return null;
18820
+ return {
18821
+ rule: {
18822
+ id: inlineFields.id ?? "",
18823
+ level: inlineFields.level ?? "required",
18824
+ text: inlineFields.text,
18825
+ ...inlineFields.when ? { when: inlineFields.when } : {}
18826
+ },
18827
+ nextIndex
18828
+ };
18829
+ }
18830
+ function parseMandatoryRulesFrontmatter(content, setId) {
18831
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n?/);
18832
+ if (!frontmatterMatch)
18833
+ return [];
18834
+ const lines = frontmatterMatch[1].split(`
18835
+ `);
18836
+ const rulesHeaderIndex = lines.findIndex((line) => /^rules:\s*$/.test(line.trim()));
18837
+ if (rulesHeaderIndex === -1)
18838
+ return [];
18839
+ const rules = [];
18840
+ let index = rulesHeaderIndex + 1;
18841
+ while (index < lines.length) {
18842
+ const line = lines[index];
18843
+ if (!line.trim()) {
18844
+ index += 1;
18845
+ continue;
18846
+ }
18847
+ if (!/^\s*-\s+/.test(line))
18848
+ break;
18849
+ const parsed = parseRuleEntry(lines, index);
18850
+ if (!parsed)
18851
+ break;
18852
+ const ruleIndex = rules.length + 1;
18853
+ rules.push({
18854
+ id: parsed.rule.id || `${setId}-${ruleIndex}`,
18855
+ level: parsed.rule.level,
18856
+ text: parsed.rule.text,
18857
+ ...parsed.rule.when ? { when: parsed.rule.when } : {}
18858
+ });
18859
+ index = parsed.nextIndex;
18860
+ }
18861
+ return rules;
18862
+ }
18863
+ function readMandatoryRuleSet(cwd, id) {
18864
+ const candidates = [
18865
+ resolve2(cwd, `.specialists/mandatory-rules/${id}.md`),
18866
+ resolve2(cwd, `config/mandatory-rules/${id}.md`)
18867
+ ];
18868
+ const filePath = candidates.find((path) => existsSync3(path));
18869
+ if (!filePath)
18870
+ return null;
18871
+ const content = readFileSync(filePath, "utf8");
18872
+ const rules = parseMandatoryRulesFrontmatter(content, id);
18873
+ if (rules.length > 0)
18874
+ return { id, rules };
18875
+ const body = content.replace(/^---\n[\s\S]*?\n---\n?/, "").trim();
18876
+ if (!body)
18877
+ return null;
18878
+ return {
18879
+ id,
18880
+ rules: [{ id: `${id}-1`, level: "required", text: body.replace(/\s+/g, " ") }]
18881
+ };
18882
+ }
18883
+ function formatMandatoryRulesBlock(sets) {
18884
+ if (sets.length === 0)
18885
+ return "";
18886
+ const sections = sets.map((set2) => {
18887
+ const rules = set2.rules.map((rule) => `- [${rule.level}] ${rule.text}`).join(`
18888
+ `);
18889
+ return `### ${set2.id}
18890
+ ${rules}`;
18891
+ });
18892
+ return `## MANDATORY_RULES
18893
+ ${sections.join(`
18894
+
18895
+ `)}`;
18896
+ }
18897
+ function buildMandatoryRulesBlock(specialistConfig) {
18898
+ const cwd = specialistConfig.cwd ?? process.cwd();
18899
+ const index = loadMandatoryRulesIndex(cwd);
18900
+ if (!index)
18901
+ return "";
18902
+ const setIds = [
18903
+ ...index.required_template_sets ?? [],
18904
+ ...index.default_template_sets ?? []
18905
+ ];
18906
+ const sets = setIds.map((id) => readMandatoryRuleSet(cwd, id)).filter((set2) => set2 !== null);
18907
+ return formatMandatoryRulesBlock(sets);
18908
+ }
18909
+ var init_mandatory_rules = () => {};
18910
+
18753
18911
  // src/specialist/beads.ts
18754
18912
  import { spawnSync } from "child_process";
18755
18913
  function buildBeadContext(bead, completedBlockers = []) {
@@ -18903,7 +19061,7 @@ function shouldCreateBead(beadsIntegration, permissionRequired) {
18903
19061
  var init_beads = () => {};
18904
19062
 
18905
19063
  // src/specialist/observability-db.ts
18906
- import { chmodSync, existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync, writeFileSync as writeFileSync2 } from "fs";
19064
+ import { chmodSync, existsSync as existsSync4, mkdirSync as mkdirSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "fs";
18907
19065
  import { spawnSync as spawnSync2 } from "child_process";
18908
19066
  import { join as join3, sep as sep2 } from "path";
18909
19067
  function resolveGitRootFrom(cwd) {
@@ -18953,7 +19111,7 @@ function resolveObservabilityDbLocation(cwd = process.cwd()) {
18953
19111
  }
18954
19112
  function ensureObservabilityDbFile(location) {
18955
19113
  mkdirSync2(location.dbDirectory, { recursive: true });
18956
- const alreadyExists = existsSync3(location.dbPath);
19114
+ const alreadyExists = existsSync4(location.dbPath);
18957
19115
  if (!alreadyExists) {
18958
19116
  writeFileSync2(location.dbPath, "", { encoding: "utf-8", flag: "wx" });
18959
19117
  }
@@ -18967,7 +19125,7 @@ function ensureGitignoreHasObservabilityDbEntries(gitRoot) {
18967
19125
  ".specialists/db/*.db-wal",
18968
19126
  ".specialists/db/*.db-shm"
18969
19127
  ];
18970
- const existing = existsSync3(gitignorePath) ? readFileSync(gitignorePath, "utf-8") : "";
19128
+ const existing = existsSync4(gitignorePath) ? readFileSync2(gitignorePath, "utf-8") : "";
18971
19129
  const existingLines = new Set(existing.split(/\r?\n/).map((line) => line.trim()).filter(Boolean));
18972
19130
  const missingEntries = requiredEntries.filter((entry) => !existingLines.has(entry));
18973
19131
  if (missingEntries.length === 0) {
@@ -18996,7 +19154,7 @@ var init_observability_db = __esm(() => {
18996
19154
 
18997
19155
  // src/specialist/job-root.ts
18998
19156
  import { spawnSync as spawnSync3 } from "child_process";
18999
- import { dirname as dirname2, join as join4, resolve as resolve2 } from "path";
19157
+ import { dirname as dirname2, join as join4, resolve as resolve3 } from "path";
19000
19158
  function resolveCommonGitRoot(cwd) {
19001
19159
  const result = spawnSync3("git", ["rev-parse", "--git-common-dir"], {
19002
19160
  cwd,
@@ -19008,7 +19166,7 @@ function resolveCommonGitRoot(cwd) {
19008
19166
  const gitCommonDir = result.stdout?.trim();
19009
19167
  if (!gitCommonDir)
19010
19168
  return;
19011
- return dirname2(resolve2(cwd, gitCommonDir));
19169
+ return dirname2(resolve3(cwd, gitCommonDir));
19012
19170
  }
19013
19171
  function resolveJobsDir(cwd = process.cwd()) {
19014
19172
  const commonRoot = resolveCommonGitRoot(cwd) ?? cwd;
@@ -19028,7 +19186,7 @@ function resolveCurrentBranch(cwd = process.cwd()) {
19028
19186
  var init_job_root = () => {};
19029
19187
 
19030
19188
  // src/specialist/observability-sqlite.ts
19031
- import { existsSync as existsSync4, readFileSync as readFileSync2, statSync } from "fs";
19189
+ import { existsSync as existsSync5, readFileSync as readFileSync3, statSync } from "fs";
19032
19190
  import { join as join5 } from "path";
19033
19191
  function loadBunDatabase() {
19034
19192
  if (_probed)
@@ -20632,7 +20790,7 @@ class SqliteClient {
20632
20790
  WHERE worktree_column IS NOT NULL AND worktree_column != ''
20633
20791
  `).all();
20634
20792
  for (const row of worktreeRows) {
20635
- if (existsSync4(row.worktree_column))
20793
+ if (existsSync5(row.worktree_column))
20636
20794
  continue;
20637
20795
  findings.push({
20638
20796
  kind: "stale-pointer",
@@ -20659,10 +20817,10 @@ function hasRunCompleteEvent(jobId, cwd = process.cwd()) {
20659
20817
  sqliteClient?.close();
20660
20818
  }
20661
20819
  const eventsPath = join5(resolveJobsDir(cwd), jobId, "events.jsonl");
20662
- if (!existsSync4(eventsPath))
20820
+ if (!existsSync5(eventsPath))
20663
20821
  return false;
20664
20822
  try {
20665
- const lines = readFileSync2(eventsPath, "utf-8").split(`
20823
+ const lines = readFileSync3(eventsPath, "utf-8").split(`
20666
20824
  `).map((line) => line.trim()).filter((line) => line.length > 0);
20667
20825
  for (const line of lines) {
20668
20826
  const event = JSON.parse(line);
@@ -20678,7 +20836,7 @@ function createObservabilitySqliteClient(cwd = process.cwd()) {
20678
20836
  if (!loadBunDatabase())
20679
20837
  return null;
20680
20838
  const location = resolveObservabilityDbLocation(cwd);
20681
- if (!existsSync4(location.dbPath))
20839
+ if (!existsSync5(location.dbPath))
20682
20840
  return null;
20683
20841
  try {
20684
20842
  const Ctor = loadBunDatabase();
@@ -20926,8 +21084,8 @@ var init_memory_retrieval = __esm(() => {
20926
21084
  import { createHash as createHash2 } from "crypto";
20927
21085
  import { writeFile } from "fs/promises";
20928
21086
  import { execSync as execSync2, spawnSync as spawnSync4 } from "child_process";
20929
- import { existsSync as existsSync5, readFileSync as readFileSync3 } from "fs";
20930
- import { basename as basename2, resolve as resolve3 } from "path";
21087
+ import { existsSync as existsSync6, readFileSync as readFileSync4 } from "fs";
21088
+ import { basename as basename2, resolve as resolve4 } from "path";
20931
21089
  import { homedir as homedir2 } from "os";
20932
21090
  function runScript(command, cwd) {
20933
21091
  const run = (command ?? "").trim();
@@ -20958,7 +21116,7 @@ ${blocks}
20958
21116
  </pre_flight_context>`;
20959
21117
  }
20960
21118
  function resolvePath(p) {
20961
- return p.startsWith("~/") ? resolve3(homedir2(), p.slice(2)) : resolve3(p);
21119
+ return p.startsWith("~/") ? resolve4(homedir2(), p.slice(2)) : resolve4(p);
20962
21120
  }
20963
21121
  function commandExists(cmd) {
20964
21122
  const result = spawnSync4("which", [cmd], { stdio: "ignore" });
@@ -20966,7 +21124,7 @@ function commandExists(cmd) {
20966
21124
  }
20967
21125
  function validateShebang(filePath, errors5) {
20968
21126
  try {
20969
- const head = readFileSync3(filePath, "utf-8").slice(0, 120);
21127
+ const head = readFileSync4(filePath, "utf-8").slice(0, 120);
20970
21128
  if (!head.startsWith("#!"))
20971
21129
  return;
20972
21130
  const shebang = head.split(`
@@ -20996,7 +21154,7 @@ function validateBeforeRun(spec, permissionLevel) {
20996
21154
  const warnings = [];
20997
21155
  for (const p of spec.specialist.skills?.paths ?? []) {
20998
21156
  const abs = resolvePath(p);
20999
- if (!existsSync5(abs))
21157
+ if (!existsSync6(abs))
21000
21158
  warnings.push(` \u26A0 skills.paths: file not found: ${p}`);
21001
21159
  }
21002
21160
  for (const script of spec.specialist.skills?.scripts ?? []) {
@@ -21006,7 +21164,7 @@ function validateBeforeRun(spec, permissionLevel) {
21006
21164
  const isFilePath = run.startsWith("./") || run.startsWith("../") || run.startsWith("/") || run.startsWith("~/");
21007
21165
  if (isFilePath) {
21008
21166
  const abs = resolvePath(run);
21009
- if (!existsSync5(abs)) {
21167
+ if (!existsSync6(abs)) {
21010
21168
  errors5.push(` \u2717 skills.scripts: script not found: ${run}`);
21011
21169
  } else {
21012
21170
  validateShebang(abs, errors5);
@@ -21041,7 +21199,7 @@ ${errors5.join(`
21041
21199
  }
21042
21200
  }
21043
21201
  function sleep(ms) {
21044
- return new Promise((resolve4) => setTimeout(resolve4, ms));
21202
+ return new Promise((resolve5) => setTimeout(resolve5, ms));
21045
21203
  }
21046
21204
  function getRetryDelayMs(attemptNumber) {
21047
21205
  const baseDelay = RETRY_BASE_DELAY_MS * 2 ** Math.max(0, attemptNumber - 1);
@@ -21120,37 +21278,117 @@ function buildOutputContractInstruction(responseFormat, outputType, outputSchema
21120
21278
  ${lines.join(`
21121
21279
  `)}`;
21122
21280
  }
21123
- function buildReviewerDiffContext(cwd, maxFiles = 20) {
21124
- const stat2 = execSync2("git diff --stat", {
21125
- cwd,
21126
- encoding: "utf8",
21127
- timeout: 1e4,
21128
- stdio: ["ignore", "pipe", "pipe"]
21129
- }).trim();
21130
- const files = execSync2("git diff --name-only", {
21131
- cwd,
21132
- encoding: "utf8",
21133
- timeout: 1e4,
21134
- stdio: ["ignore", "pipe", "pipe"]
21135
- }).split(`
21136
- `).map((line) => line.trim()).filter(Boolean).slice(0, maxFiles);
21137
- if (files.length === 0) {
21138
- throw new Error("Reviewer startup blocked: git diff is empty. No patch context to review.");
21139
- }
21140
- const hunks = files.map((file) => {
21141
- const diff = execSync2(`git diff -- ${shellQuote(file)}`, {
21281
+ function readCommandOutput(cwd, command) {
21282
+ try {
21283
+ return execSync2(command, {
21142
21284
  cwd,
21143
21285
  encoding: "utf8",
21144
21286
  timeout: 1e4,
21145
21287
  stdio: ["ignore", "pipe", "pipe"]
21146
21288
  }).trim();
21147
- return diff ? `### ${file}
21289
+ } catch {
21290
+ return "";
21291
+ }
21292
+ }
21293
+ function resolveDefaultBranch(cwd) {
21294
+ const headRef = readCommandOutput(cwd, "git symbolic-ref refs/remotes/origin/HEAD");
21295
+ if (headRef) {
21296
+ return headRef.split("/").pop() ?? "main";
21297
+ }
21298
+ const remoteHead = readCommandOutput(cwd, "git remote show origin");
21299
+ const match = remoteHead.match(/HEAD branch:\s*(.+)/);
21300
+ return match?.[1]?.trim() || "main";
21301
+ }
21302
+ function readMergeBase(cwd) {
21303
+ const baseBranch = resolveDefaultBranch(cwd);
21304
+ return readCommandOutput(cwd, `git merge-base ${shellQuote(baseBranch)} HEAD`);
21305
+ }
21306
+ function extractInjectedFileDiff(hunks, file) {
21307
+ const marker = `### ${file}
21308
+ `;
21309
+ const start = hunks.indexOf(marker);
21310
+ if (start < 0)
21311
+ return "";
21312
+ const rest = hunks.slice(start + marker.length);
21313
+ const nextHeader = rest.indexOf(`
21314
+
21315
+ ### `);
21316
+ return (nextHeader >= 0 ? rest.slice(0, nextHeader) : rest).trim();
21317
+ }
21318
+ function parseInjectedReviewerDiffContext(variables) {
21319
+ const source = variables?.reviewer_diff_source?.trim();
21320
+ const stat2 = variables?.reviewer_diff_stat?.trim();
21321
+ const filesRaw = variables?.reviewer_diff_files?.trim();
21322
+ const hunks = variables?.reviewer_diff_hunks?.trim();
21323
+ if (!source || !filesRaw || !hunks)
21324
+ return null;
21325
+ const files = filesRaw.split(`
21326
+ `).map((line) => line.trim()).filter(Boolean);
21327
+ if (files.length === 0)
21328
+ return null;
21329
+ return {
21330
+ source,
21331
+ stat: stat2 || "(no stat)",
21332
+ files,
21333
+ hunks
21334
+ };
21335
+ }
21336
+ function getPatchSources(cwd, variables) {
21337
+ const mergeBase = readMergeBase(cwd);
21338
+ const injectedContext = parseInjectedReviewerDiffContext(variables);
21339
+ return [
21340
+ ...injectedContext ? [{
21341
+ source: injectedContext.source,
21342
+ stat: injectedContext.stat,
21343
+ files: injectedContext.files,
21344
+ diffForFile: (file) => extractInjectedFileDiff(injectedContext.hunks, file)
21345
+ }] : [],
21346
+ {
21347
+ source: "unstaged diff",
21348
+ stat: readCommandOutput(cwd, "git diff --stat"),
21349
+ files: readCommandOutput(cwd, "git diff --name-only").split(`
21350
+ `).map((line) => line.trim()).filter(Boolean),
21351
+ diffForFile: (file) => readCommandOutput(cwd, `git diff -- ${shellQuote(file)}`)
21352
+ },
21353
+ {
21354
+ source: "staged diff",
21355
+ stat: readCommandOutput(cwd, "git diff --cached --stat"),
21356
+ files: readCommandOutput(cwd, "git diff --cached --name-only").split(`
21357
+ `).map((line) => line.trim()).filter(Boolean),
21358
+ diffForFile: (file) => readCommandOutput(cwd, `git diff --cached -- ${shellQuote(file)}`)
21359
+ },
21360
+ {
21361
+ source: "branch-vs-base diff",
21362
+ stat: mergeBase ? readCommandOutput(cwd, `git diff --stat ${shellQuote(mergeBase)}..HEAD`) : "",
21363
+ files: mergeBase ? readCommandOutput(cwd, `git diff --name-only ${shellQuote(mergeBase)}..HEAD`).split(`
21364
+ `).map((line) => line.trim()).filter(Boolean) : [],
21365
+ diffForFile: (file) => mergeBase ? readCommandOutput(cwd, `git diff ${shellQuote(mergeBase)}..HEAD -- ${shellQuote(file)}`) : ""
21366
+ }
21367
+ ];
21368
+ }
21369
+ function buildReviewerDiffContext(cwd, variables, maxFiles = 20) {
21370
+ for (const source of getPatchSources(cwd, variables)) {
21371
+ const files = source.files.slice(0, maxFiles);
21372
+ if (files.length === 0)
21373
+ continue;
21374
+ const hunks = files.map((file) => {
21375
+ const diff = source.diffForFile(file);
21376
+ return diff ? `### ${file}
21148
21377
  ${diff}` : `### ${file}
21149
21378
  (no hunks)`;
21150
- }).join(`
21379
+ }).join(`
21151
21380
 
21152
21381
  `);
21153
- return { stat: stat2, files, hunks };
21382
+ if (hunks.trim()) {
21383
+ return {
21384
+ source: source.source,
21385
+ stat: source.stat,
21386
+ files,
21387
+ hunks
21388
+ };
21389
+ }
21390
+ }
21391
+ throw new Error("Reviewer startup blocked: no patch context found in injected diff, unstaged diff, staged diff, or branch-vs-base diff.");
21154
21392
  }
21155
21393
  function buildReviewerDiffInstruction(context) {
21156
21394
  return `
@@ -21160,6 +21398,9 @@ function buildReviewerDiffInstruction(context) {
21160
21398
  Review only patch below. Ignore unrelated files, repo-wide exploration, and filesystem hunting.
21161
21399
  If patch context is empty, stop and fail fast.
21162
21400
 
21401
+ Patch source:
21402
+ ${context.source}
21403
+
21163
21404
  Diff stat:
21164
21405
  ${context.stat || "(no stat)"}
21165
21406
 
@@ -21332,7 +21573,7 @@ ${buildBeadBoundaryInstruction(runCwd, options.worktreeBoundary)}`.trim();
21332
21573
  execution.extensions?.gitnexus === false ? "pi-gitnexus" : undefined
21333
21574
  ].filter((value) => Boolean(value));
21334
21575
  validateBeforeRun(spec, permissionLevel);
21335
- const runCwd = resolve3(options.workingDirectory ?? process.cwd());
21576
+ const runCwd = resolve4(options.workingDirectory ?? process.cwd());
21336
21577
  const preScripts = spec.specialist.skills?.scripts?.filter((s) => s.phase === "pre") ?? [];
21337
21578
  const preResults = preScripts.map((s) => runScript(s.run ?? s.path, runCwd)).filter((_, i) => preScripts[i].inject_output);
21338
21579
  const preScriptOutput = formatScriptOutput(preResults);
@@ -21357,7 +21598,23 @@ ${buildBeadBoundaryInstruction(runCwd, options.worktreeBoundary)}`.trim();
21357
21598
  ...beadVariables
21358
21599
  };
21359
21600
  const taskTemplate = options.inputBeadId ? renderTemplate(prompt.task_template, beadTemplateVariables) : prompt.task_template;
21360
- const renderedTask = renderTemplate(taskTemplate, variables);
21601
+ let renderedTask = renderTemplate(taskTemplate, variables);
21602
+ let mandatoryRulesBlock = "";
21603
+ try {
21604
+ mandatoryRulesBlock = buildMandatoryRulesBlock({ cwd: runCwd });
21605
+ if (mandatoryRulesBlock.trim()) {
21606
+ const rulesTokens = Math.ceil(mandatoryRulesBlock.length / 4);
21607
+ if (rulesTokens <= 2000) {
21608
+ renderedTask = `${renderedTask}
21609
+
21610
+ ${mandatoryRulesBlock}`;
21611
+ } else {
21612
+ console.warn(`[specialist runner] Skipping MANDATORY_RULES injection: rules block too large (${rulesTokens} tokens, limit 2000)`);
21613
+ }
21614
+ }
21615
+ } catch (error2) {
21616
+ console.warn(`[specialist runner] Skipping MANDATORY_RULES injection: ${String(error2)}`);
21617
+ }
21361
21618
  const promptHash = createHash2("sha256").update(renderedTask).digest("hex").slice(0, 16);
21362
21619
  await hooks.emit("post_render", invocationId, metadata.name, metadata.version, {
21363
21620
  prompt_hash: promptHash,
@@ -21398,8 +21655,8 @@ Respond like smart caveman. Cut all filler, keep technical substance.
21398
21655
  ---
21399
21656
  `;
21400
21657
  try {
21401
- const gitnexusMetaPath = resolve3(runCwd, ".gitnexus/meta.json");
21402
- if (existsSync5(gitnexusMetaPath)) {
21658
+ const gitnexusMetaPath = resolve4(runCwd, ".gitnexus/meta.json");
21659
+ if (existsSync6(gitnexusMetaPath)) {
21403
21660
  agentsMd += `
21404
21661
 
21405
21662
  ---
@@ -21452,8 +21709,8 @@ ${memoryInjection.block}
21452
21709
  memoryTokens = memoryInjection.estimatedTokens;
21453
21710
  }
21454
21711
  try {
21455
- const gitnexusMetaPath = resolve3(runCwd, ".gitnexus/meta.json");
21456
- if (existsSync5(gitnexusMetaPath)) {
21712
+ const gitnexusMetaPath = resolve4(runCwd, ".gitnexus/meta.json");
21713
+ if (existsSync6(gitnexusMetaPath)) {
21457
21714
  const symbolCandidates = (beadForMemory.title.match(/\b(?:[A-Z][a-z0-9]+(?:[A-Z][a-z0-9]+)+|[a-z]+[A-Z][A-Za-z0-9]*)\b/g) ?? []).slice(0, 2);
21458
21715
  const summaries = [];
21459
21716
  for (const symbol of symbolCandidates) {
@@ -21503,8 +21760,37 @@ ${summaries.join(`
21503
21760
  }
21504
21761
  })
21505
21762
  });
21763
+ const mandatoryRulesInjection = (() => {
21764
+ if (!mandatoryRulesBlock.trim())
21765
+ return null;
21766
+ const setsLoaded = mandatoryRulesBlock.match(/^###\s+(.+)$/gm)?.map((line) => line.replace(/^###\s+/, "").trim()) ?? [];
21767
+ const ruleCount = (mandatoryRulesBlock.match(/^- \[[^\]]+\]/gm) ?? []).length;
21768
+ const payload = {
21769
+ source: "mandatory_rules_injection",
21770
+ data: {
21771
+ sets_loaded: setsLoaded,
21772
+ rules_count: ruleCount,
21773
+ inline_rules_count: ruleCount,
21774
+ globals_disabled: false,
21775
+ token_estimate: estimateInjectedTokens(mandatoryRulesBlock)
21776
+ }
21777
+ };
21778
+ return {
21779
+ payload,
21780
+ summary: JSON.stringify({
21781
+ kind: "meta",
21782
+ ...payload
21783
+ })
21784
+ };
21785
+ })();
21786
+ if (mandatoryRulesInjection) {
21787
+ onEvent?.("meta", {
21788
+ ...mandatoryRulesInjection.payload,
21789
+ summary: mandatoryRulesInjection.summary
21790
+ });
21791
+ }
21506
21792
  if (metadata.name === "reviewer" && options.reusedFromJobId) {
21507
- const reviewerDiffContext = buildReviewerDiffContext(runCwd);
21793
+ const reviewerDiffContext = buildReviewerDiffContext(runCwd, options.variables);
21508
21794
  agentsMd += buildReviewerDiffInstruction(reviewerDiffContext);
21509
21795
  }
21510
21796
  const responseFormat = execution.response_format ?? "text";
@@ -21723,6 +22009,7 @@ var PERMISSION_GATED_TOOLS, RETRY_BASE_DELAY_MS = 1000, RETRY_MAX_JITTER = 0.2,
21723
22009
  var init_runner = __esm(() => {
21724
22010
  init_session();
21725
22011
  init_circuitBreaker();
22012
+ init_mandatory_rules();
21726
22013
  init_beads();
21727
22014
  init_memory_retrieval();
21728
22015
  PERMISSION_GATED_TOOLS = {
@@ -21964,16 +22251,16 @@ __export(exports_version, {
21964
22251
  import { createRequire } from "module";
21965
22252
  import { fileURLToPath } from "url";
21966
22253
  import { dirname as dirname4, join as join7 } from "path";
21967
- import { existsSync as existsSync6 } from "fs";
22254
+ import { existsSync as existsSync7 } from "fs";
21968
22255
  async function run2() {
21969
22256
  const req = createRequire(import.meta.url);
21970
22257
  const here = dirname4(fileURLToPath(import.meta.url));
21971
22258
  const bundlePkgPath = join7(here, "..", "package.json");
21972
22259
  const sourcePkgPath = join7(here, "..", "..", "package.json");
21973
22260
  let pkg;
21974
- if (existsSync6(bundlePkgPath)) {
22261
+ if (existsSync7(bundlePkgPath)) {
21975
22262
  pkg = req("../package.json");
21976
- } else if (existsSync6(sourcePkgPath)) {
22263
+ } else if (existsSync7(sourcePkgPath)) {
21977
22264
  pkg = req("../../package.json");
21978
22265
  } else {
21979
22266
  console.error("Cannot find package.json");
@@ -22121,6 +22408,17 @@ function mapCallbackEventToTimelineEvent(callbackEvent, context) {
22121
22408
  backend: "injected",
22122
22409
  ...context.memoryInjection ? { memory_injection: context.memoryInjection } : {}
22123
22410
  };
22411
+ case "meta": {
22412
+ const payload = context.metaPayload;
22413
+ return {
22414
+ t,
22415
+ type: TIMELINE_EVENT_TYPES.META,
22416
+ model: payload?.model ?? "meta",
22417
+ backend: payload?.backend ?? "injected",
22418
+ ...payload?.source ? { source: payload.source } : {},
22419
+ ...payload?.data ? { data: payload.data } : {}
22420
+ };
22421
+ }
22124
22422
  case "text":
22125
22423
  return {
22126
22424
  t,
@@ -22400,7 +22698,7 @@ var init_epic_lifecycle = __esm(() => {
22400
22698
  });
22401
22699
 
22402
22700
  // src/specialist/process-liveness.ts
22403
- import { readFileSync as readFileSync4 } from "fs";
22701
+ import { readFileSync as readFileSync5 } from "fs";
22404
22702
  function isValidPid(pid) {
22405
22703
  return Number.isInteger(pid) && pid > 0;
22406
22704
  }
@@ -22414,7 +22712,7 @@ function isAliveBySignal(pid) {
22414
22712
  }
22415
22713
  function parseBootTimeMs() {
22416
22714
  try {
22417
- const procStat = readFileSync4("/proc/stat", "utf-8");
22715
+ const procStat = readFileSync5("/proc/stat", "utf-8");
22418
22716
  const bootLine = procStat.split(`
22419
22717
  `).find((line) => line.startsWith("btime "));
22420
22718
  if (!bootLine)
@@ -22429,7 +22727,7 @@ function parseBootTimeMs() {
22429
22727
  }
22430
22728
  function parseProcessStartTimeMs(pid) {
22431
22729
  try {
22432
- const statRaw = readFileSync4(`/proc/${pid}/stat`, "utf-8");
22730
+ const statRaw = readFileSync5(`/proc/${pid}/stat`, "utf-8");
22433
22731
  const closeParenIndex = statRaw.lastIndexOf(")");
22434
22732
  if (closeParenIndex < 0)
22435
22733
  return;
@@ -22791,12 +23089,12 @@ var init_tmux_utils = () => {};
22791
23089
  import {
22792
23090
  appendFileSync,
22793
23091
  closeSync,
22794
- existsSync as existsSync7,
23092
+ existsSync as existsSync8,
22795
23093
  fsyncSync,
22796
23094
  mkdirSync as mkdirSync3,
22797
23095
  openSync,
22798
23096
  readdirSync,
22799
- readFileSync as readFileSync5,
23097
+ readFileSync as readFileSync6,
22800
23098
  renameSync,
22801
23099
  rmSync,
22802
23100
  statSync as statSync2,
@@ -23136,8 +23434,8 @@ class Supervisor {
23136
23434
  } finally {
23137
23435
  this.pendingSqliteOperations -= 1;
23138
23436
  if (this.pendingSqliteOperations === 0) {
23139
- for (const resolve4 of this.pendingSqliteDrainResolvers) {
23140
- resolve4();
23437
+ for (const resolve5 of this.pendingSqliteDrainResolvers) {
23438
+ resolve5();
23141
23439
  }
23142
23440
  this.pendingSqliteDrainResolvers.clear();
23143
23441
  }
@@ -23146,8 +23444,8 @@ class Supervisor {
23146
23444
  async waitForPendingSqliteOperations() {
23147
23445
  if (this.pendingSqliteOperations === 0)
23148
23446
  return;
23149
- await new Promise((resolve4) => {
23150
- this.pendingSqliteDrainResolvers.add(resolve4);
23447
+ await new Promise((resolve5) => {
23448
+ this.pendingSqliteDrainResolvers.add(resolve5);
23151
23449
  });
23152
23450
  }
23153
23451
  async dispose() {
@@ -23207,10 +23505,10 @@ class Supervisor {
23207
23505
  }
23208
23506
  }
23209
23507
  const path = this.statusPath(id);
23210
- if (!existsSync7(path))
23508
+ if (!existsSync8(path))
23211
23509
  return null;
23212
23510
  try {
23213
- const status = JSON.parse(readFileSync5(path, "utf-8"));
23511
+ const status = JSON.parse(readFileSync6(path, "utf-8"));
23214
23512
  return this.withComputedLiveness(status);
23215
23513
  } catch {
23216
23514
  return null;
@@ -23244,15 +23542,15 @@ class Supervisor {
23244
23542
  console.warn(`[supervisor] SQLite listStatuses failed, falling back to file state: ${String(error2)}`);
23245
23543
  }
23246
23544
  }
23247
- if (!existsSync7(this.resolvedJobsDir))
23545
+ if (!existsSync8(this.resolvedJobsDir))
23248
23546
  return [];
23249
23547
  const jobs = [];
23250
23548
  for (const entry of readdirSync(this.resolvedJobsDir)) {
23251
23549
  const path = join8(this.resolvedJobsDir, entry, "status.json");
23252
- if (!existsSync7(path))
23550
+ if (!existsSync8(path))
23253
23551
  continue;
23254
23552
  try {
23255
- const status = JSON.parse(readFileSync5(path, "utf-8"));
23553
+ const status = JSON.parse(readFileSync6(path, "utf-8"));
23256
23554
  jobs.push(this.withComputedLiveness(status));
23257
23555
  } catch {}
23258
23556
  }
@@ -23326,7 +23624,7 @@ class Supervisor {
23326
23624
  }
23327
23625
  }
23328
23626
  gc() {
23329
- if (!existsSync7(this.resolvedJobsDir))
23627
+ if (!existsSync8(this.resolvedJobsDir))
23330
23628
  return;
23331
23629
  const cutoff = Date.now() - JOB_TTL_DAYS * 86400000;
23332
23630
  for (const entry of readdirSync(this.resolvedJobsDir)) {
@@ -23341,7 +23639,7 @@ class Supervisor {
23341
23639
  }
23342
23640
  }
23343
23641
  crashRecovery() {
23344
- if (!existsSync7(this.resolvedJobsDir))
23642
+ if (!existsSync8(this.resolvedJobsDir))
23345
23643
  return;
23346
23644
  const thresholds = {
23347
23645
  ...STALL_DETECTION_DEFAULTS,
@@ -23350,10 +23648,10 @@ class Supervisor {
23350
23648
  const now = Date.now();
23351
23649
  for (const entry of readdirSync(this.resolvedJobsDir)) {
23352
23650
  const statusPath = join8(this.resolvedJobsDir, entry, "status.json");
23353
- if (!existsSync7(statusPath))
23651
+ if (!existsSync8(statusPath))
23354
23652
  continue;
23355
23653
  try {
23356
- const s = JSON.parse(readFileSync5(statusPath, "utf-8"));
23654
+ const s = JSON.parse(readFileSync6(statusPath, "utf-8"));
23357
23655
  if (s.status === "running" || s.status === "starting") {
23358
23656
  if (!s.pid)
23359
23657
  continue;
@@ -23574,8 +23872,8 @@ class Supervisor {
23574
23872
  let keepAliveExitResolved = false;
23575
23873
  let isReadOnlySpecialist = false;
23576
23874
  let resolveKeepAliveExit;
23577
- const keepAliveExitPromise = new Promise((resolve4) => {
23578
- resolveKeepAliveExit = resolve4;
23875
+ const keepAliveExitPromise = new Promise((resolve5) => {
23876
+ resolveKeepAliveExit = resolve5;
23579
23877
  });
23580
23878
  const finishKeepAlive = (exit) => {
23581
23879
  if (keepAliveExitResolved)
@@ -23817,29 +24115,35 @@ ${appendError}
23817
24115
  }
23818
24116
  const toolCallId = details?.toolCallId;
23819
24117
  const toolState = toolCallId ? activeToolCalls.get(toolCallId) : latestUncorrelatedToolState;
23820
- const memoryInjection = (() => {
23821
- if (eventType !== "memory_injection" || !details?.summary)
24118
+ const parsedMeta = (() => {
24119
+ if (eventType !== "memory_injection" && eventType !== "meta" || !details?.summary)
23822
24120
  return;
23823
24121
  try {
23824
- const parsed = JSON.parse(details.summary);
23825
- const injection = parsed.memory_injection;
23826
- if (!injection)
23827
- return;
23828
- return {
23829
- static_tokens: injection.static_tokens ?? 0,
23830
- memory_tokens: injection.memory_tokens ?? 0,
23831
- gitnexus_tokens: injection.gitnexus_tokens ?? 0,
23832
- total_tokens: injection.total_tokens ?? 0
23833
- };
24122
+ return JSON.parse(details.summary);
23834
24123
  } catch {
23835
24124
  return;
23836
24125
  }
23837
24126
  })();
23838
- if (eventType === "memory_injection" && memoryInjection) {
24127
+ const metaDetails = details;
24128
+ const memoryInjection = parsedMeta?.memory_injection ? {
24129
+ static_tokens: parsedMeta.memory_injection.static_tokens ?? 0,
24130
+ memory_tokens: parsedMeta.memory_injection.memory_tokens ?? 0,
24131
+ gitnexus_tokens: parsedMeta.memory_injection.gitnexus_tokens ?? 0,
24132
+ total_tokens: parsedMeta.memory_injection.total_tokens ?? 0
24133
+ } : undefined;
24134
+ const mandatoryRulesInjection = parsedMeta?.source === "mandatory_rules_injection" && parsedMeta.data ? {
24135
+ sets_loaded: parsedMeta.data.sets_loaded ?? [],
24136
+ rules_count: parsedMeta.data.rules_count ?? 0,
24137
+ inline_rules_count: parsedMeta.data.inline_rules_count ?? 0,
24138
+ globals_disabled: parsedMeta.data.globals_disabled ?? false,
24139
+ token_estimate: parsedMeta.data.token_estimate ?? 0
24140
+ } : undefined;
24141
+ if (memoryInjection || mandatoryRulesInjection) {
23839
24142
  setStatus({
23840
24143
  startup_context: {
23841
24144
  ...statusSnapshot.startup_context ?? {},
23842
- memory_injection: memoryInjection
24145
+ ...memoryInjection ? { memory_injection: memoryInjection } : {},
24146
+ ...mandatoryRulesInjection ? { mandatory_rules_injection: mandatoryRulesInjection } : {}
23843
24147
  }
23844
24148
  });
23845
24149
  }
@@ -23871,7 +24175,13 @@ ${appendError}
23871
24175
  extension: details?.extension,
23872
24176
  errorMessage: details?.errorMessage
23873
24177
  },
23874
- memoryInjection
24178
+ memoryInjection,
24179
+ metaPayload: eventType === "meta" ? {
24180
+ model: details?.model,
24181
+ backend: metaDetails?.backend,
24182
+ source: metaDetails?.source,
24183
+ data: metaDetails?.data
24184
+ } : undefined
23875
24185
  });
23876
24186
  if (timelineEvent) {
23877
24187
  appendTimelineEvent(timelineEvent);
@@ -23956,7 +24266,7 @@ ${appendError}
23956
24266
  setStatus({ bead_id: beadId });
23957
24267
  }, (fn) => {
23958
24268
  steerFn = fn;
23959
- if (!existsSync7(fifoPath))
24269
+ if (!existsSync8(fifoPath))
23960
24270
  return;
23961
24271
  fifoFd = openSync(fifoPath, "r+");
23962
24272
  fifoReadStream = createReadStream("", { fd: fifoFd, autoClose: false });
@@ -24252,7 +24562,7 @@ ${appendError}
24252
24562
  } catch {}
24253
24563
  closeSync(eventsFd);
24254
24564
  try {
24255
- if (existsSync7(fifoPath))
24565
+ if (existsSync8(fifoPath))
24256
24566
  rmSync(fifoPath);
24257
24567
  } catch {}
24258
24568
  if (statusSnapshot.tmux_session) {
@@ -24301,7 +24611,7 @@ __export(exports_list, {
24301
24611
  ArgParseError: () => ArgParseError
24302
24612
  });
24303
24613
  import { spawnSync as spawnSync7 } from "child_process";
24304
- import { existsSync as existsSync8, readdirSync as readdirSync2, readFileSync as readFileSync6 } from "fs";
24614
+ import { existsSync as existsSync9, readdirSync as readdirSync2, readFileSync as readFileSync7 } from "fs";
24305
24615
  import { join as join9 } from "path";
24306
24616
  import readline from "readline";
24307
24617
  function permissionBadge(permission) {
@@ -24334,14 +24644,14 @@ function toLiveJob(status) {
24334
24644
  }
24335
24645
  function readJobStatus(statusPath) {
24336
24646
  try {
24337
- return JSON.parse(readFileSync6(statusPath, "utf-8"));
24647
+ return JSON.parse(readFileSync7(statusPath, "utf-8"));
24338
24648
  } catch {
24339
24649
  return null;
24340
24650
  }
24341
24651
  }
24342
24652
  function listLiveJobs(showDead) {
24343
24653
  const jobsDir = join9(process.cwd(), ".specialists", "jobs");
24344
- if (!existsSync8(jobsDir))
24654
+ if (!existsSync9(jobsDir))
24345
24655
  return [];
24346
24656
  const jobs = readdirSync2(jobsDir).map((entry) => toLiveJob(readJobStatus(join9(jobsDir, entry, "status.json")))).filter((job) => job !== null).filter((job) => showDead || !job.isDead).sort((a, b) => b.startedAtMs - a.startedAtMs);
24347
24657
  return jobs;
@@ -24360,7 +24670,7 @@ function renderLiveSelector(jobs, selectedIndex) {
24360
24670
  ];
24361
24671
  }
24362
24672
  function selectLiveJob(jobs) {
24363
- return new Promise((resolve4) => {
24673
+ return new Promise((resolve5) => {
24364
24674
  const input = process.stdin;
24365
24675
  const output = process.stdout;
24366
24676
  const wasRawMode = input.isTTY ? input.isRaw : false;
@@ -24376,7 +24686,7 @@ function selectLiveJob(jobs) {
24376
24686
  readline.moveCursor(output, 0, -renderedLineCount);
24377
24687
  readline.clearScreenDown(output);
24378
24688
  }
24379
- resolve4(selected);
24689
+ resolve5(selected);
24380
24690
  };
24381
24691
  const render = () => {
24382
24692
  if (renderedLineCount > 0) {
@@ -24903,9 +25213,9 @@ var exports_init = {};
24903
25213
  __export(exports_init, {
24904
25214
  run: () => run6
24905
25215
  });
24906
- import { copyFileSync, cpSync, existsSync as existsSync9, lstatSync, mkdirSync as mkdirSync4, readdirSync as readdirSync3, readFileSync as readFileSync7, readlinkSync, renameSync as renameSync2, symlinkSync, unlinkSync, writeFileSync as writeFileSync4 } from "fs";
25216
+ import { copyFileSync, cpSync, existsSync as existsSync10, lstatSync, mkdirSync as mkdirSync4, readdirSync as readdirSync3, readFileSync as readFileSync8, readlinkSync, renameSync as renameSync2, symlinkSync, unlinkSync, writeFileSync as writeFileSync4 } from "fs";
24907
25217
  import { spawnSync as spawnSync9 } from "child_process";
24908
- import { basename as basename3, dirname as dirname5, join as join10, relative, resolve as resolve4 } from "path";
25218
+ import { basename as basename3, dirname as dirname5, join as join10, relative, resolve as resolve5 } from "path";
24909
25219
  import { fileURLToPath as fileURLToPath2 } from "url";
24910
25220
  function ok(msg) {
24911
25221
  console.log(` ${green4("\u2713")} ${msg}`);
@@ -24920,7 +25230,7 @@ function isInstalled(bin) {
24920
25230
  return spawnSync9("which", [bin], { encoding: "utf8", timeout: 2000 }).status === 0;
24921
25231
  }
24922
25232
  function assertXtrmPrerequisites(cwd) {
24923
- const hasXtrmDir = existsSync9(join10(cwd, ".xtrm"));
25233
+ const hasXtrmDir = existsSync10(join10(cwd, ".xtrm"));
24924
25234
  const hasXtCli = isInstalled("xt");
24925
25235
  if (hasXtrmDir && hasXtCli)
24926
25236
  return;
@@ -24942,10 +25252,10 @@ function warnMissingOptionalPrerequisites() {
24942
25252
  }
24943
25253
  }
24944
25254
  function loadJson(path, fallback) {
24945
- if (!existsSync9(path))
25255
+ if (!existsSync10(path))
24946
25256
  return structuredClone(fallback);
24947
25257
  try {
24948
- return JSON.parse(readFileSync7(path, "utf-8"));
25258
+ return JSON.parse(readFileSync8(path, "utf-8"));
24949
25259
  } catch {
24950
25260
  return structuredClone(fallback);
24951
25261
  }
@@ -24957,19 +25267,19 @@ function saveJson(path, value) {
24957
25267
  function resolvePackagePath(relativePath) {
24958
25268
  const configPath = `config/${relativePath}`;
24959
25269
  let resolved = fileURLToPath2(new URL(`../${configPath}`, import.meta.url));
24960
- if (existsSync9(resolved))
25270
+ if (existsSync10(resolved))
24961
25271
  return resolved;
24962
25272
  resolved = fileURLToPath2(new URL(`../../${configPath}`, import.meta.url));
24963
- if (existsSync9(resolved))
25273
+ if (existsSync10(resolved))
24964
25274
  return resolved;
24965
25275
  return null;
24966
25276
  }
24967
25277
  function migrateLegacySpecialists(cwd, scope) {
24968
25278
  const sourceDir = join10(cwd, ".specialists", scope, "specialists");
24969
- if (!existsSync9(sourceDir))
25279
+ if (!existsSync10(sourceDir))
24970
25280
  return;
24971
25281
  const targetDir = join10(cwd, ".specialists", scope);
24972
- if (!existsSync9(targetDir)) {
25282
+ if (!existsSync10(targetDir)) {
24973
25283
  mkdirSync4(targetDir, { recursive: true });
24974
25284
  }
24975
25285
  const files = readdirSync3(sourceDir).filter((f) => f.endsWith(".specialist.json") || f.endsWith(".specialist.json"));
@@ -24980,7 +25290,7 @@ function migrateLegacySpecialists(cwd, scope) {
24980
25290
  for (const file of files) {
24981
25291
  const src = join10(sourceDir, file);
24982
25292
  const dest = join10(targetDir, file);
24983
- if (existsSync9(dest)) {
25293
+ if (existsSync10(dest)) {
24984
25294
  skipped++;
24985
25295
  continue;
24986
25296
  }
@@ -25006,7 +25316,7 @@ function copyCanonicalSpecialists(cwd) {
25006
25316
  skip("no specialist files found in package");
25007
25317
  return;
25008
25318
  }
25009
- if (!existsSync9(targetDir)) {
25319
+ if (!existsSync10(targetDir)) {
25010
25320
  mkdirSync4(targetDir, { recursive: true });
25011
25321
  }
25012
25322
  let copied = 0;
@@ -25014,7 +25324,7 @@ function copyCanonicalSpecialists(cwd) {
25014
25324
  for (const file of files) {
25015
25325
  const src = join10(sourceDir, file);
25016
25326
  const dest = join10(targetDir, file);
25017
- if (existsSync9(dest)) {
25327
+ if (existsSync10(dest)) {
25018
25328
  copyFileSync(src, dest);
25019
25329
  refreshed++;
25020
25330
  } else {
@@ -25041,7 +25351,7 @@ function copyCanonicalNodeConfigs(cwd) {
25041
25351
  skip("no node config files found in package");
25042
25352
  return;
25043
25353
  }
25044
- if (!existsSync9(targetDir)) {
25354
+ if (!existsSync10(targetDir)) {
25045
25355
  mkdirSync4(targetDir, { recursive: true });
25046
25356
  }
25047
25357
  let copied = 0;
@@ -25049,7 +25359,7 @@ function copyCanonicalNodeConfigs(cwd) {
25049
25359
  for (const file of files) {
25050
25360
  const src = join10(sourceDir, file);
25051
25361
  const dest = join10(targetDir, file);
25052
- if (existsSync9(dest)) {
25362
+ if (existsSync10(dest)) {
25053
25363
  copyFileSync(src, dest);
25054
25364
  refreshed++;
25055
25365
  } else {
@@ -25088,7 +25398,7 @@ function installProjectHooks(cwd) {
25088
25398
  for (const file of hooks) {
25089
25399
  const src = join10(sourceDir, file);
25090
25400
  const xtrmDest = join10(targetDir, file);
25091
- if (existsSync9(xtrmDest)) {
25401
+ if (existsSync10(xtrmDest)) {
25092
25402
  skippedCopies++;
25093
25403
  } else {
25094
25404
  copyFileSync(src, xtrmDest);
@@ -25096,7 +25406,7 @@ function installProjectHooks(cwd) {
25096
25406
  }
25097
25407
  const claudeHookPath = join10(claudeHooksDir, file);
25098
25408
  const relativeTarget = `../../.xtrm/hooks/specialists/${file}`;
25099
- if (existsSync9(claudeHookPath)) {
25409
+ if (existsSync10(claudeHookPath)) {
25100
25410
  const stats = lstatSync(claudeHookPath);
25101
25411
  if (!stats.isSymbolicLink()) {
25102
25412
  unlinkSync(claudeHookPath);
@@ -25104,7 +25414,7 @@ function installProjectHooks(cwd) {
25104
25414
  rewiredLinks++;
25105
25415
  continue;
25106
25416
  }
25107
- const currentTarget = resolve4(dirname5(claudeHookPath), readlinkSync(claudeHookPath));
25417
+ const currentTarget = resolve5(dirname5(claudeHookPath), readlinkSync(claudeHookPath));
25108
25418
  if (currentTarget !== xtrmDest) {
25109
25419
  unlinkSync(claudeHookPath);
25110
25420
  symlinkSync(relativeTarget, claudeHookPath);
@@ -25131,7 +25441,7 @@ function installProjectHooks(cwd) {
25131
25441
  function ensureProjectHookWiring(cwd) {
25132
25442
  const settingsPath = join10(cwd, ".claude", "settings.json");
25133
25443
  const settingsDir = join10(cwd, ".claude");
25134
- if (!existsSync9(settingsDir)) {
25444
+ if (!existsSync10(settingsDir)) {
25135
25445
  mkdirSync4(settingsDir, { recursive: true });
25136
25446
  }
25137
25447
  const settings = loadJson(settingsPath, {});
@@ -25167,7 +25477,7 @@ function ensureProjectHookWiring(cwd) {
25167
25477
  }
25168
25478
  }
25169
25479
  function ensureRootSymlink(rootPath, expectedTargetPath) {
25170
- if (!existsSync9(rootPath)) {
25480
+ if (!existsSync10(rootPath)) {
25171
25481
  mkdirSync4(dirname5(rootPath), { recursive: true });
25172
25482
  const relTarget = relative(dirname5(rootPath), expectedTargetPath);
25173
25483
  symlinkSync(relTarget, rootPath);
@@ -25179,14 +25489,14 @@ function ensureRootSymlink(rootPath, expectedTargetPath) {
25179
25489
  throw new Error(`${rootPath} must be a symlink to ${expectedTargetPath}. Aborting.`);
25180
25490
  }
25181
25491
  const linkTarget = readlinkSync(rootPath);
25182
- const resolvedTarget = resolve4(dirname5(rootPath), linkTarget);
25183
- const resolvedExpected = resolve4(expectedTargetPath);
25492
+ const resolvedTarget = resolve5(dirname5(rootPath), linkTarget);
25493
+ const resolvedExpected = resolve5(expectedTargetPath);
25184
25494
  if (resolvedTarget === resolvedExpected) {
25185
25495
  return;
25186
25496
  }
25187
25497
  const legacyTargets = [
25188
- resolve4(expectedTargetPath, "claude"),
25189
- resolve4(expectedTargetPath, "pi")
25498
+ resolve5(expectedTargetPath, "claude"),
25499
+ resolve5(expectedTargetPath, "pi")
25190
25500
  ];
25191
25501
  if (legacyTargets.includes(resolvedTarget)) {
25192
25502
  unlinkSync(rootPath);
@@ -25213,14 +25523,14 @@ function ensureActiveSkillSymlink(defaultSkillPath, activeLinkPath) {
25213
25523
  if (!stats.isSymbolicLink()) {
25214
25524
  throw new Error(`${activeLinkPath} already exists and is not a symlink.`);
25215
25525
  }
25216
- const currentTarget = resolve4(dirname5(activeLinkPath), readlinkSync(activeLinkPath));
25217
- if (currentTarget !== resolve4(defaultSkillPath)) {
25526
+ const currentTarget = resolve5(dirname5(activeLinkPath), readlinkSync(activeLinkPath));
25527
+ if (currentTarget !== resolve5(defaultSkillPath)) {
25218
25528
  throw new Error(`${activeLinkPath} points to an unexpected target.`);
25219
25529
  }
25220
25530
  }
25221
25531
  function installProjectSkills(cwd, syncSkills) {
25222
25532
  const xtrmRoot = join10(cwd, ".xtrm");
25223
- if (!existsSync9(xtrmRoot)) {
25533
+ if (!existsSync10(xtrmRoot)) {
25224
25534
  throw new Error(".xtrm/ is missing. Install xtrm first, then run specialists init.");
25225
25535
  }
25226
25536
  const sourceDir = resolvePackagePath("skills");
@@ -25244,7 +25554,7 @@ function installProjectSkills(cwd, syncSkills) {
25244
25554
  for (const skill of skills) {
25245
25555
  const src = join10(sourceDir, skill);
25246
25556
  const defaultSkillPath = join10(defaultRoot, skill);
25247
- if (existsSync9(defaultSkillPath)) {
25557
+ if (existsSync10(defaultSkillPath)) {
25248
25558
  if (syncSkills) {
25249
25559
  cpSync(src, defaultSkillPath, { recursive: true, force: true });
25250
25560
  refreshed++;
@@ -25266,7 +25576,7 @@ function createSpecialistsDirs(cwd) {
25266
25576
  const userDir = join10(cwd, ".specialists", "user");
25267
25577
  let created = 0;
25268
25578
  for (const dir of [defaultDir, userDir]) {
25269
- if (!existsSync9(dir)) {
25579
+ if (!existsSync10(dir)) {
25270
25580
  mkdirSync4(dir, { recursive: true });
25271
25581
  created++;
25272
25582
  }
@@ -25282,7 +25592,7 @@ function createRuntimeDirs(cwd) {
25282
25592
  ];
25283
25593
  let created = 0;
25284
25594
  for (const dir of runtimeDirs) {
25285
- if (!existsSync9(dir)) {
25595
+ if (!existsSync10(dir)) {
25286
25596
  mkdirSync4(dir, { recursive: true });
25287
25597
  created++;
25288
25598
  }
@@ -25306,7 +25616,7 @@ function ensureProjectMcp(cwd) {
25306
25616
  }
25307
25617
  function ensureGitignore(cwd) {
25308
25618
  const gitignorePath = join10(cwd, ".gitignore");
25309
- const existing = existsSync9(gitignorePath) ? readFileSync7(gitignorePath, "utf-8") : "";
25619
+ const existing = existsSync10(gitignorePath) ? readFileSync8(gitignorePath, "utf-8") : "";
25310
25620
  let added = 0;
25311
25621
  const lines = existing.split(`
25312
25622
  `);
@@ -25331,7 +25641,7 @@ function ensureObservabilityDb(cwd) {
25331
25641
  skip("observability DB path resolves inside jobs directory \u2014 skipped");
25332
25642
  return;
25333
25643
  }
25334
- const alreadyExists = existsSync9(location.dbPath);
25644
+ const alreadyExists = existsSync10(location.dbPath);
25335
25645
  if (alreadyExists) {
25336
25646
  skip("observability database already exists (not touched)");
25337
25647
  return;
@@ -25352,8 +25662,8 @@ function ensureObservabilityDb(cwd) {
25352
25662
  }
25353
25663
  function ensureAgentsMd(cwd) {
25354
25664
  const agentsPath = join10(cwd, "AGENTS.md");
25355
- if (existsSync9(agentsPath)) {
25356
- const existing = readFileSync7(agentsPath, "utf-8");
25665
+ if (existsSync10(agentsPath)) {
25666
+ const existing = readFileSync8(agentsPath, "utf-8");
25357
25667
  if (existing.includes(AGENTS_MARKER)) {
25358
25668
  skip("AGENTS.md already has Specialists section");
25359
25669
  } else {
@@ -25368,10 +25678,10 @@ function ensureAgentsMd(cwd) {
25368
25678
  }
25369
25679
  }
25370
25680
  function readJsonObject(path) {
25371
- if (!existsSync9(path))
25681
+ if (!existsSync10(path))
25372
25682
  return {};
25373
25683
  try {
25374
- return JSON.parse(readFileSync7(path, "utf-8"));
25684
+ return JSON.parse(readFileSync8(path, "utf-8"));
25375
25685
  } catch {
25376
25686
  return {};
25377
25687
  }
@@ -25399,14 +25709,14 @@ function hasHookCommand(settings, eventName, command) {
25399
25709
  function validateInitPostconditions(cwd) {
25400
25710
  const warnings = [];
25401
25711
  const xtrmHooksDir = join10(cwd, ".xtrm", "hooks", "specialists");
25402
- const xtrmHookFiles = existsSync9(xtrmHooksDir) ? readdirSync3(xtrmHooksDir).filter((file) => file.endsWith(".mjs")) : [];
25712
+ const xtrmHookFiles = existsSync10(xtrmHooksDir) ? readdirSync3(xtrmHooksDir).filter((file) => file.endsWith(".mjs")) : [];
25403
25713
  if (xtrmHookFiles.length === 0) {
25404
25714
  warnings.push(".xtrm/hooks/specialists/ is missing or has no .mjs hooks");
25405
25715
  }
25406
25716
  const claudeHooksDir = join10(cwd, ".claude", "hooks");
25407
25717
  for (const hookFile of xtrmHookFiles) {
25408
25718
  const claudeHookPath = join10(claudeHooksDir, hookFile);
25409
- if (!existsSync9(claudeHookPath)) {
25719
+ if (!existsSync10(claudeHookPath)) {
25410
25720
  warnings.push(`.claude/hooks/${hookFile} is missing`);
25411
25721
  continue;
25412
25722
  }
@@ -25415,8 +25725,8 @@ function validateInitPostconditions(cwd) {
25415
25725
  warnings.push(`.claude/hooks/${hookFile} is not a symlink`);
25416
25726
  continue;
25417
25727
  }
25418
- const expectedTarget = resolve4(xtrmHooksDir, hookFile);
25419
- const resolvedTarget = resolve4(dirname5(claudeHookPath), readlinkSync(claudeHookPath));
25728
+ const expectedTarget = resolve5(xtrmHooksDir, hookFile);
25729
+ const resolvedTarget = resolve5(dirname5(claudeHookPath), readlinkSync(claudeHookPath));
25420
25730
  if (resolvedTarget !== expectedTarget) {
25421
25731
  warnings.push(`.claude/hooks/${hookFile} points to unexpected target`);
25422
25732
  }
@@ -25441,12 +25751,12 @@ function validateInitPostconditions(cwd) {
25441
25751
  }
25442
25752
  const runtimeDirs = [join10(cwd, ".specialists", "jobs"), join10(cwd, ".specialists", "ready")];
25443
25753
  for (const runtimeDir of runtimeDirs) {
25444
- if (!existsSync9(runtimeDir)) {
25754
+ if (!existsSync10(runtimeDir)) {
25445
25755
  warnings.push(`${relative(cwd, runtimeDir)} is missing`);
25446
25756
  }
25447
25757
  }
25448
25758
  const defaultSkillsRoot = join10(cwd, ".xtrm", "skills", "default");
25449
- const defaultSkills = existsSync9(defaultSkillsRoot) ? readdirSync3(defaultSkillsRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory()) : [];
25759
+ const defaultSkills = existsSync10(defaultSkillsRoot) ? readdirSync3(defaultSkillsRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory()) : [];
25450
25760
  if (defaultSkills.length === 0) {
25451
25761
  warnings.push(".xtrm/skills/default/ is missing or has no skill directories");
25452
25762
  }
@@ -25461,7 +25771,7 @@ function validateInitPostconditions(cwd) {
25461
25771
  }
25462
25772
  ];
25463
25773
  for (const symlink of rootSymlinks) {
25464
- if (!existsSync9(symlink.linkPath)) {
25774
+ if (!existsSync10(symlink.linkPath)) {
25465
25775
  warnings.push(`${relative(cwd, symlink.linkPath)} is missing`);
25466
25776
  continue;
25467
25777
  }
@@ -25470,8 +25780,8 @@ function validateInitPostconditions(cwd) {
25470
25780
  warnings.push(`${relative(cwd, symlink.linkPath)} is not a symlink`);
25471
25781
  continue;
25472
25782
  }
25473
- const resolvedTarget = resolve4(dirname5(symlink.linkPath), readlinkSync(symlink.linkPath));
25474
- if (resolvedTarget !== resolve4(symlink.expectedTarget)) {
25783
+ const resolvedTarget = resolve5(dirname5(symlink.linkPath), readlinkSync(symlink.linkPath));
25784
+ if (resolvedTarget !== resolve5(symlink.expectedTarget)) {
25475
25785
  warnings.push(`${relative(cwd, symlink.linkPath)} points to an unexpected target`);
25476
25786
  }
25477
25787
  }
@@ -25645,8 +25955,8 @@ var exports_db = {};
25645
25955
  __export(exports_db, {
25646
25956
  run: () => run8
25647
25957
  });
25648
- import { existsSync as existsSync10, mkdirSync as mkdirSync5, readdirSync as readdirSync4, readFileSync as readFileSync8, writeFileSync as writeFileSync5 } from "fs";
25649
- import { dirname as dirname6, join as join11, resolve as resolve5 } from "path";
25958
+ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readdirSync as readdirSync4, readFileSync as readFileSync9, writeFileSync as writeFileSync5 } from "fs";
25959
+ import { dirname as dirname6, join as join11, resolve as resolve6 } from "path";
25650
25960
  function formatBytes(bytes) {
25651
25961
  if (bytes < 1024)
25652
25962
  return `${bytes} B`;
@@ -25795,7 +26105,7 @@ function parsePruneOptions(argv) {
25795
26105
  }
25796
26106
  function parseStatusFile(jobDirectoryPath, fallbackJobId) {
25797
26107
  const statusPath = join11(jobDirectoryPath, "status.json");
25798
- const statusRaw = readFileSync8(statusPath, "utf-8");
26108
+ const statusRaw = readFileSync9(statusPath, "utf-8");
25799
26109
  const parsed = JSON.parse(statusRaw);
25800
26110
  const jobId = typeof parsed.id === "string" && parsed.id.length > 0 ? parsed.id : fallbackJobId;
25801
26111
  const specialist = typeof parsed.specialist === "string" && parsed.specialist.length > 0 ? parsed.specialist : "unknown";
@@ -25810,9 +26120,9 @@ function parseStatusFile(jobDirectoryPath, fallbackJobId) {
25810
26120
  };
25811
26121
  }
25812
26122
  function replayEvents(eventsPath, sqliteClient, status) {
25813
- if (!existsSync10(eventsPath))
26123
+ if (!existsSync11(eventsPath))
25814
26124
  return 0;
25815
- const rawContent = readFileSync8(eventsPath, "utf-8");
26125
+ const rawContent = readFileSync9(eventsPath, "utf-8");
25816
26126
  const lines = rawContent.split(`
25817
26127
  `).map((line) => line.trim()).filter((line) => line.length > 0);
25818
26128
  let importedEvents = 0;
@@ -25838,7 +26148,7 @@ function runBackfill(options) {
25838
26148
  };
25839
26149
  try {
25840
26150
  const jobsDirectoryPath = resolveJobsDir(process.cwd());
25841
- if (!existsSync10(jobsDirectoryPath)) {
26151
+ if (!existsSync11(jobsDirectoryPath)) {
25842
26152
  console.log("No jobs directory found. Nothing to backfill.");
25843
26153
  return;
25844
26154
  }
@@ -25848,7 +26158,7 @@ function runBackfill(options) {
25848
26158
  continue;
25849
26159
  const jobDirectoryPath = join11(jobsDirectoryPath, jobEntry.name);
25850
26160
  const statusPath = join11(jobDirectoryPath, "status.json");
25851
- if (!existsSync10(statusPath))
26161
+ if (!existsSync11(statusPath))
25852
26162
  continue;
25853
26163
  try {
25854
26164
  const status = parseStatusFile(jobDirectoryPath, jobEntry.name);
@@ -25961,14 +26271,14 @@ ${bold7("specialists db prune")}
25961
26271
  }
25962
26272
  }
25963
26273
  function parseBenchmarkExportOptions(argv) {
25964
- const defaultOutput = resolve5(process.cwd(), ".specialists/benchmarks/executor-benchmark-rows.jsonl");
26274
+ const defaultOutput = resolve6(process.cwd(), ".specialists/benchmarks/executor-benchmark-rows.jsonl");
25965
26275
  let outputPath = defaultOutput;
25966
26276
  let epicId;
25967
26277
  let includePrepJobs = false;
25968
26278
  for (let i = 0;i < argv.length; i += 1) {
25969
26279
  const argument = argv[i];
25970
26280
  if (argument === "--output" && argv[i + 1]) {
25971
- outputPath = resolve5(process.cwd(), argv[i + 1]);
26281
+ outputPath = resolve6(process.cwd(), argv[i + 1]);
25972
26282
  i += 1;
25973
26283
  continue;
25974
26284
  }
@@ -26201,7 +26511,7 @@ __export(exports_validate, {
26201
26511
  ArgParseError: () => ArgParseError3
26202
26512
  });
26203
26513
  import { readFile as readFile3 } from "fs/promises";
26204
- import { existsSync as existsSync11 } from "fs";
26514
+ import { existsSync as existsSync12 } from "fs";
26205
26515
  import { join as join12 } from "path";
26206
26516
  function parseArgs4(argv) {
26207
26517
  const name = argv[0];
@@ -26221,11 +26531,11 @@ function findSpecialistFile(name) {
26221
26531
  ];
26222
26532
  for (const dir of scanDirs) {
26223
26533
  const jsonCandidate = join12(dir, `${name}.specialist.json`);
26224
- if (existsSync11(jsonCandidate)) {
26534
+ if (existsSync12(jsonCandidate)) {
26225
26535
  return jsonCandidate;
26226
26536
  }
26227
26537
  const yamlCandidate = join12(dir, `${name}.specialist.json`);
26228
- if (existsSync11(yamlCandidate)) {
26538
+ if (existsSync12(yamlCandidate)) {
26229
26539
  process.stderr.write(`[specialists] DEPRECATED: YAML specialist config detected at ${yamlCandidate}. Please migrate to .specialist.json
26230
26540
  `);
26231
26541
  return yamlCandidate;
@@ -26320,7 +26630,7 @@ __export(exports_edit, {
26320
26630
  run: () => run10
26321
26631
  });
26322
26632
  import { spawnSync as spawnSync10 } from "child_process";
26323
- import { existsSync as existsSync12, readdirSync as readdirSync5, readFileSync as readFileSync9, writeFileSync as writeFileSync6 } from "fs";
26633
+ import { existsSync as existsSync13, readdirSync as readdirSync5, readFileSync as readFileSync10, writeFileSync as writeFileSync6 } from "fs";
26324
26634
  import { join as join13 } from "path";
26325
26635
  function loadPresets() {
26326
26636
  const paths = [
@@ -26328,9 +26638,9 @@ function loadPresets() {
26328
26638
  join13(process.cwd(), "config", "specialists", "presets.json")
26329
26639
  ];
26330
26640
  for (const p of paths) {
26331
- if (existsSync12(p)) {
26641
+ if (existsSync13(p)) {
26332
26642
  try {
26333
- const data = JSON.parse(readFileSync9(p, "utf-8"));
26643
+ const data = JSON.parse(readFileSync10(p, "utf-8"));
26334
26644
  return data;
26335
26645
  } catch {
26336
26646
  return {};
@@ -26528,7 +26838,7 @@ ${usage()}`);
26528
26838
  if (action === "get" && (pendingArrayOp || filePath)) {
26529
26839
  fail("Error: --get cannot be combined with --append/--remove/--file");
26530
26840
  }
26531
- if (filePath && !existsSync12(filePath)) {
26841
+ if (filePath && !existsSync13(filePath)) {
26532
26842
  fail(`Error: file not found: ${filePath}`);
26533
26843
  }
26534
26844
  return { name, all, scope, dryRun, action, path, value, filePath, preset };
@@ -26663,7 +26973,7 @@ function formatOutputValue(value) {
26663
26973
  }
26664
26974
  function openAllConfigSpecialistsInEditor() {
26665
26975
  const configDir = join13(process.cwd(), "config", "specialists");
26666
- if (!existsSync12(configDir)) {
26976
+ if (!existsSync13(configDir)) {
26667
26977
  fail(`Error: missing directory: ${configDir}`);
26668
26978
  }
26669
26979
  const files = readdirSync5(configDir).filter((file) => file.endsWith(".specialist.json")).sort().map((file) => join13(configDir, file));
@@ -26683,7 +26993,7 @@ function getRawValue(args, resolvedPath) {
26683
26993
  if (!MULTILINE_FILE_PATHS.has(resolvedPath.normalizedPath)) {
26684
26994
  fail(`Error: --file is only supported for: ${Array.from(MULTILINE_FILE_PATHS).join(", ")}`);
26685
26995
  }
26686
- return readFileSync9(args.filePath, "utf-8");
26996
+ return readFileSync10(args.filePath, "utf-8");
26687
26997
  }
26688
26998
  function getAtPath(root, segments) {
26689
26999
  let current = root;
@@ -26793,7 +27103,7 @@ async function run10() {
26793
27103
  }
26794
27104
  const targets2 = await resolveTargets(args);
26795
27105
  for (const target of targets2) {
26796
- const raw = readFileSync9(target.filePath, "utf-8");
27106
+ const raw = readFileSync10(target.filePath, "utf-8");
26797
27107
  const doc2 = JSON.parse(raw);
26798
27108
  for (const [fieldPath, fieldValue] of Object.entries(preset.fields)) {
26799
27109
  const resolved = resolvePath2(fieldPath);
@@ -26819,7 +27129,7 @@ async function run10() {
26819
27129
  fail("Error: no specialists found");
26820
27130
  }
26821
27131
  for (const target of targets) {
26822
- const raw = readFileSync9(target.filePath, "utf-8");
27132
+ const raw = readFileSync10(target.filePath, "utf-8");
26823
27133
  let doc2;
26824
27134
  try {
26825
27135
  const parsed = JSON.parse(raw);
@@ -26962,8 +27272,8 @@ var init_config = __esm(() => {
26962
27272
  });
26963
27273
 
26964
27274
  // src/specialist/worktree.ts
26965
- import { existsSync as existsSync13, symlinkSync as symlinkSync2, mkdirSync as mkdirSync6 } from "fs";
26966
- import { join as join14, resolve as resolve6 } from "path";
27275
+ import { existsSync as existsSync14, symlinkSync as symlinkSync2, mkdirSync as mkdirSync6 } from "fs";
27276
+ import { join as join14, resolve as resolve7 } from "path";
26967
27277
  import { spawnSync as spawnSync11, execFileSync as execFileSync2 } from "child_process";
26968
27278
  function deriveBranchName(beadId, specialistName) {
26969
27279
  return `feature/${beadId}-${slugify(specialistName)}`;
@@ -26996,11 +27306,11 @@ function provisionWorktree(options) {
26996
27306
  const branch = deriveBranchName(options.beadId, options.specialistName);
26997
27307
  const existingPath = findExistingWorktree(branch, cwd);
26998
27308
  if (existingPath) {
26999
- return { branch, worktreePath: resolve6(existingPath), reused: true };
27309
+ return { branch, worktreePath: resolve7(existingPath), reused: true };
27000
27310
  }
27001
27311
  const worktreeBase = options.worktreeBase ?? join14(commonRoot, ".worktrees", options.beadId);
27002
27312
  const worktreeName = deriveWorktreeName(options.beadId, options.specialistName);
27003
- const worktreePath = resolve6(join14(worktreeBase, worktreeName));
27313
+ const worktreePath = resolve7(join14(worktreeBase, worktreeName));
27004
27314
  createWorktreeViaBd(worktreePath, branch, commonRoot);
27005
27315
  symlinkPiNpmCache(commonRoot, worktreePath);
27006
27316
  return { branch, worktreePath, reused: false };
@@ -27008,7 +27318,7 @@ function provisionWorktree(options) {
27008
27318
  function symlinkPiNpmCache(commonRoot, worktreePath) {
27009
27319
  const source = join14(commonRoot, ".pi", "npm");
27010
27320
  const target = join14(worktreePath, ".pi", "npm");
27011
- if (!existsSync13(source) || existsSync13(target))
27321
+ if (!existsSync14(source) || existsSync14(target))
27012
27322
  return;
27013
27323
  try {
27014
27324
  mkdirSync6(join14(worktreePath, ".pi"), { recursive: true });
@@ -27074,7 +27384,7 @@ __export(exports_merge, {
27074
27384
  checkEpicUnresolvedGuard: () => checkEpicUnresolvedGuard,
27075
27385
  assertMainRepoCleanForMerge: () => assertMainRepoCleanForMerge
27076
27386
  });
27077
- import { existsSync as existsSync14, readdirSync as readdirSync6, readFileSync as readFileSync10 } from "fs";
27387
+ import { existsSync as existsSync15, readdirSync as readdirSync6, readFileSync as readFileSync11 } from "fs";
27078
27388
  import { spawnSync as spawnSync12 } from "child_process";
27079
27389
  import { join as join15 } from "path";
27080
27390
  function parseOptions(argv) {
@@ -27254,7 +27564,7 @@ Use 'sp epic merge ${membership.epicId}' to publish all chains together, or 'sp
27254
27564
  }
27255
27565
  function readAllJobStatuses() {
27256
27566
  const jobsDir = resolveJobsDir();
27257
- if (!existsSync14(jobsDir))
27567
+ if (!existsSync15(jobsDir))
27258
27568
  return [];
27259
27569
  const entries = readdirSync6(jobsDir, { withFileTypes: true });
27260
27570
  const statuses = [];
@@ -27262,9 +27572,9 @@ function readAllJobStatuses() {
27262
27572
  if (!entry.isDirectory())
27263
27573
  continue;
27264
27574
  const statusPath = join15(jobsDir, entry.name, "status.json");
27265
- if (!existsSync14(statusPath))
27575
+ if (!existsSync15(statusPath))
27266
27576
  continue;
27267
- const parsed = readJson(readFileSync10(statusPath, "utf-8"));
27577
+ const parsed = readJson(readFileSync11(statusPath, "utf-8"));
27268
27578
  if (!parsed || typeof parsed !== "object")
27269
27579
  continue;
27270
27580
  statuses.push(parsed);
@@ -27763,7 +28073,9 @@ function formatToolDetail(event) {
27763
28073
  return `${toolName}: ${dim8("start")}`;
27764
28074
  }
27765
28075
  if (event.phase === "end" && event.is_error) {
27766
- return `${toolName}: ${red2("error")}`;
28076
+ const summary = event.result_summary?.split(`
28077
+ `)[0]?.trim().slice(0, 120);
28078
+ return summary ? `${toolName}: ${red2(summary)}` : `${toolName}: ${red2("error")}`;
27767
28079
  }
27768
28080
  return `${toolName}: ${dim8(event.phase)}`;
27769
28081
  }
@@ -27781,6 +28093,8 @@ function formatEventLine(event, options) {
27781
28093
  if (event.type === "meta") {
27782
28094
  detailParts.push(`model=${event.model}`);
27783
28095
  detailParts.push(`backend=${event.backend}`);
28096
+ if (event.source)
28097
+ detailParts.push(`source=${event.source}`);
27784
28098
  } else if (event.type === "tool") {
27785
28099
  detail = formatToolDetail(event);
27786
28100
  } else if (event.type === "error") {
@@ -27920,7 +28234,7 @@ __export(exports_run, {
27920
28234
  run: () => run13
27921
28235
  });
27922
28236
  import { join as join16 } from "path";
27923
- import { readFileSync as readFileSync11 } from "fs";
28237
+ import { readFileSync as readFileSync12 } from "fs";
27924
28238
  import { randomBytes } from "crypto";
27925
28239
  import { spawn as cpSpawn, execSync as execSync3 } from "child_process";
27926
28240
  async function parseArgs6(argv) {
@@ -28035,13 +28349,13 @@ async function parseArgs6(argv) {
28035
28349
  process.exit(1);
28036
28350
  }
28037
28351
  if (!prompt && !beadId && !process.stdin.isTTY) {
28038
- prompt = await new Promise((resolve7) => {
28352
+ prompt = await new Promise((resolve8) => {
28039
28353
  let buf = "";
28040
28354
  process.stdin.setEncoding("utf-8");
28041
28355
  process.stdin.on("data", (chunk) => {
28042
28356
  buf += chunk;
28043
28357
  });
28044
- process.stdin.on("end", () => resolve7(buf.trim()));
28358
+ process.stdin.on("end", () => resolve8(buf.trim()));
28045
28359
  });
28046
28360
  }
28047
28361
  if (!prompt && !beadId && !reuseJobId) {
@@ -28199,7 +28513,7 @@ function startEventTailer(jobId, jobsDir, mode, specialist, beadId) {
28199
28513
  const drain = () => {
28200
28514
  let content;
28201
28515
  try {
28202
- content = readFileSync11(eventsPath, "utf-8");
28516
+ content = readFileSync12(eventsPath, "utf-8");
28203
28517
  } catch {
28204
28518
  return;
28205
28519
  }
@@ -28275,6 +28589,59 @@ function buildReusedWorktreeAwarenessBlock(options) {
28275
28589
  ].join(`
28276
28590
  `);
28277
28591
  }
28592
+ function buildInjectedReviewerDiffVariables(cwd, maxFiles = 20) {
28593
+ const read = (command) => {
28594
+ try {
28595
+ return execSync3(command, {
28596
+ cwd,
28597
+ stdio: "pipe",
28598
+ encoding: "utf-8",
28599
+ timeout: 5000
28600
+ }).trim();
28601
+ } catch {
28602
+ return "";
28603
+ }
28604
+ };
28605
+ const MAX_TOTAL_HUNKS_CHARS = 12000;
28606
+ const MAX_FILE_DIFF_CHARS = 2000;
28607
+ const stat2 = read("git diff --stat");
28608
+ const files = read("git diff --name-only").split(`
28609
+ `).map((line) => line.trim()).filter(Boolean).slice(0, maxFiles);
28610
+ if (files.length === 0)
28611
+ return {};
28612
+ let remaining = MAX_TOTAL_HUNKS_CHARS;
28613
+ const sections = [];
28614
+ for (const file of files) {
28615
+ if (remaining <= 0)
28616
+ break;
28617
+ const diff = read(`git diff -- ${shellQuote2(file)}`);
28618
+ const truncated = diff.length > MAX_FILE_DIFF_CHARS ? `${diff.slice(0, MAX_FILE_DIFF_CHARS)}
28619
+ ... [truncated]` : diff;
28620
+ const section = truncated ? `### ${file}
28621
+ ${truncated}` : `### ${file}
28622
+ (no hunks)`;
28623
+ if (section.length > remaining) {
28624
+ sections.push(`${section.slice(0, remaining)}
28625
+ ... [truncated]`);
28626
+ remaining = 0;
28627
+ break;
28628
+ }
28629
+ sections.push(section);
28630
+ remaining -= section.length + 2;
28631
+ }
28632
+ const hunks = sections.join(`
28633
+
28634
+ `);
28635
+ if (!hunks.trim())
28636
+ return {};
28637
+ return {
28638
+ reviewer_diff_source: "injected diff context",
28639
+ reviewer_diff_stat: stat2 || "(no stat)",
28640
+ reviewer_diff_files: files.join(`
28641
+ `),
28642
+ reviewer_diff_hunks: hunks
28643
+ };
28644
+ }
28278
28645
  async function run13() {
28279
28646
  const args = await parseArgs6(process.argv.slice(3));
28280
28647
  const loader = new SpecialistLoader;
@@ -28300,7 +28667,7 @@ async function run13() {
28300
28667
  const latestPath = join16(jobsDir2, "latest");
28301
28668
  const oldLatest = (() => {
28302
28669
  try {
28303
- return readFileSync11(latestPath, "utf-8").trim();
28670
+ return readFileSync12(latestPath, "utf-8").trim();
28304
28671
  } catch {
28305
28672
  return "";
28306
28673
  }
@@ -28328,7 +28695,7 @@ async function run13() {
28328
28695
  while (Date.now() < deadline) {
28329
28696
  await new Promise((r) => setTimeout(r, 100));
28330
28697
  try {
28331
- const current = readFileSync11(latestPath, "utf-8").trim();
28698
+ const current = readFileSync12(latestPath, "utf-8").trim();
28332
28699
  if (current && current !== oldLatest) {
28333
28700
  jobId2 = current;
28334
28701
  break;
@@ -28416,13 +28783,15 @@ async function run13() {
28416
28783
  };
28417
28784
  if (args.reuseJobId) {
28418
28785
  const reviewedJobId = extractReviewedJobIdOverride(prompt) ?? args.reuseJobId;
28786
+ const injectedReviewerDiffVariables = workingDirectory && args.name === "reviewer" ? buildInjectedReviewerDiffVariables(workingDirectory) : {};
28419
28787
  variables = {
28420
28788
  ...variables ?? {},
28421
28789
  reviewed_job_id: reviewedJobId,
28422
28790
  reused_worktree_awareness: buildReusedWorktreeAwarenessBlock({
28423
28791
  reusedFromJobId: args.reuseJobId,
28424
28792
  worktreeOwnerJobId
28425
- })
28793
+ }),
28794
+ ...injectedReviewerDiffVariables
28426
28795
  };
28427
28796
  }
28428
28797
  if (!prompt && !effectiveBeadId) {
@@ -28583,7 +28952,7 @@ var init_node_resolve = __esm(() => {
28583
28952
  });
28584
28953
 
28585
28954
  // src/specialist/job-control.ts
28586
- import { existsSync as existsSync15, readFileSync as readFileSync12, writeFileSync as writeFileSync7 } from "fs";
28955
+ import { existsSync as existsSync16, readFileSync as readFileSync13, writeFileSync as writeFileSync7 } from "fs";
28587
28956
  import { join as join17 } from "path";
28588
28957
 
28589
28958
  class JobControl {
@@ -28615,8 +28984,8 @@ class JobControl {
28615
28984
  }
28616
28985
  };
28617
28986
  let resolveJobId;
28618
- const jobIdPromise = new Promise((resolve7) => {
28619
- resolveJobId = resolve7;
28987
+ const jobIdPromise = new Promise((resolve8) => {
28988
+ resolveJobId = resolve8;
28620
28989
  });
28621
28990
  this.supervisor = new Supervisor({
28622
28991
  runner: this.runner,
@@ -28659,10 +29028,10 @@ class JobControl {
28659
29028
  return sqliteResult;
28660
29029
  } catch {}
28661
29030
  const resultPath = this.resultPath(jobId);
28662
- if (!existsSync15(resultPath))
29031
+ if (!existsSync16(resultPath))
28663
29032
  return null;
28664
29033
  try {
28665
- return readFileSync12(resultPath, "utf-8");
29034
+ return readFileSync13(resultPath, "utf-8");
28666
29035
  } catch {
28667
29036
  return null;
28668
29037
  }
@@ -28681,7 +29050,7 @@ class JobControl {
28681
29050
  if (deadline !== undefined && Date.now() >= deadline) {
28682
29051
  throw new Error(`Timed out waiting for terminal status for job ${jobId}`);
28683
29052
  }
28684
- await new Promise((resolve7) => setTimeout(resolve7, backoffMs));
29053
+ await new Promise((resolve8) => setTimeout(resolve8, backoffMs));
28685
29054
  backoffMs = Math.min(backoffMs * 2, MAX_BACKOFF_MS);
28686
29055
  }
28687
29056
  }
@@ -28860,7 +29229,7 @@ function hashOutput(output2, salt) {
28860
29229
  return createHash3("sha256").update(value).digest("hex");
28861
29230
  }
28862
29231
  function sleep2(ms) {
28863
- return new Promise((resolve7) => setTimeout(resolve7, ms));
29232
+ return new Promise((resolve8) => setTimeout(resolve8, ms));
28864
29233
  }
28865
29234
  function toContextHealth(contextPct) {
28866
29235
  if (contextPct === null)
@@ -30773,10 +31142,10 @@ var exports_node = {};
30773
31142
  __export(exports_node, {
30774
31143
  handleNodeCommand: () => handleNodeCommand
30775
31144
  });
30776
- import { existsSync as existsSync16, readFileSync as readFileSync13, readdirSync as readdirSync7 } from "fs";
31145
+ import { existsSync as existsSync17, readFileSync as readFileSync14, readdirSync as readdirSync7 } from "fs";
30777
31146
  import { randomUUID } from "crypto";
30778
31147
  import { spawnSync as spawnSync14 } from "child_process";
30779
- import { basename as basename4, join as join18, resolve as resolve7 } from "path";
31148
+ import { basename as basename4, join as join18, resolve as resolve8 } from "path";
30780
31149
  function parseNodeArgs(argv) {
30781
31150
  const command = argv[0];
30782
31151
  const supportedCommands = new Set(["run", "list", "promote", "members", "memory", "stop", "spawn-member", "create-bead", "complete", "wait-phase"]);
@@ -30960,8 +31329,8 @@ function toNodeName(filePath) {
30960
31329
  function discoverNodeConfigs(cwd) {
30961
31330
  const discoveredByName = new Map;
30962
31331
  for (const directory of NODE_DISCOVERY_DIRS) {
30963
- const absoluteDir = resolve7(cwd, directory.path);
30964
- if (!existsSync16(absoluteDir))
31332
+ const absoluteDir = resolve8(cwd, directory.path);
31333
+ if (!existsSync17(absoluteDir))
30965
31334
  continue;
30966
31335
  const files = readdirSync7(absoluteDir).filter((fileName) => fileName.endsWith(NODE_CONFIG_SUFFIX));
30967
31336
  for (const fileName of files) {
@@ -30975,8 +31344,8 @@ function discoverNodeConfigs(cwd) {
30975
31344
  return [...discoveredByName.values()].sort((left, right) => left.name.localeCompare(right.name));
30976
31345
  }
30977
31346
  function resolveNodeConfigPath(cwd, input2) {
30978
- const explicitPath = resolve7(cwd, input2);
30979
- if (existsSync16(explicitPath)) {
31347
+ const explicitPath = resolve8(cwd, input2);
31348
+ if (existsSync17(explicitPath)) {
30980
31349
  return explicitPath;
30981
31350
  }
30982
31351
  const normalizedName = input2.endsWith(NODE_CONFIG_SUFFIX) ? input2.slice(0, -NODE_CONFIG_SUFFIX.length) : input2;
@@ -31071,7 +31440,7 @@ async function handleNodeRun(args) {
31071
31440
  throw new Error("Observability SQLite DB is unavailable. Run: specialists db setup");
31072
31441
  }
31073
31442
  try {
31074
- const rawConfig = args.inlineJson ? args.inlineJson : readFileSync13(resolveNodeConfigPath(process.cwd(), args.nodeConfigInput), "utf-8");
31443
+ const rawConfig = args.inlineJson ? args.inlineJson : readFileSync14(resolveNodeConfigPath(process.cwd(), args.nodeConfigInput), "utf-8");
31075
31444
  const config2 = parseNodeConfig(rawConfig);
31076
31445
  const loader = new SpecialistLoader;
31077
31446
  const runner = new SpecialistRunner({
@@ -31520,7 +31889,7 @@ async function handleNodeAction(args) {
31520
31889
  if (deadline !== null && Date.now() >= deadline) {
31521
31890
  throw new Error(`Timed out waiting for phase '${args.phaseId}' members: ${memberKeys.join(", ")}`);
31522
31891
  }
31523
- await new Promise((resolve8) => setTimeout(resolve8, 500));
31892
+ await new Promise((resolve9) => setTimeout(resolve9, 500));
31524
31893
  }
31525
31894
  } finally {
31526
31895
  sqliteClient.close();
@@ -31607,7 +31976,7 @@ var init_node = __esm(() => {
31607
31976
  });
31608
31977
 
31609
31978
  // src/specialist/epic-reconciler.ts
31610
- import { mkdirSync as mkdirSync7, openSync as openSync2, readFileSync as readFileSync14, rmSync as rmSync2, writeFileSync as writeFileSync8 } from "fs";
31979
+ import { mkdirSync as mkdirSync7, openSync as openSync2, readFileSync as readFileSync15, rmSync as rmSync2, writeFileSync as writeFileSync8 } from "fs";
31611
31980
  import { join as join19 } from "path";
31612
31981
  function buildEpicLockPath(epicId) {
31613
31982
  const location = resolveObservabilityDbLocation();
@@ -31624,7 +31993,7 @@ function withEpicAdvisoryLock(epicId, action) {
31624
31993
  } catch {
31625
31994
  let holder = "unknown";
31626
31995
  try {
31627
- holder = readFileSync14(lockPath, "utf-8");
31996
+ holder = readFileSync15(lockPath, "utf-8");
31628
31997
  } catch {
31629
31998
  holder = "unknown";
31630
31999
  }
@@ -32600,7 +32969,7 @@ __export(exports_status, {
32600
32969
  run: () => run14
32601
32970
  });
32602
32971
  import { spawnSync as spawnSync16 } from "child_process";
32603
- import { existsSync as existsSync17, readFileSync as readFileSync15 } from "fs";
32972
+ import { existsSync as existsSync18, readFileSync as readFileSync16 } from "fs";
32604
32973
  import { join as join20 } from "path";
32605
32974
  function ok2(msg) {
32606
32975
  console.log(` ${green8("\u2713")} ${msg}`);
@@ -32693,9 +33062,9 @@ function countJobEvents(sqliteClient, jobsDir, jobId) {
32693
33062
  console.warn(`SQLite events read failed for job ${jobId}; falling back to events.jsonl`, error2);
32694
33063
  }
32695
33064
  const eventsFile = join20(jobsDir, jobId, "events.jsonl");
32696
- if (!existsSync17(eventsFile))
33065
+ if (!existsSync18(eventsFile))
32697
33066
  return 0;
32698
- const raw = readFileSync15(eventsFile, "utf-8").trim();
33067
+ const raw = readFileSync16(eventsFile, "utf-8").trim();
32699
33068
  if (!raw)
32700
33069
  return 0;
32701
33070
  return raw.split(`
@@ -32727,9 +33096,9 @@ function getLatestContextSnapshot(sqliteClient, jobsDir, jobId) {
32727
33096
  console.warn(`SQLite events read failed for job ${jobId}; falling back to events.jsonl`, error2);
32728
33097
  }
32729
33098
  const eventsFile = join20(jobsDir, jobId, "events.jsonl");
32730
- if (!existsSync17(eventsFile))
33099
+ if (!existsSync18(eventsFile))
32731
33100
  return null;
32732
- const lines = readFileSync15(eventsFile, "utf-8").split(`
33101
+ const lines = readFileSync16(eventsFile, "utf-8").split(`
32733
33102
  `);
32734
33103
  for (let index = lines.length - 1;index >= 0; index -= 1) {
32735
33104
  const line = lines[index].trim();
@@ -32834,11 +33203,11 @@ async function run14() {
32834
33203
  `).slice(1).map((line) => line.split(/\s+/)[0]).filter(Boolean)) : new Set;
32835
33204
  const bdInstalled = isInstalled2("bd");
32836
33205
  const bdVersion = bdInstalled ? cmd("bd", ["--version"]) : null;
32837
- const beadsPresent = existsSync17(join20(process.cwd(), ".beads"));
33206
+ const beadsPresent = existsSync18(join20(process.cwd(), ".beads"));
32838
33207
  const specialistsBin = cmd("which", ["specialists"]);
32839
33208
  const jobsDir = resolveJobsDir();
32840
33209
  let jobs = [];
32841
- if (existsSync17(jobsDir)) {
33210
+ if (existsSync18(jobsDir)) {
32842
33211
  supervisor = new Supervisor({
32843
33212
  runner: null,
32844
33213
  runOptions: null,
@@ -32995,7 +33364,7 @@ __export(exports_ps, {
32995
33364
  run: () => run15
32996
33365
  });
32997
33366
  import { spawnSync as spawnSync17 } from "child_process";
32998
- import { existsSync as existsSync18, readdirSync as readdirSync8, readFileSync as readFileSync16 } from "fs";
33367
+ import { existsSync as existsSync19, readdirSync as readdirSync8, readFileSync as readFileSync17 } from "fs";
32999
33368
  import { join as join21 } from "path";
33000
33369
  function parseArgs7(argv) {
33001
33370
  let nodeId;
@@ -33026,25 +33395,25 @@ function isVisibleStatus(status, all) {
33026
33395
  return ACTIVE_STATES.includes(status);
33027
33396
  }
33028
33397
  function readStatusesFromFiles(jobsDir) {
33029
- if (!existsSync18(jobsDir))
33398
+ if (!existsSync19(jobsDir))
33030
33399
  return [];
33031
33400
  const statuses = [];
33032
33401
  for (const entry of readdirSync8(jobsDir)) {
33033
33402
  const statusPath = join21(jobsDir, entry, "status.json");
33034
- if (!existsSync18(statusPath))
33403
+ if (!existsSync19(statusPath))
33035
33404
  continue;
33036
33405
  try {
33037
- statuses.push(JSON.parse(readFileSync16(statusPath, "utf-8")));
33406
+ statuses.push(JSON.parse(readFileSync17(statusPath, "utf-8")));
33038
33407
  } catch {}
33039
33408
  }
33040
33409
  return statuses.sort((a, b) => b.started_at_ms - a.started_at_ms);
33041
33410
  }
33042
33411
  function readLastToolEventFromFile(jobsDir, jobId) {
33043
33412
  const eventsPath = join21(jobsDir, jobId, "events.jsonl");
33044
- if (!existsSync18(eventsPath))
33413
+ if (!existsSync19(eventsPath))
33045
33414
  return;
33046
33415
  try {
33047
- const lines = readFileSync16(eventsPath, "utf-8").split(`
33416
+ const lines = readFileSync17(eventsPath, "utf-8").split(`
33048
33417
  `);
33049
33418
  for (let index = lines.length - 1;index >= 0; index -= 1) {
33050
33419
  const line = lines[index]?.trim();
@@ -33802,7 +34171,7 @@ var exports_result = {};
33802
34171
  __export(exports_result, {
33803
34172
  run: () => run16
33804
34173
  });
33805
- import { existsSync as existsSync19, readFileSync as readFileSync17 } from "fs";
34174
+ import { existsSync as existsSync20, readFileSync as readFileSync18 } from "fs";
33806
34175
  import { join as join22 } from "path";
33807
34176
  function parseArgs8(argv) {
33808
34177
  let jobId;
@@ -33894,9 +34263,9 @@ function readTimelineEventsForResult(sqliteClient, jobsDir, jobId) {
33894
34263
  } catch {}
33895
34264
  }
33896
34265
  const eventsPath = join22(jobsDir, jobId, "events.jsonl");
33897
- if (!existsSync19(eventsPath))
34266
+ if (!existsSync20(eventsPath))
33898
34267
  return [];
33899
- return readFileSync17(eventsPath, "utf-8").split(`
34268
+ return readFileSync18(eventsPath, "utf-8").split(`
33900
34269
  `).map((line) => line.trim()).filter(Boolean).map((line) => parseTimelineEvent(line)).filter((event) => event !== null);
33901
34270
  }
33902
34271
  function deriveStartupSnapshot(status, events) {
@@ -34037,10 +34406,10 @@ async function run16() {
34037
34406
  } catch (error2) {
34038
34407
  console.warn(`SQLite result read failed for job ${jobId}; falling back to result.txt`, error2);
34039
34408
  }
34040
- if (!existsSync19(resultPath)) {
34409
+ if (!existsSync20(resultPath)) {
34041
34410
  return null;
34042
34411
  }
34043
- return readFileSync17(resultPath, "utf-8");
34412
+ return readFileSync18(resultPath, "utf-8");
34044
34413
  };
34045
34414
  if (args.wait) {
34046
34415
  const startMs = Date.now();
@@ -34214,7 +34583,7 @@ var init_result = __esm(() => {
34214
34583
  });
34215
34584
 
34216
34585
  // src/specialist/timeline-query.ts
34217
- import { existsSync as existsSync20, readdirSync as readdirSync9, readFileSync as readFileSync18 } from "fs";
34586
+ import { existsSync as existsSync21, readdirSync as readdirSync9, readFileSync as readFileSync19 } from "fs";
34218
34587
  import { basename as basename5, join as join23 } from "path";
34219
34588
  function readJobEvents(jobDir) {
34220
34589
  const jobId = basename5(jobDir);
@@ -34226,9 +34595,9 @@ function readJobEvents(jobDir) {
34226
34595
  }
34227
34596
  } catch {}
34228
34597
  const eventsPath = join23(jobDir, "events.jsonl");
34229
- if (!existsSync20(eventsPath))
34598
+ if (!existsSync21(eventsPath))
34230
34599
  return [];
34231
- const content = readFileSync18(eventsPath, "utf-8");
34600
+ const content = readFileSync19(eventsPath, "utf-8");
34232
34601
  const lines = content.split(`
34233
34602
  `).filter(Boolean);
34234
34603
  const events = [];
@@ -34244,7 +34613,7 @@ function readJobEventsById(jobsDir, jobId) {
34244
34613
  return readJobEvents(join23(jobsDir, jobId));
34245
34614
  }
34246
34615
  function readAllJobEvents(jobsDir) {
34247
- if (!existsSync20(jobsDir))
34616
+ if (!existsSync21(jobsDir))
34248
34617
  return [];
34249
34618
  const batches = [];
34250
34619
  const entries = readdirSync9(jobsDir);
@@ -34261,9 +34630,9 @@ function readAllJobEvents(jobsDir) {
34261
34630
  const statusPath = join23(jobDir, "status.json");
34262
34631
  let specialist = "unknown";
34263
34632
  let beadId;
34264
- if (existsSync20(statusPath)) {
34633
+ if (existsSync21(statusPath)) {
34265
34634
  try {
34266
- const status = JSON.parse(readFileSync18(statusPath, "utf-8"));
34635
+ const status = JSON.parse(readFileSync19(statusPath, "utf-8"));
34267
34636
  specialist = status.specialist ?? "unknown";
34268
34637
  beadId = status.bead_id;
34269
34638
  } catch {}
@@ -34360,9 +34729,9 @@ __export(exports_feed, {
34360
34729
  });
34361
34730
  import {
34362
34731
  closeSync as closeSync2,
34363
- existsSync as existsSync21,
34732
+ existsSync as existsSync22,
34364
34733
  openSync as openSync3,
34365
- readFileSync as readFileSync19,
34734
+ readFileSync as readFileSync20,
34366
34735
  readdirSync as readdirSync10,
34367
34736
  statSync as statSync3
34368
34737
  } from "fs";
@@ -34474,6 +34843,10 @@ function formatStartupContextLine(event) {
34474
34843
  parts.push(`skills=${snapshot.skills.count}`);
34475
34844
  return parts.length > 0 ? dim8(` \u21B3 startup ${parts.join(" ")}`) : null;
34476
34845
  }
34846
+ if (event.type === "meta" && event.source === "mandatory_rules_injection" && event.data) {
34847
+ const data = event.data;
34848
+ return dim8(` \u21B3 mandatory_rules sets=${(data.sets_loaded ?? []).join(",") || "none"} rules=${data.rules_count ?? 0} tokens=~${data.token_estimate ?? 0}`);
34849
+ }
34477
34850
  if (event.type === "meta" && event.memory_injection) {
34478
34851
  const mem = event.memory_injection;
34479
34852
  return dim8(` \u21B3 memory static=${mem.static_tokens} dynamic=${mem.memory_tokens} gitnexus=${mem.gitnexus_tokens} total=${mem.total_tokens}`);
@@ -34507,7 +34880,7 @@ function readFileFresh(filePath) {
34507
34880
  let fd = null;
34508
34881
  try {
34509
34882
  fd = openSync3(filePath, "r");
34510
- return readFileSync19(fd, "utf-8");
34883
+ return readFileSync20(fd, "utf-8");
34511
34884
  } catch {
34512
34885
  return null;
34513
34886
  } finally {
@@ -34733,7 +35106,7 @@ function filterMergedEventsByNode(sqliteClient, jobsDir, merged, nodeId) {
34733
35106
  });
34734
35107
  }
34735
35108
  function listMatchingJobIds(sqliteClient, jobsDir, options) {
34736
- if (!existsSync21(jobsDir))
35109
+ if (!existsSync22(jobsDir))
34737
35110
  return [];
34738
35111
  const jobIds = [];
34739
35112
  for (const entry of readdirSync10(jobsDir)) {
@@ -34847,7 +35220,7 @@ async function followMerged(sqliteClient, jobsDir, options) {
34847
35220
  }
34848
35221
  const lastPrintedEventKey = new Map;
34849
35222
  const seenMetaKey = new Map;
34850
- await new Promise((resolve8) => {
35223
+ await new Promise((resolve9) => {
34851
35224
  const interval = setInterval(() => {
34852
35225
  const batches = filteredBatches();
34853
35226
  for (const jobId of listMatchingJobIds(sqliteClient, jobsDir, options)) {
@@ -34924,7 +35297,7 @@ async function followMerged(sqliteClient, jobsDir, options) {
34924
35297
  }
34925
35298
  if (!options.forever && trackedJobs.size > 0 && completedJobs.size === trackedJobs.size) {
34926
35299
  clearInterval(interval);
34927
- resolve8();
35300
+ resolve9();
34928
35301
  }
34929
35302
  }, 500);
34930
35303
  });
@@ -34934,7 +35307,7 @@ async function run17() {
34934
35307
  const sqliteClient = createObservabilitySqliteClient();
34935
35308
  try {
34936
35309
  const jobsDir = join24(process.cwd(), ".specialists", "jobs");
34937
- if (!existsSync21(jobsDir)) {
35310
+ if (!existsSync22(jobsDir)) {
34938
35311
  console.log(dim8("No jobs directory found."));
34939
35312
  return;
34940
35313
  }
@@ -34973,7 +35346,7 @@ var exports_poll = {};
34973
35346
  __export(exports_poll, {
34974
35347
  run: () => run18
34975
35348
  });
34976
- import { existsSync as existsSync22, readFileSync as readFileSync20 } from "fs";
35349
+ import { existsSync as existsSync23, readFileSync as readFileSync21 } from "fs";
34977
35350
  import { join as join25 } from "path";
34978
35351
  function parseArgs10(argv) {
34979
35352
  let jobId;
@@ -35014,16 +35387,16 @@ function readJobState(jobsDir, jobId, cursor, outputCursor) {
35014
35387
  const jobDir = join25(jobsDir, jobId);
35015
35388
  const statusPath = join25(jobDir, "status.json");
35016
35389
  let status = null;
35017
- if (existsSync22(statusPath)) {
35390
+ if (existsSync23(statusPath)) {
35018
35391
  try {
35019
- status = JSON.parse(readFileSync20(statusPath, "utf-8"));
35392
+ status = JSON.parse(readFileSync21(statusPath, "utf-8"));
35020
35393
  } catch {}
35021
35394
  }
35022
35395
  const resultPath = join25(jobDir, "result.txt");
35023
35396
  let fullOutput = "";
35024
- if (existsSync22(resultPath)) {
35397
+ if (existsSync23(resultPath)) {
35025
35398
  try {
35026
- fullOutput = readFileSync20(resultPath, "utf-8");
35399
+ fullOutput = readFileSync21(resultPath, "utf-8");
35027
35400
  } catch {}
35028
35401
  }
35029
35402
  const events = readJobEventsById(jobsDir, jobId);
@@ -35057,7 +35430,7 @@ async function run18() {
35057
35430
  const { jobId, cursor, outputCursor } = parseArgs10(process.argv.slice(3));
35058
35431
  const jobsDir = join25(process.cwd(), ".specialists", "jobs");
35059
35432
  const jobDir = join25(jobsDir, jobId);
35060
- if (!existsSync22(jobDir)) {
35433
+ if (!existsSync23(jobDir)) {
35061
35434
  const result2 = {
35062
35435
  job_id: jobId,
35063
35436
  status: "error",
@@ -35205,15 +35578,15 @@ async function run21() {
35205
35578
  }
35206
35579
 
35207
35580
  // src/specialist/worktree-gc.ts
35208
- import { existsSync as existsSync23, readdirSync as readdirSync11, readFileSync as readFileSync21 } from "fs";
35581
+ import { existsSync as existsSync24, readdirSync as readdirSync11, readFileSync as readFileSync22 } from "fs";
35209
35582
  import { join as join26 } from "path";
35210
35583
  import { spawnSync as spawnSync18 } from "child_process";
35211
35584
  function readJobStatus2(jobDir) {
35212
35585
  const statusPath = join26(jobDir, "status.json");
35213
- if (!existsSync23(statusPath))
35586
+ if (!existsSync24(statusPath))
35214
35587
  return null;
35215
35588
  try {
35216
- return JSON.parse(readFileSync21(statusPath, "utf-8"));
35589
+ return JSON.parse(readFileSync22(statusPath, "utf-8"));
35217
35590
  } catch {
35218
35591
  return null;
35219
35592
  }
@@ -35225,7 +35598,7 @@ function isActive(status) {
35225
35598
  return ACTIVE_STATUSES.has(status);
35226
35599
  }
35227
35600
  function collectWorktreeGcCandidates(jobsDir) {
35228
- if (!existsSync23(jobsDir))
35601
+ if (!existsSync24(jobsDir))
35229
35602
  return [];
35230
35603
  const candidates = [];
35231
35604
  for (const entry of readdirSync11(jobsDir, { withFileTypes: true })) {
@@ -35241,7 +35614,7 @@ function collectWorktreeGcCandidates(jobsDir) {
35241
35614
  const { worktree_path: worktreePath, branch } = status;
35242
35615
  if (!worktreePath)
35243
35616
  continue;
35244
- if (!existsSync23(worktreePath))
35617
+ if (!existsSync24(worktreePath))
35245
35618
  continue;
35246
35619
  candidates.push({
35247
35620
  jobId: status.id,
@@ -35287,9 +35660,9 @@ __export(exports_clean, {
35287
35660
  run: () => run22
35288
35661
  });
35289
35662
  import {
35290
- existsSync as existsSync24,
35663
+ existsSync as existsSync25,
35291
35664
  readdirSync as readdirSync12,
35292
- readFileSync as readFileSync22,
35665
+ readFileSync as readFileSync23,
35293
35666
  rmSync as rmSync3,
35294
35667
  statSync as statSync4
35295
35668
  } from "fs";
@@ -35381,11 +35754,11 @@ function readCompletedJobDirectory(baseDirectory, entry) {
35381
35754
  if (containsProtectedSqliteArtifact(directoryPath))
35382
35755
  return null;
35383
35756
  const statusFilePath = join27(directoryPath, "status.json");
35384
- if (!existsSync24(statusFilePath))
35757
+ if (!existsSync25(statusFilePath))
35385
35758
  return null;
35386
35759
  let statusData;
35387
35760
  try {
35388
- statusData = JSON.parse(readFileSync22(statusFilePath, "utf-8"));
35761
+ statusData = JSON.parse(readFileSync23(statusFilePath, "utf-8"));
35389
35762
  } catch {
35390
35763
  return null;
35391
35764
  }
@@ -35482,7 +35855,7 @@ async function run22() {
35482
35855
  printUsageAndExit2(message);
35483
35856
  }
35484
35857
  const jobsDirectoryPath = resolveJobsDir();
35485
- if (!existsSync24(jobsDirectoryPath)) {
35858
+ if (!existsSync25(jobsDirectoryPath)) {
35486
35859
  console.log("No jobs directory found.");
35487
35860
  return;
35488
35861
  }
@@ -35667,7 +36040,7 @@ async function waitForProcessExit(pid, timeoutMs) {
35667
36040
  while (Date.now() < deadline) {
35668
36041
  if (!isProcessAlive(pid))
35669
36042
  return true;
35670
- await new Promise((resolve8) => setTimeout(resolve8, 100));
36043
+ await new Promise((resolve9) => setTimeout(resolve9, 100));
35671
36044
  }
35672
36045
  return !isProcessAlive(pid);
35673
36046
  }
@@ -35777,7 +36150,7 @@ __export(exports_attach, {
35777
36150
  run: () => run25
35778
36151
  });
35779
36152
  import { execFileSync as execFileSync3, spawnSync as spawnSync20 } from "child_process";
35780
- import { readFileSync as readFileSync23 } from "fs";
36153
+ import { readFileSync as readFileSync24 } from "fs";
35781
36154
  import { join as join28 } from "path";
35782
36155
  function exitWithError(message) {
35783
36156
  console.error(message);
@@ -35785,7 +36158,7 @@ function exitWithError(message) {
35785
36158
  }
35786
36159
  function readStatus(statusPath, jobId) {
35787
36160
  try {
35788
- return JSON.parse(readFileSync23(statusPath, "utf-8"));
36161
+ return JSON.parse(readFileSync24(statusPath, "utf-8"));
35789
36162
  } catch (error2) {
35790
36163
  if (error2 && typeof error2 === "object" && "code" in error2 && error2.code === "ENOENT") {
35791
36164
  exitWithError(`Job \`${jobId}\` not found. Run \`specialists status\` to see active jobs.`);
@@ -36061,8 +36434,8 @@ __export(exports_doctor, {
36061
36434
  });
36062
36435
  import { createHash as createHash4 } from "crypto";
36063
36436
  import { spawnSync as spawnSync21 } from "child_process";
36064
- import { existsSync as existsSync25, lstatSync as lstatSync2, mkdirSync as mkdirSync8, readdirSync as readdirSync13, readFileSync as readFileSync24, readlinkSync as readlinkSync2, writeFileSync as writeFileSync11 } from "fs";
36065
- import { dirname as dirname7, join as join29, relative as relative2, resolve as resolve8 } from "path";
36437
+ import { existsSync as existsSync26, lstatSync as lstatSync2, mkdirSync as mkdirSync8, readdirSync as readdirSync13, readFileSync as readFileSync25, readlinkSync as readlinkSync2, writeFileSync as writeFileSync11 } from "fs";
36438
+ import { dirname as dirname7, join as join29, relative as relative2, resolve as resolve9 } from "path";
36066
36439
  function ok3(msg) {
36067
36440
  console.log(` ${green14("\u2713")} ${msg}`);
36068
36441
  }
@@ -36091,10 +36464,10 @@ function isInstalled3(bin) {
36091
36464
  return spawnSync21("which", [bin], { encoding: "utf8", timeout: 2000 }).status === 0;
36092
36465
  }
36093
36466
  function loadJson2(path) {
36094
- if (!existsSync25(path))
36467
+ if (!existsSync26(path))
36095
36468
  return null;
36096
36469
  try {
36097
- return JSON.parse(readFileSync24(path, "utf8"));
36470
+ return JSON.parse(readFileSync25(path, "utf8"));
36098
36471
  } catch {
36099
36472
  return null;
36100
36473
  }
@@ -36137,7 +36510,7 @@ function checkBd() {
36137
36510
  return false;
36138
36511
  }
36139
36512
  ok3(`bd installed ${dim13(sp("bd", ["--version"]).stdout || "")}`);
36140
- if (existsSync25(join29(CWD, ".beads")))
36513
+ if (existsSync26(join29(CWD, ".beads")))
36141
36514
  ok3(".beads/ present in project");
36142
36515
  else
36143
36516
  warn3(".beads/ not found in project");
@@ -36158,7 +36531,7 @@ function checkHooks() {
36158
36531
  let allPresent = true;
36159
36532
  for (const name of HOOK_NAMES) {
36160
36533
  const canonicalPath = join29(HOOKS_DIR, name);
36161
- if (!existsSync25(canonicalPath)) {
36534
+ if (!existsSync26(canonicalPath)) {
36162
36535
  fail4(`${relative2(CWD, canonicalPath)} ${red7("missing")}`);
36163
36536
  fix("specialists init");
36164
36537
  allPresent = false;
@@ -36220,7 +36593,7 @@ function checkMCP() {
36220
36593
  }
36221
36594
  function hashFile(path) {
36222
36595
  const hash = createHash4("sha256");
36223
- hash.update(readFileSync24(path));
36596
+ hash.update(readFileSync25(path));
36224
36597
  return hash.digest("hex");
36225
36598
  }
36226
36599
  function collectFileHashes(rootDir) {
@@ -36238,12 +36611,12 @@ function collectFileHashes(rootDir) {
36238
36611
  hashes.set(relPath, hashFile(fullPath));
36239
36612
  }
36240
36613
  };
36241
- if (existsSync25(rootDir))
36614
+ if (existsSync26(rootDir))
36242
36615
  visit2(rootDir);
36243
36616
  return hashes;
36244
36617
  }
36245
36618
  function isSymlinkTo(linkPath, expectedTargetPath) {
36246
- if (!existsSync25(linkPath))
36619
+ if (!existsSync26(linkPath))
36247
36620
  return { ok: false, reason: "missing" };
36248
36621
  let stats;
36249
36622
  try {
@@ -36255,8 +36628,8 @@ function isSymlinkTo(linkPath, expectedTargetPath) {
36255
36628
  return { ok: false, reason: "not-symlink" };
36256
36629
  try {
36257
36630
  const rawTarget = readlinkSync2(linkPath);
36258
- const resolvedTarget = resolve8(dirname7(linkPath), rawTarget);
36259
- const resolvedExpected = resolve8(expectedTargetPath);
36631
+ const resolvedTarget = resolve9(dirname7(linkPath), rawTarget);
36632
+ const resolvedExpected = resolve9(expectedTargetPath);
36260
36633
  if (resolvedTarget !== resolvedExpected) {
36261
36634
  return { ok: false, reason: "wrong-target", target: rawTarget };
36262
36635
  }
@@ -36267,12 +36640,12 @@ function isSymlinkTo(linkPath, expectedTargetPath) {
36267
36640
  }
36268
36641
  function checkSkillDrift() {
36269
36642
  section3("Skill drift (.xtrm skill sync)");
36270
- if (!existsSync25(CONFIG_SKILLS_DIR)) {
36643
+ if (!existsSync26(CONFIG_SKILLS_DIR)) {
36271
36644
  fail4("config/skills/ missing");
36272
36645
  fix("restore config/skills/ from git");
36273
36646
  return false;
36274
36647
  }
36275
- if (!existsSync25(XTRM_DEFAULT_SKILLS_DIR)) {
36648
+ if (!existsSync26(XTRM_DEFAULT_SKILLS_DIR)) {
36276
36649
  fail4(".xtrm/skills/default/ missing");
36277
36650
  fix("specialists init --sync-skills");
36278
36651
  return false;
@@ -36315,7 +36688,7 @@ function checkSkillDrift() {
36315
36688
  let linksOk = true;
36316
36689
  for (const scope of ["claude", "pi"]) {
36317
36690
  const activeRoot = join29(XTRM_ACTIVE_SKILLS_DIR, scope);
36318
- if (!existsSync25(activeRoot)) {
36691
+ if (!existsSync26(activeRoot)) {
36319
36692
  fail4(`${relative2(CWD, activeRoot)}/ missing`);
36320
36693
  fix("specialists init --sync-skills");
36321
36694
  linksOk = false;
@@ -36374,14 +36747,14 @@ function checkRuntimeDirs() {
36374
36747
  const jobsDir = join29(rootDir, "jobs");
36375
36748
  const readyDir = join29(rootDir, "ready");
36376
36749
  let allOk = true;
36377
- if (!existsSync25(rootDir)) {
36750
+ if (!existsSync26(rootDir)) {
36378
36751
  warn3(".specialists/ not found in current project");
36379
36752
  fix("specialists init");
36380
36753
  allOk = false;
36381
36754
  } else {
36382
36755
  ok3(".specialists/ present");
36383
36756
  for (const [subDir, label] of [[jobsDir, "jobs"], [readyDir, "ready"]]) {
36384
- if (!existsSync25(subDir)) {
36757
+ if (!existsSync26(subDir)) {
36385
36758
  warn3(`.specialists/${label}/ missing \u2014 auto-creating`);
36386
36759
  mkdirSync8(subDir, { recursive: true });
36387
36760
  ok3(`.specialists/${label}/ created`);
@@ -36414,7 +36787,7 @@ function compareVersions(left, right) {
36414
36787
  }
36415
36788
  function setStatusError(statusPath) {
36416
36789
  try {
36417
- const raw = readFileSync24(statusPath, "utf8");
36790
+ const raw = readFileSync25(statusPath, "utf8");
36418
36791
  const status = JSON.parse(raw);
36419
36792
  status.status = "error";
36420
36793
  writeFileSync11(statusPath, `${JSON.stringify(status, null, 2)}
@@ -36437,10 +36810,10 @@ function cleanupProcesses(jobsDir, dryRun) {
36437
36810
  };
36438
36811
  for (const jobId of entries) {
36439
36812
  const statusPath = join29(jobsDir, jobId, "status.json");
36440
- if (!existsSync25(statusPath))
36813
+ if (!existsSync26(statusPath))
36441
36814
  continue;
36442
36815
  try {
36443
- const status = JSON.parse(readFileSync24(statusPath, "utf8"));
36816
+ const status = JSON.parse(readFileSync25(statusPath, "utf8"));
36444
36817
  result.total += 1;
36445
36818
  if (status.status !== "running" && status.status !== "starting")
36446
36819
  continue;
@@ -36517,7 +36890,7 @@ ${bold13("specialists doctor orphans")}
36517
36890
  function checkZombieJobs() {
36518
36891
  section3("Background jobs");
36519
36892
  const jobsDir = join29(CWD, ".specialists", "jobs");
36520
- if (!existsSync25(jobsDir)) {
36893
+ if (!existsSync26(jobsDir)) {
36521
36894
  hint("No .specialists/jobs/ \u2014 skipping");
36522
36895
  return true;
36523
36896
  }
@@ -36772,7 +37145,7 @@ var init_help = __esm(() => {
36772
37145
  ];
36773
37146
  });
36774
37147
 
36775
- // node_modules/zod/v4/core/core.js
37148
+ // ../../../node_modules/zod/v4/core/core.js
36776
37149
  var NEVER2 = Object.freeze({
36777
37150
  status: "aborted"
36778
37151
  });
@@ -36832,7 +37205,7 @@ function config(newConfig) {
36832
37205
  Object.assign(globalConfig, newConfig);
36833
37206
  return globalConfig;
36834
37207
  }
36835
- // node_modules/zod/v4/core/util.js
37208
+ // ../../../node_modules/zod/v4/core/util.js
36836
37209
  var exports_util = {};
36837
37210
  __export(exports_util, {
36838
37211
  unwrapMessage: () => unwrapMessage,
@@ -37346,7 +37719,7 @@ class Class {
37346
37719
  constructor(..._args) {}
37347
37720
  }
37348
37721
 
37349
- // node_modules/zod/v4/core/errors.js
37722
+ // ../../../node_modules/zod/v4/core/errors.js
37350
37723
  var initializer = (inst, def) => {
37351
37724
  inst.name = "$ZodError";
37352
37725
  Object.defineProperty(inst, "_zod", {
@@ -37420,7 +37793,7 @@ function formatError(error, _mapper) {
37420
37793
  return fieldErrors;
37421
37794
  }
37422
37795
 
37423
- // node_modules/zod/v4/core/parse.js
37796
+ // ../../../node_modules/zod/v4/core/parse.js
37424
37797
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
37425
37798
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
37426
37799
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -37469,7 +37842,7 @@ var _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
37469
37842
  } : { success: true, data: result.value };
37470
37843
  };
37471
37844
  var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
37472
- // node_modules/zod/v4/core/regexes.js
37845
+ // ../../../node_modules/zod/v4/core/regexes.js
37473
37846
  var cuid = /^[cC][^\s-]{8,}$/;
37474
37847
  var cuid2 = /^[0-9a-z]+$/;
37475
37848
  var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
@@ -37527,7 +37900,7 @@ var _null = /null/i;
37527
37900
  var lowercase = /^[^A-Z]*$/;
37528
37901
  var uppercase = /^[^a-z]*$/;
37529
37902
 
37530
- // node_modules/zod/v4/core/checks.js
37903
+ // ../../../node_modules/zod/v4/core/checks.js
37531
37904
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
37532
37905
  var _a;
37533
37906
  inst._zod ?? (inst._zod = {});
@@ -37911,7 +38284,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
37911
38284
  };
37912
38285
  });
37913
38286
 
37914
- // node_modules/zod/v4/core/doc.js
38287
+ // ../../../node_modules/zod/v4/core/doc.js
37915
38288
  class Doc {
37916
38289
  constructor(args = []) {
37917
38290
  this.content = [];
@@ -37949,14 +38322,14 @@ class Doc {
37949
38322
  }
37950
38323
  }
37951
38324
 
37952
- // node_modules/zod/v4/core/versions.js
38325
+ // ../../../node_modules/zod/v4/core/versions.js
37953
38326
  var version = {
37954
38327
  major: 4,
37955
38328
  minor: 0,
37956
38329
  patch: 0
37957
38330
  };
37958
38331
 
37959
- // node_modules/zod/v4/core/schemas.js
38332
+ // ../../../node_modules/zod/v4/core/schemas.js
37960
38333
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
37961
38334
  var _a;
37962
38335
  inst ?? (inst = {});
@@ -39187,7 +39560,7 @@ function handleRefineResult(result, payload, input, inst) {
39187
39560
  payload.issues.push(issue(_iss));
39188
39561
  }
39189
39562
  }
39190
- // node_modules/zod/v4/locales/en.js
39563
+ // ../../../node_modules/zod/v4/locales/en.js
39191
39564
  var parsedType = (data) => {
39192
39565
  const t = typeof data;
39193
39566
  switch (t) {
@@ -39304,7 +39677,7 @@ function en_default2() {
39304
39677
  localeError: error()
39305
39678
  };
39306
39679
  }
39307
- // node_modules/zod/v4/core/registries.js
39680
+ // ../../../node_modules/zod/v4/core/registries.js
39308
39681
  var $output = Symbol("ZodOutput");
39309
39682
  var $input = Symbol("ZodInput");
39310
39683
 
@@ -39354,7 +39727,7 @@ function registry() {
39354
39727
  return new $ZodRegistry;
39355
39728
  }
39356
39729
  var globalRegistry = /* @__PURE__ */ registry();
39357
- // node_modules/zod/v4/core/api.js
39730
+ // ../../../node_modules/zod/v4/core/api.js
39358
39731
  function _string(Class2, params) {
39359
39732
  return new Class2({
39360
39733
  type: "string",
@@ -39789,7 +40162,7 @@ function _refine(Class2, fn, _params) {
39789
40162
  });
39790
40163
  return schema;
39791
40164
  }
39792
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
40165
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
39793
40166
  function isZ4Schema(s) {
39794
40167
  const schema = s;
39795
40168
  return !!schema._zod;
@@ -39851,7 +40224,7 @@ function getLiteralValue(schema) {
39851
40224
  return directValue;
39852
40225
  return;
39853
40226
  }
39854
- // node_modules/zod/v4/classic/iso.js
40227
+ // ../../../node_modules/zod/v4/classic/iso.js
39855
40228
  var exports_iso = {};
39856
40229
  __export(exports_iso, {
39857
40230
  time: () => time2,
@@ -39892,7 +40265,7 @@ function duration2(params) {
39892
40265
  return _isoDuration(ZodISODuration, params);
39893
40266
  }
39894
40267
 
39895
- // node_modules/zod/v4/classic/errors.js
40268
+ // ../../../node_modules/zod/v4/classic/errors.js
39896
40269
  var initializer2 = (inst, issues) => {
39897
40270
  $ZodError.init(inst, issues);
39898
40271
  inst.name = "ZodError";
@@ -39921,13 +40294,13 @@ var ZodRealError = $constructor("ZodError", initializer2, {
39921
40294
  Parent: Error
39922
40295
  });
39923
40296
 
39924
- // node_modules/zod/v4/classic/parse.js
40297
+ // ../../../node_modules/zod/v4/classic/parse.js
39925
40298
  var parse3 = /* @__PURE__ */ _parse(ZodRealError);
39926
40299
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
39927
40300
  var safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
39928
40301
  var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError);
39929
40302
 
39930
- // node_modules/zod/v4/classic/schemas.js
40303
+ // ../../../node_modules/zod/v4/classic/schemas.js
39931
40304
  var ZodType2 = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
39932
40305
  $ZodType.init(inst, def);
39933
40306
  inst.def = def;
@@ -40532,10 +40905,10 @@ function superRefine(fn) {
40532
40905
  function preprocess(fn, schema) {
40533
40906
  return pipe(transform(fn), schema);
40534
40907
  }
40535
- // node_modules/zod/v4/classic/external.js
40908
+ // ../../../node_modules/zod/v4/classic/external.js
40536
40909
  config(en_default2());
40537
40910
 
40538
- // node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
40911
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
40539
40912
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
40540
40913
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
40541
40914
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -41367,12 +41740,12 @@ class UrlElicitationRequiredError extends McpError {
41367
41740
  }
41368
41741
  }
41369
41742
 
41370
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
41743
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
41371
41744
  function isTerminal(status) {
41372
41745
  return status === "completed" || status === "failed" || status === "cancelled";
41373
41746
  }
41374
41747
 
41375
- // node_modules/zod-to-json-schema/dist/esm/Options.js
41748
+ // ../../../node_modules/zod-to-json-schema/dist/esm/Options.js
41376
41749
  var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
41377
41750
  var defaultOptions = {
41378
41751
  name: undefined,
@@ -41405,7 +41778,7 @@ var getDefaultOptions = (options) => typeof options === "string" ? {
41405
41778
  ...defaultOptions,
41406
41779
  ...options
41407
41780
  };
41408
- // node_modules/zod-to-json-schema/dist/esm/Refs.js
41781
+ // ../../../node_modules/zod-to-json-schema/dist/esm/Refs.js
41409
41782
  var getRefs = (options) => {
41410
41783
  const _options = getDefaultOptions(options);
41411
41784
  const currentPath = _options.name !== undefined ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
@@ -41424,7 +41797,7 @@ var getRefs = (options) => {
41424
41797
  ]))
41425
41798
  };
41426
41799
  };
41427
- // node_modules/zod-to-json-schema/dist/esm/errorMessages.js
41800
+ // ../../../node_modules/zod-to-json-schema/dist/esm/errorMessages.js
41428
41801
  function addErrorMessage(res, key, errorMessage, refs) {
41429
41802
  if (!refs?.errorMessages)
41430
41803
  return;
@@ -41439,7 +41812,7 @@ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
41439
41812
  res[key] = value;
41440
41813
  addErrorMessage(res, key, errorMessage, refs);
41441
41814
  }
41442
- // node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
41815
+ // ../../../node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
41443
41816
  var getRelativePath = (pathA, pathB) => {
41444
41817
  let i = 0;
41445
41818
  for (;i < pathA.length && i < pathB.length; i++) {
@@ -41448,7 +41821,7 @@ var getRelativePath = (pathA, pathB) => {
41448
41821
  }
41449
41822
  return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
41450
41823
  };
41451
- // node_modules/zod-to-json-schema/dist/esm/parsers/any.js
41824
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/any.js
41452
41825
  function parseAnyDef(refs) {
41453
41826
  if (refs.target !== "openAi") {
41454
41827
  return {};
@@ -41464,7 +41837,7 @@ function parseAnyDef(refs) {
41464
41837
  };
41465
41838
  }
41466
41839
 
41467
- // node_modules/zod-to-json-schema/dist/esm/parsers/array.js
41840
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/array.js
41468
41841
  function parseArrayDef(def, refs) {
41469
41842
  const res = {
41470
41843
  type: "array"
@@ -41488,7 +41861,7 @@ function parseArrayDef(def, refs) {
41488
41861
  return res;
41489
41862
  }
41490
41863
 
41491
- // node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
41864
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
41492
41865
  function parseBigintDef(def, refs) {
41493
41866
  const res = {
41494
41867
  type: "integer",
@@ -41534,24 +41907,24 @@ function parseBigintDef(def, refs) {
41534
41907
  return res;
41535
41908
  }
41536
41909
 
41537
- // node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
41910
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
41538
41911
  function parseBooleanDef() {
41539
41912
  return {
41540
41913
  type: "boolean"
41541
41914
  };
41542
41915
  }
41543
41916
 
41544
- // node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
41917
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
41545
41918
  function parseBrandedDef(_def, refs) {
41546
41919
  return parseDef(_def.type._def, refs);
41547
41920
  }
41548
41921
 
41549
- // node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
41922
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
41550
41923
  var parseCatchDef = (def, refs) => {
41551
41924
  return parseDef(def.innerType._def, refs);
41552
41925
  };
41553
41926
 
41554
- // node_modules/zod-to-json-schema/dist/esm/parsers/date.js
41927
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/date.js
41555
41928
  function parseDateDef(def, refs, overrideDateStrategy) {
41556
41929
  const strategy = overrideDateStrategy ?? refs.dateStrategy;
41557
41930
  if (Array.isArray(strategy)) {
@@ -41596,7 +41969,7 @@ var integerDateParser = (def, refs) => {
41596
41969
  return res;
41597
41970
  };
41598
41971
 
41599
- // node_modules/zod-to-json-schema/dist/esm/parsers/default.js
41972
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/default.js
41600
41973
  function parseDefaultDef(_def, refs) {
41601
41974
  return {
41602
41975
  ...parseDef(_def.innerType._def, refs),
@@ -41604,12 +41977,12 @@ function parseDefaultDef(_def, refs) {
41604
41977
  };
41605
41978
  }
41606
41979
 
41607
- // node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
41980
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
41608
41981
  function parseEffectsDef(_def, refs) {
41609
41982
  return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
41610
41983
  }
41611
41984
 
41612
- // node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
41985
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
41613
41986
  function parseEnumDef(def) {
41614
41987
  return {
41615
41988
  type: "string",
@@ -41617,7 +41990,7 @@ function parseEnumDef(def) {
41617
41990
  };
41618
41991
  }
41619
41992
 
41620
- // node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
41993
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
41621
41994
  var isJsonSchema7AllOfType = (type) => {
41622
41995
  if ("type" in type && type.type === "string")
41623
41996
  return false;
@@ -41659,7 +42032,7 @@ function parseIntersectionDef(def, refs) {
41659
42032
  } : undefined;
41660
42033
  }
41661
42034
 
41662
- // node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
42035
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
41663
42036
  function parseLiteralDef(def, refs) {
41664
42037
  const parsedType2 = typeof def.value;
41665
42038
  if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") {
@@ -41679,7 +42052,7 @@ function parseLiteralDef(def, refs) {
41679
42052
  };
41680
42053
  }
41681
42054
 
41682
- // node_modules/zod-to-json-schema/dist/esm/parsers/string.js
42055
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/string.js
41683
42056
  var emojiRegex2 = undefined;
41684
42057
  var zodPatterns = {
41685
42058
  cuid: /^[cC][^\s-]{8,}$/,
@@ -41976,7 +42349,7 @@ function stringifyRegExpWithFlags(regex, refs) {
41976
42349
  return pattern;
41977
42350
  }
41978
42351
 
41979
- // node_modules/zod-to-json-schema/dist/esm/parsers/record.js
42352
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/record.js
41980
42353
  function parseRecordDef(def, refs) {
41981
42354
  if (refs.target === "openAi") {
41982
42355
  console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
@@ -42028,7 +42401,7 @@ function parseRecordDef(def, refs) {
42028
42401
  return schema;
42029
42402
  }
42030
42403
 
42031
- // node_modules/zod-to-json-schema/dist/esm/parsers/map.js
42404
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/map.js
42032
42405
  function parseMapDef(def, refs) {
42033
42406
  if (refs.mapStrategy === "record") {
42034
42407
  return parseRecordDef(def, refs);
@@ -42053,7 +42426,7 @@ function parseMapDef(def, refs) {
42053
42426
  };
42054
42427
  }
42055
42428
 
42056
- // node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
42429
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
42057
42430
  function parseNativeEnumDef(def) {
42058
42431
  const object3 = def.values;
42059
42432
  const actualKeys = Object.keys(def.values).filter((key) => {
@@ -42067,7 +42440,7 @@ function parseNativeEnumDef(def) {
42067
42440
  };
42068
42441
  }
42069
42442
 
42070
- // node_modules/zod-to-json-schema/dist/esm/parsers/never.js
42443
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/never.js
42071
42444
  function parseNeverDef(refs) {
42072
42445
  return refs.target === "openAi" ? undefined : {
42073
42446
  not: parseAnyDef({
@@ -42077,7 +42450,7 @@ function parseNeverDef(refs) {
42077
42450
  };
42078
42451
  }
42079
42452
 
42080
- // node_modules/zod-to-json-schema/dist/esm/parsers/null.js
42453
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/null.js
42081
42454
  function parseNullDef(refs) {
42082
42455
  return refs.target === "openApi3" ? {
42083
42456
  enum: ["null"],
@@ -42087,7 +42460,7 @@ function parseNullDef(refs) {
42087
42460
  };
42088
42461
  }
42089
42462
 
42090
- // node_modules/zod-to-json-schema/dist/esm/parsers/union.js
42463
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/union.js
42091
42464
  var primitiveMappings = {
42092
42465
  ZodString: "string",
42093
42466
  ZodNumber: "number",
@@ -42155,7 +42528,7 @@ var asAnyOf = (def, refs) => {
42155
42528
  return anyOf.length ? { anyOf } : undefined;
42156
42529
  };
42157
42530
 
42158
- // node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
42531
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
42159
42532
  function parseNullableDef(def, refs) {
42160
42533
  if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
42161
42534
  if (refs.target === "openApi3") {
@@ -42187,7 +42560,7 @@ function parseNullableDef(def, refs) {
42187
42560
  return base && { anyOf: [base, { type: "null" }] };
42188
42561
  }
42189
42562
 
42190
- // node_modules/zod-to-json-schema/dist/esm/parsers/number.js
42563
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/number.js
42191
42564
  function parseNumberDef(def, refs) {
42192
42565
  const res = {
42193
42566
  type: "number"
@@ -42236,7 +42609,7 @@ function parseNumberDef(def, refs) {
42236
42609
  return res;
42237
42610
  }
42238
42611
 
42239
- // node_modules/zod-to-json-schema/dist/esm/parsers/object.js
42612
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/object.js
42240
42613
  function parseObjectDef(def, refs) {
42241
42614
  const forceOptionalIntoNullable = refs.target === "openAi";
42242
42615
  const result = {
@@ -42306,7 +42679,7 @@ function safeIsOptional(schema) {
42306
42679
  }
42307
42680
  }
42308
42681
 
42309
- // node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
42682
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
42310
42683
  var parseOptionalDef = (def, refs) => {
42311
42684
  if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
42312
42685
  return parseDef(def.innerType._def, refs);
@@ -42325,7 +42698,7 @@ var parseOptionalDef = (def, refs) => {
42325
42698
  } : parseAnyDef(refs);
42326
42699
  };
42327
42700
 
42328
- // node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
42701
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
42329
42702
  var parsePipelineDef = (def, refs) => {
42330
42703
  if (refs.pipeStrategy === "input") {
42331
42704
  return parseDef(def.in._def, refs);
@@ -42345,12 +42718,12 @@ var parsePipelineDef = (def, refs) => {
42345
42718
  };
42346
42719
  };
42347
42720
 
42348
- // node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
42721
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
42349
42722
  function parsePromiseDef(def, refs) {
42350
42723
  return parseDef(def.type._def, refs);
42351
42724
  }
42352
42725
 
42353
- // node_modules/zod-to-json-schema/dist/esm/parsers/set.js
42726
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/set.js
42354
42727
  function parseSetDef(def, refs) {
42355
42728
  const items = parseDef(def.valueType._def, {
42356
42729
  ...refs,
@@ -42370,7 +42743,7 @@ function parseSetDef(def, refs) {
42370
42743
  return schema;
42371
42744
  }
42372
42745
 
42373
- // node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
42746
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
42374
42747
  function parseTupleDef(def, refs) {
42375
42748
  if (def.rest) {
42376
42749
  return {
@@ -42398,24 +42771,24 @@ function parseTupleDef(def, refs) {
42398
42771
  }
42399
42772
  }
42400
42773
 
42401
- // node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
42774
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
42402
42775
  function parseUndefinedDef(refs) {
42403
42776
  return {
42404
42777
  not: parseAnyDef(refs)
42405
42778
  };
42406
42779
  }
42407
42780
 
42408
- // node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
42781
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
42409
42782
  function parseUnknownDef(refs) {
42410
42783
  return parseAnyDef(refs);
42411
42784
  }
42412
42785
 
42413
- // node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
42786
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
42414
42787
  var parseReadonlyDef = (def, refs) => {
42415
42788
  return parseDef(def.innerType._def, refs);
42416
42789
  };
42417
42790
 
42418
- // node_modules/zod-to-json-schema/dist/esm/selectParser.js
42791
+ // ../../../node_modules/zod-to-json-schema/dist/esm/selectParser.js
42419
42792
  var selectParser = (def, typeName, refs) => {
42420
42793
  switch (typeName) {
42421
42794
  case ZodFirstPartyTypeKind.ZodString:
@@ -42493,7 +42866,7 @@ var selectParser = (def, typeName, refs) => {
42493
42866
  }
42494
42867
  };
42495
42868
 
42496
- // node_modules/zod-to-json-schema/dist/esm/parseDef.js
42869
+ // ../../../node_modules/zod-to-json-schema/dist/esm/parseDef.js
42497
42870
  function parseDef(def, refs, forceResolution = false) {
42498
42871
  const seenItem = refs.seen.get(def);
42499
42872
  if (refs.override) {
@@ -42548,7 +42921,7 @@ var addMeta = (def, refs, jsonSchema) => {
42548
42921
  }
42549
42922
  return jsonSchema;
42550
42923
  };
42551
- // node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
42924
+ // ../../../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
42552
42925
  var zodToJsonSchema = (schema, options) => {
42553
42926
  const refs = getRefs(options);
42554
42927
  let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
@@ -42608,7 +42981,7 @@ var zodToJsonSchema = (schema, options) => {
42608
42981
  }
42609
42982
  return combined;
42610
42983
  };
42611
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
42984
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
42612
42985
  function getMethodLiteral(schema) {
42613
42986
  const shape = getObjectShape(schema);
42614
42987
  const methodSchema = shape?.method;
@@ -42629,7 +43002,7 @@ function parseWithCompat(schema, data) {
42629
43002
  return result.data;
42630
43003
  }
42631
43004
 
42632
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
43005
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
42633
43006
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;
42634
43007
 
42635
43008
  class Protocol {
@@ -43464,7 +43837,7 @@ function mergeCapabilities(base, additional) {
43464
43837
  return result;
43465
43838
  }
43466
43839
 
43467
- // node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
43840
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
43468
43841
  var import_ajv = __toESM(require_ajv(), 1);
43469
43842
  var import_ajv_formats = __toESM(require_dist(), 1);
43470
43843
  function createDefaultAjvInstance() {
@@ -43504,7 +43877,7 @@ class AjvJsonSchemaValidator {
43504
43877
  }
43505
43878
  }
43506
43879
 
43507
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
43880
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
43508
43881
  class ExperimentalServerTasks {
43509
43882
  constructor(_server) {
43510
43883
  this._server = _server;
@@ -43582,7 +43955,7 @@ class ExperimentalServerTasks {
43582
43955
  }
43583
43956
  }
43584
43957
 
43585
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
43958
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
43586
43959
  function assertToolsCallTaskCapability(requests, method, entityName) {
43587
43960
  if (!requests) {
43588
43961
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -43617,7 +43990,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
43617
43990
  }
43618
43991
  }
43619
43992
 
43620
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
43993
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
43621
43994
  class Server extends Protocol {
43622
43995
  constructor(_serverInfo, options) {
43623
43996
  super(options);
@@ -43950,10 +44323,10 @@ class Server extends Protocol {
43950
44323
  }
43951
44324
  }
43952
44325
 
43953
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
44326
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
43954
44327
  import process2 from "process";
43955
44328
 
43956
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
44329
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
43957
44330
  class ReadBuffer {
43958
44331
  append(chunk) {
43959
44332
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
@@ -43983,7 +44356,7 @@ function serializeMessage(message) {
43983
44356
  `;
43984
44357
  }
43985
44358
 
43986
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
44359
+ // ../../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
43987
44360
  class StdioServerTransport {
43988
44361
  constructor(_stdin = process2.stdin, _stdout = process2.stdout) {
43989
44362
  this._stdin = _stdin;