@gluecharm-lab/easyspecs-cli 0.0.16 → 0.0.18

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/main.cjs CHANGED
@@ -26,9 +26,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
 
29
- // node_modules/commander/lib/error.js
29
+ // ../../node_modules/commander/lib/error.js
30
30
  var require_error = __commonJS({
31
- "node_modules/commander/lib/error.js"(exports2) {
31
+ "../../node_modules/commander/lib/error.js"(exports2) {
32
32
  var CommanderError2 = class extends Error {
33
33
  /**
34
34
  * Constructs the CommanderError class
@@ -61,9 +61,9 @@ var require_error = __commonJS({
61
61
  }
62
62
  });
63
63
 
64
- // node_modules/commander/lib/argument.js
64
+ // ../../node_modules/commander/lib/argument.js
65
65
  var require_argument = __commonJS({
66
- "node_modules/commander/lib/argument.js"(exports2) {
66
+ "../../node_modules/commander/lib/argument.js"(exports2) {
67
67
  var { InvalidArgumentError: InvalidArgumentError2 } = require_error();
68
68
  var Argument2 = class {
69
69
  /**
@@ -188,9 +188,9 @@ var require_argument = __commonJS({
188
188
  }
189
189
  });
190
190
 
191
- // node_modules/commander/lib/help.js
191
+ // ../../node_modules/commander/lib/help.js
192
192
  var require_help = __commonJS({
193
- "node_modules/commander/lib/help.js"(exports2) {
193
+ "../../node_modules/commander/lib/help.js"(exports2) {
194
194
  var { humanReadableArgName } = require_argument();
195
195
  var Help2 = class {
196
196
  constructor() {
@@ -602,9 +602,9 @@ var require_help = __commonJS({
602
602
  }
603
603
  });
604
604
 
605
- // node_modules/commander/lib/option.js
605
+ // ../../node_modules/commander/lib/option.js
606
606
  var require_option = __commonJS({
607
- "node_modules/commander/lib/option.js"(exports2) {
607
+ "../../node_modules/commander/lib/option.js"(exports2) {
608
608
  var { InvalidArgumentError: InvalidArgumentError2 } = require_error();
609
609
  var Option2 = class {
610
610
  /**
@@ -874,9 +874,9 @@ var require_option = __commonJS({
874
874
  }
875
875
  });
876
876
 
877
- // node_modules/commander/lib/suggestSimilar.js
877
+ // ../../node_modules/commander/lib/suggestSimilar.js
878
878
  var require_suggestSimilar = __commonJS({
879
- "node_modules/commander/lib/suggestSimilar.js"(exports2) {
879
+ "../../node_modules/commander/lib/suggestSimilar.js"(exports2) {
880
880
  var maxDistance = 3;
881
881
  function editDistance(a, b) {
882
882
  if (Math.abs(a.length - b.length) > maxDistance)
@@ -954,9 +954,9 @@ var require_suggestSimilar = __commonJS({
954
954
  }
955
955
  });
956
956
 
957
- // node_modules/commander/lib/command.js
957
+ // ../../node_modules/commander/lib/command.js
958
958
  var require_command = __commonJS({
959
- "node_modules/commander/lib/command.js"(exports2) {
959
+ "../../node_modules/commander/lib/command.js"(exports2) {
960
960
  var EventEmitter = require("node:events").EventEmitter;
961
961
  var childProcess = require("node:child_process");
962
962
  var path60 = require("node:path");
@@ -2997,9 +2997,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
2997
2997
  }
2998
2998
  });
2999
2999
 
3000
- // node_modules/commander/index.js
3000
+ // ../../node_modules/commander/index.js
3001
3001
  var require_commander = __commonJS({
3002
- "node_modules/commander/index.js"(exports2) {
3002
+ "../../node_modules/commander/index.js"(exports2) {
3003
3003
  var { Argument: Argument2 } = require_argument();
3004
3004
  var { Command: Command2 } = require_command();
3005
3005
  var { CommanderError: CommanderError2, InvalidArgumentError: InvalidArgumentError2 } = require_error();
@@ -3019,9 +3019,9 @@ var require_commander = __commonJS({
3019
3019
  }
3020
3020
  });
3021
3021
 
3022
- // scripts/vscode-stub.cjs
3022
+ // ../../scripts/vscode-stub.cjs
3023
3023
  var require_vscode_stub = __commonJS({
3024
- "scripts/vscode-stub.cjs"(exports2, module2) {
3024
+ "../../scripts/vscode-stub.cjs"(exports2, module2) {
3025
3025
  "use strict";
3026
3026
  module2.exports = {
3027
3027
  workspace: {
@@ -3042,9 +3042,9 @@ var require_vscode_stub = __commonJS({
3042
3042
  }
3043
3043
  });
3044
3044
 
3045
- // node_modules/ajv/dist/compile/codegen/code.js
3045
+ // ../../node_modules/ajv/dist/compile/codegen/code.js
3046
3046
  var require_code = __commonJS({
3047
- "node_modules/ajv/dist/compile/codegen/code.js"(exports2) {
3047
+ "../../node_modules/ajv/dist/compile/codegen/code.js"(exports2) {
3048
3048
  "use strict";
3049
3049
  Object.defineProperty(exports2, "__esModule", { value: true });
3050
3050
  exports2.regexpCode = exports2.getEsmExportName = exports2.getProperty = exports2.safeStringify = exports2.stringify = exports2.strConcat = exports2.addCodeArg = exports2.str = exports2._ = exports2.nil = exports2._Code = exports2.Name = exports2.IDENTIFIER = exports2._CodeOrName = void 0;
@@ -3196,9 +3196,9 @@ var require_code = __commonJS({
3196
3196
  }
3197
3197
  });
3198
3198
 
3199
- // node_modules/ajv/dist/compile/codegen/scope.js
3199
+ // ../../node_modules/ajv/dist/compile/codegen/scope.js
3200
3200
  var require_scope = __commonJS({
3201
- "node_modules/ajv/dist/compile/codegen/scope.js"(exports2) {
3201
+ "../../node_modules/ajv/dist/compile/codegen/scope.js"(exports2) {
3202
3202
  "use strict";
3203
3203
  Object.defineProperty(exports2, "__esModule", { value: true });
3204
3204
  exports2.ValueScope = exports2.ValueScopeName = exports2.Scope = exports2.varKinds = exports2.UsedValueState = void 0;
@@ -3341,9 +3341,9 @@ var require_scope = __commonJS({
3341
3341
  }
3342
3342
  });
3343
3343
 
3344
- // node_modules/ajv/dist/compile/codegen/index.js
3344
+ // ../../node_modules/ajv/dist/compile/codegen/index.js
3345
3345
  var require_codegen = __commonJS({
3346
- "node_modules/ajv/dist/compile/codegen/index.js"(exports2) {
3346
+ "../../node_modules/ajv/dist/compile/codegen/index.js"(exports2) {
3347
3347
  "use strict";
3348
3348
  Object.defineProperty(exports2, "__esModule", { value: true });
3349
3349
  exports2.or = exports2.and = exports2.not = exports2.CodeGen = exports2.operators = exports2.varKinds = exports2.ValueScopeName = exports2.ValueScope = exports2.Scope = exports2.Name = exports2.regexpCode = exports2.stringify = exports2.getProperty = exports2.nil = exports2.strConcat = exports2.str = exports2._ = void 0;
@@ -4061,9 +4061,9 @@ var require_codegen = __commonJS({
4061
4061
  }
4062
4062
  });
4063
4063
 
4064
- // node_modules/ajv/dist/compile/util.js
4064
+ // ../../node_modules/ajv/dist/compile/util.js
4065
4065
  var require_util = __commonJS({
4066
- "node_modules/ajv/dist/compile/util.js"(exports2) {
4066
+ "../../node_modules/ajv/dist/compile/util.js"(exports2) {
4067
4067
  "use strict";
4068
4068
  Object.defineProperty(exports2, "__esModule", { value: true });
4069
4069
  exports2.checkStrictMode = exports2.getErrorPath = exports2.Type = exports2.useFunc = exports2.setEvaluated = exports2.evaluatedPropsToName = exports2.mergeEvaluated = exports2.eachItem = exports2.unescapeJsonPointer = exports2.escapeJsonPointer = exports2.escapeFragment = exports2.unescapeFragment = exports2.schemaRefOrVal = exports2.schemaHasRulesButRef = exports2.schemaHasRules = exports2.checkUnknownRules = exports2.alwaysValidSchema = exports2.toHash = void 0;
@@ -4228,9 +4228,9 @@ var require_util = __commonJS({
4228
4228
  }
4229
4229
  });
4230
4230
 
4231
- // node_modules/ajv/dist/compile/names.js
4231
+ // ../../node_modules/ajv/dist/compile/names.js
4232
4232
  var require_names = __commonJS({
4233
- "node_modules/ajv/dist/compile/names.js"(exports2) {
4233
+ "../../node_modules/ajv/dist/compile/names.js"(exports2) {
4234
4234
  "use strict";
4235
4235
  Object.defineProperty(exports2, "__esModule", { value: true });
4236
4236
  var codegen_1 = require_codegen();
@@ -4267,9 +4267,9 @@ var require_names = __commonJS({
4267
4267
  }
4268
4268
  });
4269
4269
 
4270
- // node_modules/ajv/dist/compile/errors.js
4270
+ // ../../node_modules/ajv/dist/compile/errors.js
4271
4271
  var require_errors = __commonJS({
4272
- "node_modules/ajv/dist/compile/errors.js"(exports2) {
4272
+ "../../node_modules/ajv/dist/compile/errors.js"(exports2) {
4273
4273
  "use strict";
4274
4274
  Object.defineProperty(exports2, "__esModule", { value: true });
4275
4275
  exports2.extendErrors = exports2.resetErrorsCount = exports2.reportExtraError = exports2.reportError = exports2.keyword$DataError = exports2.keywordError = void 0;
@@ -4389,9 +4389,9 @@ var require_errors = __commonJS({
4389
4389
  }
4390
4390
  });
4391
4391
 
4392
- // node_modules/ajv/dist/compile/validate/boolSchema.js
4392
+ // ../../node_modules/ajv/dist/compile/validate/boolSchema.js
4393
4393
  var require_boolSchema = __commonJS({
4394
- "node_modules/ajv/dist/compile/validate/boolSchema.js"(exports2) {
4394
+ "../../node_modules/ajv/dist/compile/validate/boolSchema.js"(exports2) {
4395
4395
  "use strict";
4396
4396
  Object.defineProperty(exports2, "__esModule", { value: true });
4397
4397
  exports2.boolOrEmptySchema = exports2.topBoolOrEmptySchema = void 0;
@@ -4440,9 +4440,9 @@ var require_boolSchema = __commonJS({
4440
4440
  }
4441
4441
  });
4442
4442
 
4443
- // node_modules/ajv/dist/compile/rules.js
4443
+ // ../../node_modules/ajv/dist/compile/rules.js
4444
4444
  var require_rules = __commonJS({
4445
- "node_modules/ajv/dist/compile/rules.js"(exports2) {
4445
+ "../../node_modules/ajv/dist/compile/rules.js"(exports2) {
4446
4446
  "use strict";
4447
4447
  Object.defineProperty(exports2, "__esModule", { value: true });
4448
4448
  exports2.getRules = exports2.isJSONType = void 0;
@@ -4471,9 +4471,9 @@ var require_rules = __commonJS({
4471
4471
  }
4472
4472
  });
4473
4473
 
4474
- // node_modules/ajv/dist/compile/validate/applicability.js
4474
+ // ../../node_modules/ajv/dist/compile/validate/applicability.js
4475
4475
  var require_applicability = __commonJS({
4476
- "node_modules/ajv/dist/compile/validate/applicability.js"(exports2) {
4476
+ "../../node_modules/ajv/dist/compile/validate/applicability.js"(exports2) {
4477
4477
  "use strict";
4478
4478
  Object.defineProperty(exports2, "__esModule", { value: true });
4479
4479
  exports2.shouldUseRule = exports2.shouldUseGroup = exports2.schemaHasRulesForType = void 0;
@@ -4494,9 +4494,9 @@ var require_applicability = __commonJS({
4494
4494
  }
4495
4495
  });
4496
4496
 
4497
- // node_modules/ajv/dist/compile/validate/dataType.js
4497
+ // ../../node_modules/ajv/dist/compile/validate/dataType.js
4498
4498
  var require_dataType = __commonJS({
4499
- "node_modules/ajv/dist/compile/validate/dataType.js"(exports2) {
4499
+ "../../node_modules/ajv/dist/compile/validate/dataType.js"(exports2) {
4500
4500
  "use strict";
4501
4501
  Object.defineProperty(exports2, "__esModule", { value: true });
4502
4502
  exports2.reportTypeError = exports2.checkDataTypes = exports2.checkDataType = exports2.coerceAndCheckDataType = exports2.getJSONTypes = exports2.getSchemaTypes = exports2.DataType = void 0;
@@ -4678,9 +4678,9 @@ var require_dataType = __commonJS({
4678
4678
  }
4679
4679
  });
4680
4680
 
4681
- // node_modules/ajv/dist/compile/validate/defaults.js
4681
+ // ../../node_modules/ajv/dist/compile/validate/defaults.js
4682
4682
  var require_defaults = __commonJS({
4683
- "node_modules/ajv/dist/compile/validate/defaults.js"(exports2) {
4683
+ "../../node_modules/ajv/dist/compile/validate/defaults.js"(exports2) {
4684
4684
  "use strict";
4685
4685
  Object.defineProperty(exports2, "__esModule", { value: true });
4686
4686
  exports2.assignDefaults = void 0;
@@ -4715,9 +4715,9 @@ var require_defaults = __commonJS({
4715
4715
  }
4716
4716
  });
4717
4717
 
4718
- // node_modules/ajv/dist/vocabularies/code.js
4718
+ // ../../node_modules/ajv/dist/vocabularies/code.js
4719
4719
  var require_code2 = __commonJS({
4720
- "node_modules/ajv/dist/vocabularies/code.js"(exports2) {
4720
+ "../../node_modules/ajv/dist/vocabularies/code.js"(exports2) {
4721
4721
  "use strict";
4722
4722
  Object.defineProperty(exports2, "__esModule", { value: true });
4723
4723
  exports2.validateUnion = exports2.validateArray = exports2.usePattern = exports2.callValidateCode = exports2.schemaProperties = exports2.allSchemaProperties = exports2.noPropertyInData = exports2.propertyInData = exports2.isOwnProperty = exports2.hasPropFunc = exports2.reportMissingProp = exports2.checkMissingProp = exports2.checkReportMissingProp = void 0;
@@ -4848,9 +4848,9 @@ var require_code2 = __commonJS({
4848
4848
  }
4849
4849
  });
4850
4850
 
4851
- // node_modules/ajv/dist/compile/validate/keyword.js
4851
+ // ../../node_modules/ajv/dist/compile/validate/keyword.js
4852
4852
  var require_keyword = __commonJS({
4853
- "node_modules/ajv/dist/compile/validate/keyword.js"(exports2) {
4853
+ "../../node_modules/ajv/dist/compile/validate/keyword.js"(exports2) {
4854
4854
  "use strict";
4855
4855
  Object.defineProperty(exports2, "__esModule", { value: true });
4856
4856
  exports2.validateKeywordUsage = exports2.validSchemaType = exports2.funcKeywordCode = exports2.macroKeywordCode = void 0;
@@ -4966,9 +4966,9 @@ var require_keyword = __commonJS({
4966
4966
  }
4967
4967
  });
4968
4968
 
4969
- // node_modules/ajv/dist/compile/validate/subschema.js
4969
+ // ../../node_modules/ajv/dist/compile/validate/subschema.js
4970
4970
  var require_subschema = __commonJS({
4971
- "node_modules/ajv/dist/compile/validate/subschema.js"(exports2) {
4971
+ "../../node_modules/ajv/dist/compile/validate/subschema.js"(exports2) {
4972
4972
  "use strict";
4973
4973
  Object.defineProperty(exports2, "__esModule", { value: true });
4974
4974
  exports2.extendSubschemaMode = exports2.extendSubschemaData = exports2.getSubschema = void 0;
@@ -5049,9 +5049,9 @@ var require_subschema = __commonJS({
5049
5049
  }
5050
5050
  });
5051
5051
 
5052
- // node_modules/fast-deep-equal/index.js
5052
+ // ../../node_modules/fast-deep-equal/index.js
5053
5053
  var require_fast_deep_equal = __commonJS({
5054
- "node_modules/fast-deep-equal/index.js"(exports2, module2) {
5054
+ "../../node_modules/fast-deep-equal/index.js"(exports2, module2) {
5055
5055
  "use strict";
5056
5056
  module2.exports = function equal(a, b) {
5057
5057
  if (a === b) return true;
@@ -5084,9 +5084,9 @@ var require_fast_deep_equal = __commonJS({
5084
5084
  }
5085
5085
  });
5086
5086
 
5087
- // node_modules/json-schema-traverse/index.js
5087
+ // ../../node_modules/json-schema-traverse/index.js
5088
5088
  var require_json_schema_traverse = __commonJS({
5089
- "node_modules/json-schema-traverse/index.js"(exports2, module2) {
5089
+ "../../node_modules/json-schema-traverse/index.js"(exports2, module2) {
5090
5090
  "use strict";
5091
5091
  var traverse = module2.exports = function(schema, opts, cb) {
5092
5092
  if (typeof opts == "function") {
@@ -5172,9 +5172,9 @@ var require_json_schema_traverse = __commonJS({
5172
5172
  }
5173
5173
  });
5174
5174
 
5175
- // node_modules/ajv/dist/compile/resolve.js
5175
+ // ../../node_modules/ajv/dist/compile/resolve.js
5176
5176
  var require_resolve = __commonJS({
5177
- "node_modules/ajv/dist/compile/resolve.js"(exports2) {
5177
+ "../../node_modules/ajv/dist/compile/resolve.js"(exports2) {
5178
5178
  "use strict";
5179
5179
  Object.defineProperty(exports2, "__esModule", { value: true });
5180
5180
  exports2.getSchemaRefs = exports2.resolveUrl = exports2.normalizeId = exports2._getFullPath = exports2.getFullPath = exports2.inlineRef = void 0;
@@ -5328,9 +5328,9 @@ var require_resolve = __commonJS({
5328
5328
  }
5329
5329
  });
5330
5330
 
5331
- // node_modules/ajv/dist/compile/validate/index.js
5331
+ // ../../node_modules/ajv/dist/compile/validate/index.js
5332
5332
  var require_validate = __commonJS({
5333
- "node_modules/ajv/dist/compile/validate/index.js"(exports2) {
5333
+ "../../node_modules/ajv/dist/compile/validate/index.js"(exports2) {
5334
5334
  "use strict";
5335
5335
  Object.defineProperty(exports2, "__esModule", { value: true });
5336
5336
  exports2.getData = exports2.KeywordCxt = exports2.validateFunctionCode = void 0;
@@ -5836,9 +5836,9 @@ var require_validate = __commonJS({
5836
5836
  }
5837
5837
  });
5838
5838
 
5839
- // node_modules/ajv/dist/runtime/validation_error.js
5839
+ // ../../node_modules/ajv/dist/runtime/validation_error.js
5840
5840
  var require_validation_error = __commonJS({
5841
- "node_modules/ajv/dist/runtime/validation_error.js"(exports2) {
5841
+ "../../node_modules/ajv/dist/runtime/validation_error.js"(exports2) {
5842
5842
  "use strict";
5843
5843
  Object.defineProperty(exports2, "__esModule", { value: true });
5844
5844
  var ValidationError = class extends Error {
@@ -5852,9 +5852,9 @@ var require_validation_error = __commonJS({
5852
5852
  }
5853
5853
  });
5854
5854
 
5855
- // node_modules/ajv/dist/compile/ref_error.js
5855
+ // ../../node_modules/ajv/dist/compile/ref_error.js
5856
5856
  var require_ref_error = __commonJS({
5857
- "node_modules/ajv/dist/compile/ref_error.js"(exports2) {
5857
+ "../../node_modules/ajv/dist/compile/ref_error.js"(exports2) {
5858
5858
  "use strict";
5859
5859
  Object.defineProperty(exports2, "__esModule", { value: true });
5860
5860
  var resolve_1 = require_resolve();
@@ -5869,9 +5869,9 @@ var require_ref_error = __commonJS({
5869
5869
  }
5870
5870
  });
5871
5871
 
5872
- // node_modules/ajv/dist/compile/index.js
5872
+ // ../../node_modules/ajv/dist/compile/index.js
5873
5873
  var require_compile = __commonJS({
5874
- "node_modules/ajv/dist/compile/index.js"(exports2) {
5874
+ "../../node_modules/ajv/dist/compile/index.js"(exports2) {
5875
5875
  "use strict";
5876
5876
  Object.defineProperty(exports2, "__esModule", { value: true });
5877
5877
  exports2.resolveSchema = exports2.getCompilingSchema = exports2.resolveRef = exports2.compileSchema = exports2.SchemaEnv = void 0;
@@ -6093,9 +6093,9 @@ var require_compile = __commonJS({
6093
6093
  }
6094
6094
  });
6095
6095
 
6096
- // node_modules/ajv/dist/refs/data.json
6096
+ // ../../node_modules/ajv/dist/refs/data.json
6097
6097
  var require_data = __commonJS({
6098
- "node_modules/ajv/dist/refs/data.json"(exports2, module2) {
6098
+ "../../node_modules/ajv/dist/refs/data.json"(exports2, module2) {
6099
6099
  module2.exports = {
6100
6100
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
6101
6101
  description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
@@ -6112,9 +6112,9 @@ var require_data = __commonJS({
6112
6112
  }
6113
6113
  });
6114
6114
 
6115
- // node_modules/fast-uri/lib/utils.js
6115
+ // ../../node_modules/fast-uri/lib/utils.js
6116
6116
  var require_utils = __commonJS({
6117
- "node_modules/fast-uri/lib/utils.js"(exports2, module2) {
6117
+ "../../node_modules/fast-uri/lib/utils.js"(exports2, module2) {
6118
6118
  "use strict";
6119
6119
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
6120
6120
  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);
@@ -6369,9 +6369,9 @@ var require_utils = __commonJS({
6369
6369
  }
6370
6370
  });
6371
6371
 
6372
- // node_modules/fast-uri/lib/schemes.js
6372
+ // ../../node_modules/fast-uri/lib/schemes.js
6373
6373
  var require_schemes = __commonJS({
6374
- "node_modules/fast-uri/lib/schemes.js"(exports2, module2) {
6374
+ "../../node_modules/fast-uri/lib/schemes.js"(exports2, module2) {
6375
6375
  "use strict";
6376
6376
  var { isUUID } = require_utils();
6377
6377
  var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
@@ -6579,9 +6579,9 @@ var require_schemes = __commonJS({
6579
6579
  }
6580
6580
  });
6581
6581
 
6582
- // node_modules/fast-uri/index.js
6582
+ // ../../node_modules/fast-uri/index.js
6583
6583
  var require_fast_uri = __commonJS({
6584
- "node_modules/fast-uri/index.js"(exports2, module2) {
6584
+ "../../node_modules/fast-uri/index.js"(exports2, module2) {
6585
6585
  "use strict";
6586
6586
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require_utils();
6587
6587
  var { SCHEMES, getSchemeHandler } = require_schemes();
@@ -6834,9 +6834,9 @@ var require_fast_uri = __commonJS({
6834
6834
  }
6835
6835
  });
6836
6836
 
6837
- // node_modules/ajv/dist/runtime/uri.js
6837
+ // ../../node_modules/ajv/dist/runtime/uri.js
6838
6838
  var require_uri = __commonJS({
6839
- "node_modules/ajv/dist/runtime/uri.js"(exports2) {
6839
+ "../../node_modules/ajv/dist/runtime/uri.js"(exports2) {
6840
6840
  "use strict";
6841
6841
  Object.defineProperty(exports2, "__esModule", { value: true });
6842
6842
  var uri = require_fast_uri();
@@ -6845,9 +6845,9 @@ var require_uri = __commonJS({
6845
6845
  }
6846
6846
  });
6847
6847
 
6848
- // node_modules/ajv/dist/core.js
6848
+ // ../../node_modules/ajv/dist/core.js
6849
6849
  var require_core = __commonJS({
6850
- "node_modules/ajv/dist/core.js"(exports2) {
6850
+ "../../node_modules/ajv/dist/core.js"(exports2) {
6851
6851
  "use strict";
6852
6852
  Object.defineProperty(exports2, "__esModule", { value: true });
6853
6853
  exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = void 0;
@@ -7456,9 +7456,9 @@ var require_core = __commonJS({
7456
7456
  }
7457
7457
  });
7458
7458
 
7459
- // node_modules/ajv/dist/vocabularies/core/id.js
7459
+ // ../../node_modules/ajv/dist/vocabularies/core/id.js
7460
7460
  var require_id = __commonJS({
7461
- "node_modules/ajv/dist/vocabularies/core/id.js"(exports2) {
7461
+ "../../node_modules/ajv/dist/vocabularies/core/id.js"(exports2) {
7462
7462
  "use strict";
7463
7463
  Object.defineProperty(exports2, "__esModule", { value: true });
7464
7464
  var def = {
@@ -7471,9 +7471,9 @@ var require_id = __commonJS({
7471
7471
  }
7472
7472
  });
7473
7473
 
7474
- // node_modules/ajv/dist/vocabularies/core/ref.js
7474
+ // ../../node_modules/ajv/dist/vocabularies/core/ref.js
7475
7475
  var require_ref = __commonJS({
7476
- "node_modules/ajv/dist/vocabularies/core/ref.js"(exports2) {
7476
+ "../../node_modules/ajv/dist/vocabularies/core/ref.js"(exports2) {
7477
7477
  "use strict";
7478
7478
  Object.defineProperty(exports2, "__esModule", { value: true });
7479
7479
  exports2.callRef = exports2.getValidate = void 0;
@@ -7593,9 +7593,9 @@ var require_ref = __commonJS({
7593
7593
  }
7594
7594
  });
7595
7595
 
7596
- // node_modules/ajv/dist/vocabularies/core/index.js
7596
+ // ../../node_modules/ajv/dist/vocabularies/core/index.js
7597
7597
  var require_core2 = __commonJS({
7598
- "node_modules/ajv/dist/vocabularies/core/index.js"(exports2) {
7598
+ "../../node_modules/ajv/dist/vocabularies/core/index.js"(exports2) {
7599
7599
  "use strict";
7600
7600
  Object.defineProperty(exports2, "__esModule", { value: true });
7601
7601
  var id_1 = require_id();
@@ -7614,9 +7614,9 @@ var require_core2 = __commonJS({
7614
7614
  }
7615
7615
  });
7616
7616
 
7617
- // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
7617
+ // ../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js
7618
7618
  var require_limitNumber = __commonJS({
7619
- "node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports2) {
7619
+ "../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports2) {
7620
7620
  "use strict";
7621
7621
  Object.defineProperty(exports2, "__esModule", { value: true });
7622
7622
  var codegen_1 = require_codegen();
@@ -7646,9 +7646,9 @@ var require_limitNumber = __commonJS({
7646
7646
  }
7647
7647
  });
7648
7648
 
7649
- // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
7649
+ // ../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js
7650
7650
  var require_multipleOf = __commonJS({
7651
- "node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports2) {
7651
+ "../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports2) {
7652
7652
  "use strict";
7653
7653
  Object.defineProperty(exports2, "__esModule", { value: true });
7654
7654
  var codegen_1 = require_codegen();
@@ -7674,9 +7674,9 @@ var require_multipleOf = __commonJS({
7674
7674
  }
7675
7675
  });
7676
7676
 
7677
- // node_modules/ajv/dist/runtime/ucs2length.js
7677
+ // ../../node_modules/ajv/dist/runtime/ucs2length.js
7678
7678
  var require_ucs2length = __commonJS({
7679
- "node_modules/ajv/dist/runtime/ucs2length.js"(exports2) {
7679
+ "../../node_modules/ajv/dist/runtime/ucs2length.js"(exports2) {
7680
7680
  "use strict";
7681
7681
  Object.defineProperty(exports2, "__esModule", { value: true });
7682
7682
  function ucs2length(str) {
@@ -7700,9 +7700,9 @@ var require_ucs2length = __commonJS({
7700
7700
  }
7701
7701
  });
7702
7702
 
7703
- // node_modules/ajv/dist/vocabularies/validation/limitLength.js
7703
+ // ../../node_modules/ajv/dist/vocabularies/validation/limitLength.js
7704
7704
  var require_limitLength = __commonJS({
7705
- "node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports2) {
7705
+ "../../node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports2) {
7706
7706
  "use strict";
7707
7707
  Object.defineProperty(exports2, "__esModule", { value: true });
7708
7708
  var codegen_1 = require_codegen();
@@ -7732,9 +7732,9 @@ var require_limitLength = __commonJS({
7732
7732
  }
7733
7733
  });
7734
7734
 
7735
- // node_modules/ajv/dist/vocabularies/validation/pattern.js
7735
+ // ../../node_modules/ajv/dist/vocabularies/validation/pattern.js
7736
7736
  var require_pattern = __commonJS({
7737
- "node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports2) {
7737
+ "../../node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports2) {
7738
7738
  "use strict";
7739
7739
  Object.defineProperty(exports2, "__esModule", { value: true });
7740
7740
  var code_1 = require_code2();
@@ -7769,9 +7769,9 @@ var require_pattern = __commonJS({
7769
7769
  }
7770
7770
  });
7771
7771
 
7772
- // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
7772
+ // ../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js
7773
7773
  var require_limitProperties = __commonJS({
7774
- "node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports2) {
7774
+ "../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports2) {
7775
7775
  "use strict";
7776
7776
  Object.defineProperty(exports2, "__esModule", { value: true });
7777
7777
  var codegen_1 = require_codegen();
@@ -7798,9 +7798,9 @@ var require_limitProperties = __commonJS({
7798
7798
  }
7799
7799
  });
7800
7800
 
7801
- // node_modules/ajv/dist/vocabularies/validation/required.js
7801
+ // ../../node_modules/ajv/dist/vocabularies/validation/required.js
7802
7802
  var require_required = __commonJS({
7803
- "node_modules/ajv/dist/vocabularies/validation/required.js"(exports2) {
7803
+ "../../node_modules/ajv/dist/vocabularies/validation/required.js"(exports2) {
7804
7804
  "use strict";
7805
7805
  Object.defineProperty(exports2, "__esModule", { value: true });
7806
7806
  var code_1 = require_code2();
@@ -7880,9 +7880,9 @@ var require_required = __commonJS({
7880
7880
  }
7881
7881
  });
7882
7882
 
7883
- // node_modules/ajv/dist/vocabularies/validation/limitItems.js
7883
+ // ../../node_modules/ajv/dist/vocabularies/validation/limitItems.js
7884
7884
  var require_limitItems = __commonJS({
7885
- "node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports2) {
7885
+ "../../node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports2) {
7886
7886
  "use strict";
7887
7887
  Object.defineProperty(exports2, "__esModule", { value: true });
7888
7888
  var codegen_1 = require_codegen();
@@ -7909,9 +7909,9 @@ var require_limitItems = __commonJS({
7909
7909
  }
7910
7910
  });
7911
7911
 
7912
- // node_modules/ajv/dist/runtime/equal.js
7912
+ // ../../node_modules/ajv/dist/runtime/equal.js
7913
7913
  var require_equal = __commonJS({
7914
- "node_modules/ajv/dist/runtime/equal.js"(exports2) {
7914
+ "../../node_modules/ajv/dist/runtime/equal.js"(exports2) {
7915
7915
  "use strict";
7916
7916
  Object.defineProperty(exports2, "__esModule", { value: true });
7917
7917
  var equal = require_fast_deep_equal();
@@ -7920,9 +7920,9 @@ var require_equal = __commonJS({
7920
7920
  }
7921
7921
  });
7922
7922
 
7923
- // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
7923
+ // ../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
7924
7924
  var require_uniqueItems = __commonJS({
7925
- "node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports2) {
7925
+ "../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports2) {
7926
7926
  "use strict";
7927
7927
  Object.defineProperty(exports2, "__esModule", { value: true });
7928
7928
  var dataType_1 = require_dataType();
@@ -7987,9 +7987,9 @@ var require_uniqueItems = __commonJS({
7987
7987
  }
7988
7988
  });
7989
7989
 
7990
- // node_modules/ajv/dist/vocabularies/validation/const.js
7990
+ // ../../node_modules/ajv/dist/vocabularies/validation/const.js
7991
7991
  var require_const = __commonJS({
7992
- "node_modules/ajv/dist/vocabularies/validation/const.js"(exports2) {
7992
+ "../../node_modules/ajv/dist/vocabularies/validation/const.js"(exports2) {
7993
7993
  "use strict";
7994
7994
  Object.defineProperty(exports2, "__esModule", { value: true });
7995
7995
  var codegen_1 = require_codegen();
@@ -8016,9 +8016,9 @@ var require_const = __commonJS({
8016
8016
  }
8017
8017
  });
8018
8018
 
8019
- // node_modules/ajv/dist/vocabularies/validation/enum.js
8019
+ // ../../node_modules/ajv/dist/vocabularies/validation/enum.js
8020
8020
  var require_enum = __commonJS({
8021
- "node_modules/ajv/dist/vocabularies/validation/enum.js"(exports2) {
8021
+ "../../node_modules/ajv/dist/vocabularies/validation/enum.js"(exports2) {
8022
8022
  "use strict";
8023
8023
  Object.defineProperty(exports2, "__esModule", { value: true });
8024
8024
  var codegen_1 = require_codegen();
@@ -8065,9 +8065,9 @@ var require_enum = __commonJS({
8065
8065
  }
8066
8066
  });
8067
8067
 
8068
- // node_modules/ajv/dist/vocabularies/validation/index.js
8068
+ // ../../node_modules/ajv/dist/vocabularies/validation/index.js
8069
8069
  var require_validation = __commonJS({
8070
- "node_modules/ajv/dist/vocabularies/validation/index.js"(exports2) {
8070
+ "../../node_modules/ajv/dist/vocabularies/validation/index.js"(exports2) {
8071
8071
  "use strict";
8072
8072
  Object.defineProperty(exports2, "__esModule", { value: true });
8073
8073
  var limitNumber_1 = require_limitNumber();
@@ -8103,9 +8103,9 @@ var require_validation = __commonJS({
8103
8103
  }
8104
8104
  });
8105
8105
 
8106
- // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
8106
+ // ../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
8107
8107
  var require_additionalItems = __commonJS({
8108
- "node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports2) {
8108
+ "../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports2) {
8109
8109
  "use strict";
8110
8110
  Object.defineProperty(exports2, "__esModule", { value: true });
8111
8111
  exports2.validateAdditionalItems = void 0;
@@ -8156,9 +8156,9 @@ var require_additionalItems = __commonJS({
8156
8156
  }
8157
8157
  });
8158
8158
 
8159
- // node_modules/ajv/dist/vocabularies/applicator/items.js
8159
+ // ../../node_modules/ajv/dist/vocabularies/applicator/items.js
8160
8160
  var require_items = __commonJS({
8161
- "node_modules/ajv/dist/vocabularies/applicator/items.js"(exports2) {
8161
+ "../../node_modules/ajv/dist/vocabularies/applicator/items.js"(exports2) {
8162
8162
  "use strict";
8163
8163
  Object.defineProperty(exports2, "__esModule", { value: true });
8164
8164
  exports2.validateTuple = void 0;
@@ -8213,9 +8213,9 @@ var require_items = __commonJS({
8213
8213
  }
8214
8214
  });
8215
8215
 
8216
- // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
8216
+ // ../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
8217
8217
  var require_prefixItems = __commonJS({
8218
- "node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports2) {
8218
+ "../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports2) {
8219
8219
  "use strict";
8220
8220
  Object.defineProperty(exports2, "__esModule", { value: true });
8221
8221
  var items_1 = require_items();
@@ -8230,9 +8230,9 @@ var require_prefixItems = __commonJS({
8230
8230
  }
8231
8231
  });
8232
8232
 
8233
- // node_modules/ajv/dist/vocabularies/applicator/items2020.js
8233
+ // ../../node_modules/ajv/dist/vocabularies/applicator/items2020.js
8234
8234
  var require_items2020 = __commonJS({
8235
- "node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports2) {
8235
+ "../../node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports2) {
8236
8236
  "use strict";
8237
8237
  Object.defineProperty(exports2, "__esModule", { value: true });
8238
8238
  var codegen_1 = require_codegen();
@@ -8265,9 +8265,9 @@ var require_items2020 = __commonJS({
8265
8265
  }
8266
8266
  });
8267
8267
 
8268
- // node_modules/ajv/dist/vocabularies/applicator/contains.js
8268
+ // ../../node_modules/ajv/dist/vocabularies/applicator/contains.js
8269
8269
  var require_contains = __commonJS({
8270
- "node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports2) {
8270
+ "../../node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports2) {
8271
8271
  "use strict";
8272
8272
  Object.defineProperty(exports2, "__esModule", { value: true });
8273
8273
  var codegen_1 = require_codegen();
@@ -8359,9 +8359,9 @@ var require_contains = __commonJS({
8359
8359
  }
8360
8360
  });
8361
8361
 
8362
- // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
8362
+ // ../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js
8363
8363
  var require_dependencies = __commonJS({
8364
- "node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports2) {
8364
+ "../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports2) {
8365
8365
  "use strict";
8366
8366
  Object.defineProperty(exports2, "__esModule", { value: true });
8367
8367
  exports2.validateSchemaDeps = exports2.validatePropertyDeps = exports2.error = void 0;
@@ -8453,9 +8453,9 @@ var require_dependencies = __commonJS({
8453
8453
  }
8454
8454
  });
8455
8455
 
8456
- // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
8456
+ // ../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
8457
8457
  var require_propertyNames = __commonJS({
8458
- "node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports2) {
8458
+ "../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports2) {
8459
8459
  "use strict";
8460
8460
  Object.defineProperty(exports2, "__esModule", { value: true });
8461
8461
  var codegen_1 = require_codegen();
@@ -8496,9 +8496,9 @@ var require_propertyNames = __commonJS({
8496
8496
  }
8497
8497
  });
8498
8498
 
8499
- // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
8499
+ // ../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
8500
8500
  var require_additionalProperties = __commonJS({
8501
- "node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports2) {
8501
+ "../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports2) {
8502
8502
  "use strict";
8503
8503
  Object.defineProperty(exports2, "__esModule", { value: true });
8504
8504
  var code_1 = require_code2();
@@ -8602,9 +8602,9 @@ var require_additionalProperties = __commonJS({
8602
8602
  }
8603
8603
  });
8604
8604
 
8605
- // node_modules/ajv/dist/vocabularies/applicator/properties.js
8605
+ // ../../node_modules/ajv/dist/vocabularies/applicator/properties.js
8606
8606
  var require_properties = __commonJS({
8607
- "node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports2) {
8607
+ "../../node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports2) {
8608
8608
  "use strict";
8609
8609
  Object.defineProperty(exports2, "__esModule", { value: true });
8610
8610
  var validate_1 = require_validate();
@@ -8660,9 +8660,9 @@ var require_properties = __commonJS({
8660
8660
  }
8661
8661
  });
8662
8662
 
8663
- // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
8663
+ // ../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
8664
8664
  var require_patternProperties = __commonJS({
8665
- "node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports2) {
8665
+ "../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports2) {
8666
8666
  "use strict";
8667
8667
  Object.defineProperty(exports2, "__esModule", { value: true });
8668
8668
  var code_1 = require_code2();
@@ -8734,9 +8734,9 @@ var require_patternProperties = __commonJS({
8734
8734
  }
8735
8735
  });
8736
8736
 
8737
- // node_modules/ajv/dist/vocabularies/applicator/not.js
8737
+ // ../../node_modules/ajv/dist/vocabularies/applicator/not.js
8738
8738
  var require_not = __commonJS({
8739
- "node_modules/ajv/dist/vocabularies/applicator/not.js"(exports2) {
8739
+ "../../node_modules/ajv/dist/vocabularies/applicator/not.js"(exports2) {
8740
8740
  "use strict";
8741
8741
  Object.defineProperty(exports2, "__esModule", { value: true });
8742
8742
  var util_1 = require_util();
@@ -8765,9 +8765,9 @@ var require_not = __commonJS({
8765
8765
  }
8766
8766
  });
8767
8767
 
8768
- // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
8768
+ // ../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js
8769
8769
  var require_anyOf = __commonJS({
8770
- "node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports2) {
8770
+ "../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports2) {
8771
8771
  "use strict";
8772
8772
  Object.defineProperty(exports2, "__esModule", { value: true });
8773
8773
  var code_1 = require_code2();
@@ -8782,9 +8782,9 @@ var require_anyOf = __commonJS({
8782
8782
  }
8783
8783
  });
8784
8784
 
8785
- // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
8785
+ // ../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js
8786
8786
  var require_oneOf = __commonJS({
8787
- "node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports2) {
8787
+ "../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports2) {
8788
8788
  "use strict";
8789
8789
  Object.defineProperty(exports2, "__esModule", { value: true });
8790
8790
  var codegen_1 = require_codegen();
@@ -8840,9 +8840,9 @@ var require_oneOf = __commonJS({
8840
8840
  }
8841
8841
  });
8842
8842
 
8843
- // node_modules/ajv/dist/vocabularies/applicator/allOf.js
8843
+ // ../../node_modules/ajv/dist/vocabularies/applicator/allOf.js
8844
8844
  var require_allOf = __commonJS({
8845
- "node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports2) {
8845
+ "../../node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports2) {
8846
8846
  "use strict";
8847
8847
  Object.defineProperty(exports2, "__esModule", { value: true });
8848
8848
  var util_1 = require_util();
@@ -8867,9 +8867,9 @@ var require_allOf = __commonJS({
8867
8867
  }
8868
8868
  });
8869
8869
 
8870
- // node_modules/ajv/dist/vocabularies/applicator/if.js
8870
+ // ../../node_modules/ajv/dist/vocabularies/applicator/if.js
8871
8871
  var require_if = __commonJS({
8872
- "node_modules/ajv/dist/vocabularies/applicator/if.js"(exports2) {
8872
+ "../../node_modules/ajv/dist/vocabularies/applicator/if.js"(exports2) {
8873
8873
  "use strict";
8874
8874
  Object.defineProperty(exports2, "__esModule", { value: true });
8875
8875
  var codegen_1 = require_codegen();
@@ -8936,9 +8936,9 @@ var require_if = __commonJS({
8936
8936
  }
8937
8937
  });
8938
8938
 
8939
- // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
8939
+ // ../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js
8940
8940
  var require_thenElse = __commonJS({
8941
- "node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports2) {
8941
+ "../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports2) {
8942
8942
  "use strict";
8943
8943
  Object.defineProperty(exports2, "__esModule", { value: true });
8944
8944
  var util_1 = require_util();
@@ -8954,9 +8954,9 @@ var require_thenElse = __commonJS({
8954
8954
  }
8955
8955
  });
8956
8956
 
8957
- // node_modules/ajv/dist/vocabularies/applicator/index.js
8957
+ // ../../node_modules/ajv/dist/vocabularies/applicator/index.js
8958
8958
  var require_applicator = __commonJS({
8959
- "node_modules/ajv/dist/vocabularies/applicator/index.js"(exports2) {
8959
+ "../../node_modules/ajv/dist/vocabularies/applicator/index.js"(exports2) {
8960
8960
  "use strict";
8961
8961
  Object.defineProperty(exports2, "__esModule", { value: true });
8962
8962
  var additionalItems_1 = require_additionalItems();
@@ -9002,9 +9002,9 @@ var require_applicator = __commonJS({
9002
9002
  }
9003
9003
  });
9004
9004
 
9005
- // node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js
9005
+ // ../../node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js
9006
9006
  var require_dynamicAnchor = __commonJS({
9007
- "node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js"(exports2) {
9007
+ "../../node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js"(exports2) {
9008
9008
  "use strict";
9009
9009
  Object.defineProperty(exports2, "__esModule", { value: true });
9010
9010
  exports2.dynamicAnchor = void 0;
@@ -9037,9 +9037,9 @@ var require_dynamicAnchor = __commonJS({
9037
9037
  }
9038
9038
  });
9039
9039
 
9040
- // node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js
9040
+ // ../../node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js
9041
9041
  var require_dynamicRef = __commonJS({
9042
- "node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js"(exports2) {
9042
+ "../../node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js"(exports2) {
9043
9043
  "use strict";
9044
9044
  Object.defineProperty(exports2, "__esModule", { value: true });
9045
9045
  exports2.dynamicRef = void 0;
@@ -9083,9 +9083,9 @@ var require_dynamicRef = __commonJS({
9083
9083
  }
9084
9084
  });
9085
9085
 
9086
- // node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js
9086
+ // ../../node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js
9087
9087
  var require_recursiveAnchor = __commonJS({
9088
- "node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js"(exports2) {
9088
+ "../../node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js"(exports2) {
9089
9089
  "use strict";
9090
9090
  Object.defineProperty(exports2, "__esModule", { value: true });
9091
9091
  var dynamicAnchor_1 = require_dynamicAnchor();
@@ -9104,9 +9104,9 @@ var require_recursiveAnchor = __commonJS({
9104
9104
  }
9105
9105
  });
9106
9106
 
9107
- // node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js
9107
+ // ../../node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js
9108
9108
  var require_recursiveRef = __commonJS({
9109
- "node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js"(exports2) {
9109
+ "../../node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js"(exports2) {
9110
9110
  "use strict";
9111
9111
  Object.defineProperty(exports2, "__esModule", { value: true });
9112
9112
  var dynamicRef_1 = require_dynamicRef();
@@ -9119,9 +9119,9 @@ var require_recursiveRef = __commonJS({
9119
9119
  }
9120
9120
  });
9121
9121
 
9122
- // node_modules/ajv/dist/vocabularies/dynamic/index.js
9122
+ // ../../node_modules/ajv/dist/vocabularies/dynamic/index.js
9123
9123
  var require_dynamic = __commonJS({
9124
- "node_modules/ajv/dist/vocabularies/dynamic/index.js"(exports2) {
9124
+ "../../node_modules/ajv/dist/vocabularies/dynamic/index.js"(exports2) {
9125
9125
  "use strict";
9126
9126
  Object.defineProperty(exports2, "__esModule", { value: true });
9127
9127
  var dynamicAnchor_1 = require_dynamicAnchor();
@@ -9133,9 +9133,9 @@ var require_dynamic = __commonJS({
9133
9133
  }
9134
9134
  });
9135
9135
 
9136
- // node_modules/ajv/dist/vocabularies/validation/dependentRequired.js
9136
+ // ../../node_modules/ajv/dist/vocabularies/validation/dependentRequired.js
9137
9137
  var require_dependentRequired = __commonJS({
9138
- "node_modules/ajv/dist/vocabularies/validation/dependentRequired.js"(exports2) {
9138
+ "../../node_modules/ajv/dist/vocabularies/validation/dependentRequired.js"(exports2) {
9139
9139
  "use strict";
9140
9140
  Object.defineProperty(exports2, "__esModule", { value: true });
9141
9141
  var dependencies_1 = require_dependencies();
@@ -9150,9 +9150,9 @@ var require_dependentRequired = __commonJS({
9150
9150
  }
9151
9151
  });
9152
9152
 
9153
- // node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js
9153
+ // ../../node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js
9154
9154
  var require_dependentSchemas = __commonJS({
9155
- "node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js"(exports2) {
9155
+ "../../node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js"(exports2) {
9156
9156
  "use strict";
9157
9157
  Object.defineProperty(exports2, "__esModule", { value: true });
9158
9158
  var dependencies_1 = require_dependencies();
@@ -9166,9 +9166,9 @@ var require_dependentSchemas = __commonJS({
9166
9166
  }
9167
9167
  });
9168
9168
 
9169
- // node_modules/ajv/dist/vocabularies/validation/limitContains.js
9169
+ // ../../node_modules/ajv/dist/vocabularies/validation/limitContains.js
9170
9170
  var require_limitContains = __commonJS({
9171
- "node_modules/ajv/dist/vocabularies/validation/limitContains.js"(exports2) {
9171
+ "../../node_modules/ajv/dist/vocabularies/validation/limitContains.js"(exports2) {
9172
9172
  "use strict";
9173
9173
  Object.defineProperty(exports2, "__esModule", { value: true });
9174
9174
  var util_1 = require_util();
@@ -9186,9 +9186,9 @@ var require_limitContains = __commonJS({
9186
9186
  }
9187
9187
  });
9188
9188
 
9189
- // node_modules/ajv/dist/vocabularies/next.js
9189
+ // ../../node_modules/ajv/dist/vocabularies/next.js
9190
9190
  var require_next = __commonJS({
9191
- "node_modules/ajv/dist/vocabularies/next.js"(exports2) {
9191
+ "../../node_modules/ajv/dist/vocabularies/next.js"(exports2) {
9192
9192
  "use strict";
9193
9193
  Object.defineProperty(exports2, "__esModule", { value: true });
9194
9194
  var dependentRequired_1 = require_dependentRequired();
@@ -9199,9 +9199,9 @@ var require_next = __commonJS({
9199
9199
  }
9200
9200
  });
9201
9201
 
9202
- // node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js
9202
+ // ../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js
9203
9203
  var require_unevaluatedProperties = __commonJS({
9204
- "node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js"(exports2) {
9204
+ "../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js"(exports2) {
9205
9205
  "use strict";
9206
9206
  Object.defineProperty(exports2, "__esModule", { value: true });
9207
9207
  var codegen_1 = require_codegen();
@@ -9265,9 +9265,9 @@ var require_unevaluatedProperties = __commonJS({
9265
9265
  }
9266
9266
  });
9267
9267
 
9268
- // node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js
9268
+ // ../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js
9269
9269
  var require_unevaluatedItems = __commonJS({
9270
- "node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js"(exports2) {
9270
+ "../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js"(exports2) {
9271
9271
  "use strict";
9272
9272
  Object.defineProperty(exports2, "__esModule", { value: true });
9273
9273
  var codegen_1 = require_codegen();
@@ -9309,9 +9309,9 @@ var require_unevaluatedItems = __commonJS({
9309
9309
  }
9310
9310
  });
9311
9311
 
9312
- // node_modules/ajv/dist/vocabularies/unevaluated/index.js
9312
+ // ../../node_modules/ajv/dist/vocabularies/unevaluated/index.js
9313
9313
  var require_unevaluated = __commonJS({
9314
- "node_modules/ajv/dist/vocabularies/unevaluated/index.js"(exports2) {
9314
+ "../../node_modules/ajv/dist/vocabularies/unevaluated/index.js"(exports2) {
9315
9315
  "use strict";
9316
9316
  Object.defineProperty(exports2, "__esModule", { value: true });
9317
9317
  var unevaluatedProperties_1 = require_unevaluatedProperties();
@@ -9321,9 +9321,9 @@ var require_unevaluated = __commonJS({
9321
9321
  }
9322
9322
  });
9323
9323
 
9324
- // node_modules/ajv/dist/vocabularies/format/format.js
9324
+ // ../../node_modules/ajv/dist/vocabularies/format/format.js
9325
9325
  var require_format = __commonJS({
9326
- "node_modules/ajv/dist/vocabularies/format/format.js"(exports2) {
9326
+ "../../node_modules/ajv/dist/vocabularies/format/format.js"(exports2) {
9327
9327
  "use strict";
9328
9328
  Object.defineProperty(exports2, "__esModule", { value: true });
9329
9329
  var codegen_1 = require_codegen();
@@ -9411,9 +9411,9 @@ var require_format = __commonJS({
9411
9411
  }
9412
9412
  });
9413
9413
 
9414
- // node_modules/ajv/dist/vocabularies/format/index.js
9414
+ // ../../node_modules/ajv/dist/vocabularies/format/index.js
9415
9415
  var require_format2 = __commonJS({
9416
- "node_modules/ajv/dist/vocabularies/format/index.js"(exports2) {
9416
+ "../../node_modules/ajv/dist/vocabularies/format/index.js"(exports2) {
9417
9417
  "use strict";
9418
9418
  Object.defineProperty(exports2, "__esModule", { value: true });
9419
9419
  var format_1 = require_format();
@@ -9422,9 +9422,9 @@ var require_format2 = __commonJS({
9422
9422
  }
9423
9423
  });
9424
9424
 
9425
- // node_modules/ajv/dist/vocabularies/metadata.js
9425
+ // ../../node_modules/ajv/dist/vocabularies/metadata.js
9426
9426
  var require_metadata = __commonJS({
9427
- "node_modules/ajv/dist/vocabularies/metadata.js"(exports2) {
9427
+ "../../node_modules/ajv/dist/vocabularies/metadata.js"(exports2) {
9428
9428
  "use strict";
9429
9429
  Object.defineProperty(exports2, "__esModule", { value: true });
9430
9430
  exports2.contentVocabulary = exports2.metadataVocabulary = void 0;
@@ -9445,9 +9445,9 @@ var require_metadata = __commonJS({
9445
9445
  }
9446
9446
  });
9447
9447
 
9448
- // node_modules/ajv/dist/vocabularies/draft2020.js
9448
+ // ../../node_modules/ajv/dist/vocabularies/draft2020.js
9449
9449
  var require_draft2020 = __commonJS({
9450
- "node_modules/ajv/dist/vocabularies/draft2020.js"(exports2) {
9450
+ "../../node_modules/ajv/dist/vocabularies/draft2020.js"(exports2) {
9451
9451
  "use strict";
9452
9452
  Object.defineProperty(exports2, "__esModule", { value: true });
9453
9453
  var core_1 = require_core2();
@@ -9473,9 +9473,9 @@ var require_draft2020 = __commonJS({
9473
9473
  }
9474
9474
  });
9475
9475
 
9476
- // node_modules/ajv/dist/vocabularies/discriminator/types.js
9476
+ // ../../node_modules/ajv/dist/vocabularies/discriminator/types.js
9477
9477
  var require_types = __commonJS({
9478
- "node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports2) {
9478
+ "../../node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports2) {
9479
9479
  "use strict";
9480
9480
  Object.defineProperty(exports2, "__esModule", { value: true });
9481
9481
  exports2.DiscrError = void 0;
@@ -9487,9 +9487,9 @@ var require_types = __commonJS({
9487
9487
  }
9488
9488
  });
9489
9489
 
9490
- // node_modules/ajv/dist/vocabularies/discriminator/index.js
9490
+ // ../../node_modules/ajv/dist/vocabularies/discriminator/index.js
9491
9491
  var require_discriminator = __commonJS({
9492
- "node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports2) {
9492
+ "../../node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports2) {
9493
9493
  "use strict";
9494
9494
  Object.defineProperty(exports2, "__esModule", { value: true });
9495
9495
  var codegen_1 = require_codegen();
@@ -9592,9 +9592,9 @@ var require_discriminator = __commonJS({
9592
9592
  }
9593
9593
  });
9594
9594
 
9595
- // node_modules/ajv/dist/refs/json-schema-2020-12/schema.json
9595
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/schema.json
9596
9596
  var require_schema = __commonJS({
9597
- "node_modules/ajv/dist/refs/json-schema-2020-12/schema.json"(exports2, module2) {
9597
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/schema.json"(exports2, module2) {
9598
9598
  module2.exports = {
9599
9599
  $schema: "https://json-schema.org/draft/2020-12/schema",
9600
9600
  $id: "https://json-schema.org/draft/2020-12/schema",
@@ -9652,9 +9652,9 @@ var require_schema = __commonJS({
9652
9652
  }
9653
9653
  });
9654
9654
 
9655
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json
9655
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json
9656
9656
  var require_applicator2 = __commonJS({
9657
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json"(exports2, module2) {
9657
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json"(exports2, module2) {
9658
9658
  module2.exports = {
9659
9659
  $schema: "https://json-schema.org/draft/2020-12/schema",
9660
9660
  $id: "https://json-schema.org/draft/2020-12/meta/applicator",
@@ -9705,9 +9705,9 @@ var require_applicator2 = __commonJS({
9705
9705
  }
9706
9706
  });
9707
9707
 
9708
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json
9708
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json
9709
9709
  var require_unevaluated2 = __commonJS({
9710
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json"(exports2, module2) {
9710
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json"(exports2, module2) {
9711
9711
  module2.exports = {
9712
9712
  $schema: "https://json-schema.org/draft/2020-12/schema",
9713
9713
  $id: "https://json-schema.org/draft/2020-12/meta/unevaluated",
@@ -9725,9 +9725,9 @@ var require_unevaluated2 = __commonJS({
9725
9725
  }
9726
9726
  });
9727
9727
 
9728
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json
9728
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json
9729
9729
  var require_content = __commonJS({
9730
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json"(exports2, module2) {
9730
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json"(exports2, module2) {
9731
9731
  module2.exports = {
9732
9732
  $schema: "https://json-schema.org/draft/2020-12/schema",
9733
9733
  $id: "https://json-schema.org/draft/2020-12/meta/content",
@@ -9746,9 +9746,9 @@ var require_content = __commonJS({
9746
9746
  }
9747
9747
  });
9748
9748
 
9749
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json
9749
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json
9750
9750
  var require_core3 = __commonJS({
9751
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json"(exports2, module2) {
9751
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json"(exports2, module2) {
9752
9752
  module2.exports = {
9753
9753
  $schema: "https://json-schema.org/draft/2020-12/schema",
9754
9754
  $id: "https://json-schema.org/draft/2020-12/meta/core",
@@ -9802,9 +9802,9 @@ var require_core3 = __commonJS({
9802
9802
  }
9803
9803
  });
9804
9804
 
9805
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json
9805
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json
9806
9806
  var require_format_annotation = __commonJS({
9807
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json"(exports2, module2) {
9807
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json"(exports2, module2) {
9808
9808
  module2.exports = {
9809
9809
  $schema: "https://json-schema.org/draft/2020-12/schema",
9810
9810
  $id: "https://json-schema.org/draft/2020-12/meta/format-annotation",
@@ -9821,9 +9821,9 @@ var require_format_annotation = __commonJS({
9821
9821
  }
9822
9822
  });
9823
9823
 
9824
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json
9824
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json
9825
9825
  var require_meta_data = __commonJS({
9826
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json"(exports2, module2) {
9826
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json"(exports2, module2) {
9827
9827
  module2.exports = {
9828
9828
  $schema: "https://json-schema.org/draft/2020-12/schema",
9829
9829
  $id: "https://json-schema.org/draft/2020-12/meta/meta-data",
@@ -9862,9 +9862,9 @@ var require_meta_data = __commonJS({
9862
9862
  }
9863
9863
  });
9864
9864
 
9865
- // node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json
9865
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json
9866
9866
  var require_validation2 = __commonJS({
9867
- "node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json"(exports2, module2) {
9867
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json"(exports2, module2) {
9868
9868
  module2.exports = {
9869
9869
  $schema: "https://json-schema.org/draft/2020-12/schema",
9870
9870
  $id: "https://json-schema.org/draft/2020-12/meta/validation",
@@ -9957,9 +9957,9 @@ var require_validation2 = __commonJS({
9957
9957
  }
9958
9958
  });
9959
9959
 
9960
- // node_modules/ajv/dist/refs/json-schema-2020-12/index.js
9960
+ // ../../node_modules/ajv/dist/refs/json-schema-2020-12/index.js
9961
9961
  var require_json_schema_2020_12 = __commonJS({
9962
- "node_modules/ajv/dist/refs/json-schema-2020-12/index.js"(exports2) {
9962
+ "../../node_modules/ajv/dist/refs/json-schema-2020-12/index.js"(exports2) {
9963
9963
  "use strict";
9964
9964
  Object.defineProperty(exports2, "__esModule", { value: true });
9965
9965
  var metaSchema = require_schema();
@@ -9992,9 +9992,9 @@ var require_json_schema_2020_12 = __commonJS({
9992
9992
  }
9993
9993
  });
9994
9994
 
9995
- // node_modules/ajv/dist/2020.js
9995
+ // ../../node_modules/ajv/dist/2020.js
9996
9996
  var require__ = __commonJS({
9997
- "node_modules/ajv/dist/2020.js"(exports2, module2) {
9997
+ "../../node_modules/ajv/dist/2020.js"(exports2, module2) {
9998
9998
  "use strict";
9999
9999
  Object.defineProperty(exports2, "__esModule", { value: true });
10000
10000
  exports2.MissingRefError = exports2.ValidationError = exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = exports2.Ajv2020 = void 0;
@@ -10069,9 +10069,9 @@ var require__ = __commonJS({
10069
10069
  }
10070
10070
  });
10071
10071
 
10072
- // node_modules/ajv-formats/dist/formats.js
10072
+ // ../../node_modules/ajv-formats/dist/formats.js
10073
10073
  var require_formats = __commonJS({
10074
- "node_modules/ajv-formats/dist/formats.js"(exports2) {
10074
+ "../../node_modules/ajv-formats/dist/formats.js"(exports2) {
10075
10075
  "use strict";
10076
10076
  Object.defineProperty(exports2, "__esModule", { value: true });
10077
10077
  exports2.formatNames = exports2.fastFormats = exports2.fullFormats = void 0;
@@ -10272,9 +10272,9 @@ var require_formats = __commonJS({
10272
10272
  }
10273
10273
  });
10274
10274
 
10275
- // node_modules/ajv/dist/vocabularies/draft7.js
10275
+ // ../../node_modules/ajv/dist/vocabularies/draft7.js
10276
10276
  var require_draft7 = __commonJS({
10277
- "node_modules/ajv/dist/vocabularies/draft7.js"(exports2) {
10277
+ "../../node_modules/ajv/dist/vocabularies/draft7.js"(exports2) {
10278
10278
  "use strict";
10279
10279
  Object.defineProperty(exports2, "__esModule", { value: true });
10280
10280
  var core_1 = require_core2();
@@ -10294,9 +10294,9 @@ var require_draft7 = __commonJS({
10294
10294
  }
10295
10295
  });
10296
10296
 
10297
- // node_modules/ajv/dist/refs/json-schema-draft-07.json
10297
+ // ../../node_modules/ajv/dist/refs/json-schema-draft-07.json
10298
10298
  var require_json_schema_draft_07 = __commonJS({
10299
- "node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports2, module2) {
10299
+ "../../node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports2, module2) {
10300
10300
  module2.exports = {
10301
10301
  $schema: "http://json-schema.org/draft-07/schema#",
10302
10302
  $id: "http://json-schema.org/draft-07/schema#",
@@ -10451,9 +10451,9 @@ var require_json_schema_draft_07 = __commonJS({
10451
10451
  }
10452
10452
  });
10453
10453
 
10454
- // node_modules/ajv/dist/ajv.js
10454
+ // ../../node_modules/ajv/dist/ajv.js
10455
10455
  var require_ajv = __commonJS({
10456
- "node_modules/ajv/dist/ajv.js"(exports2, module2) {
10456
+ "../../node_modules/ajv/dist/ajv.js"(exports2, module2) {
10457
10457
  "use strict";
10458
10458
  Object.defineProperty(exports2, "__esModule", { value: true });
10459
10459
  exports2.MissingRefError = exports2.ValidationError = exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = exports2.Ajv = void 0;
@@ -10521,9 +10521,9 @@ var require_ajv = __commonJS({
10521
10521
  }
10522
10522
  });
10523
10523
 
10524
- // node_modules/ajv-formats/dist/limit.js
10524
+ // ../../node_modules/ajv-formats/dist/limit.js
10525
10525
  var require_limit = __commonJS({
10526
- "node_modules/ajv-formats/dist/limit.js"(exports2) {
10526
+ "../../node_modules/ajv-formats/dist/limit.js"(exports2) {
10527
10527
  "use strict";
10528
10528
  Object.defineProperty(exports2, "__esModule", { value: true });
10529
10529
  exports2.formatLimitDefinition = void 0;
@@ -10593,9 +10593,9 @@ var require_limit = __commonJS({
10593
10593
  }
10594
10594
  });
10595
10595
 
10596
- // node_modules/ajv-formats/dist/index.js
10596
+ // ../../node_modules/ajv-formats/dist/index.js
10597
10597
  var require_dist = __commonJS({
10598
- "node_modules/ajv-formats/dist/index.js"(exports2, module2) {
10598
+ "../../node_modules/ajv-formats/dist/index.js"(exports2, module2) {
10599
10599
  "use strict";
10600
10600
  Object.defineProperty(exports2, "__esModule", { value: true });
10601
10601
  var formats_1 = require_formats();
@@ -10635,11 +10635,11 @@ var require_dist = __commonJS({
10635
10635
  }
10636
10636
  });
10637
10637
 
10638
- // src/cli/main.ts
10638
+ // ../../src/cli/main.ts
10639
10639
  var fs60 = __toESM(require("node:fs"));
10640
10640
  var path59 = __toESM(require("node:path"));
10641
10641
 
10642
- // src/cli/exitCodes.ts
10642
+ // ../../src/cli/exitCodes.ts
10643
10643
  var ExitCode = {
10644
10644
  ok: 0,
10645
10645
  usage: 2,
@@ -10651,14 +10651,38 @@ var ExitCode = {
10651
10651
  cancelled: 8,
10652
10652
  internal: 99
10653
10653
  };
10654
+ function describeExitCode(code) {
10655
+ switch (code) {
10656
+ case ExitCode.ok:
10657
+ return "Success.";
10658
+ case ExitCode.usage:
10659
+ return "Invalid arguments, unknown command, or help was not applicable \u2014 see message above or run `easyspecs-cli help`.";
10660
+ case ExitCode.misconfiguration:
10661
+ return "Configuration or repo layout problem \u2014 fix `.easyspecs/config.json`, paths, or prerequisites, then retry.";
10662
+ case ExitCode.opencode:
10663
+ return "OpenCode (agent runner) failed \u2014 check `opencode` install, credentials, and stderr from the tool run.";
10664
+ case ExitCode.validation:
10665
+ return "Validation or factory pipeline did not succeed \u2014 see `error` above and logs for the failing phase (synthesis, coverage, remediation, index, etc.).";
10666
+ case ExitCode.auth:
10667
+ return "Authentication failed or session missing \u2014 run `easyspecs-cli auth login` or fix CI credentials in config.";
10668
+ case ExitCode.upload:
10669
+ return "Upload or cloud sync failed \u2014 check network, project id, and session; see `error` above.";
10670
+ case ExitCode.cancelled:
10671
+ return "Operation was cancelled (abort/stop).";
10672
+ case ExitCode.internal:
10673
+ return "Unexpected internal CLI error \u2014 retry; if it persists, report with full stderr and `--verbose` output.";
10674
+ default:
10675
+ return `Non-zero exit (${String(code)}) \u2014 see stderr and any JSON \`error\` field for detail.`;
10676
+ }
10677
+ }
10654
10678
 
10655
- // src/cli/jsonReporter.ts
10679
+ // ../../src/cli/jsonReporter.ts
10656
10680
  function printJsonLine(envelope) {
10657
10681
  process.stdout.write(`${JSON.stringify(envelope)}
10658
10682
  `);
10659
10683
  }
10660
10684
 
10661
- // node_modules/commander/esm.mjs
10685
+ // ../../node_modules/commander/esm.mjs
10662
10686
  var import_index = __toESM(require_commander(), 1);
10663
10687
  var {
10664
10688
  program,
@@ -10675,7 +10699,7 @@ var {
10675
10699
  Help
10676
10700
  } = import_index.default;
10677
10701
 
10678
- // src/cli/cliProgram.ts
10702
+ // ../../src/cli/cliProgram.ts
10679
10703
  function createEasyspecsCliProgram() {
10680
10704
  const program2 = new Command();
10681
10705
  program2.name("easyspecs-cli").allowExcessArguments(false).enablePositionalOptions();
@@ -10723,11 +10747,11 @@ function createEasyspecsCliProgram() {
10723
10747
  return program2;
10724
10748
  }
10725
10749
 
10726
- // src/cli/cliContext.ts
10750
+ // ../../src/cli/cliContext.ts
10727
10751
  var fs2 = __toESM(require("node:fs"));
10728
10752
  var path2 = __toESM(require("path"));
10729
10753
 
10730
- // src/repositoryProvenance.ts
10754
+ // ../../src/repositoryProvenance.ts
10731
10755
  var import_node_child_process = require("node:child_process");
10732
10756
  var fs = __toESM(require("node:fs"));
10733
10757
  var path = __toESM(require("node:path"));
@@ -10893,7 +10917,7 @@ function attachRepositoryProvenance(doc, contextDir2, opts) {
10893
10917
  }
10894
10918
  }
10895
10919
 
10896
- // src/apiBaseUrlResolve.ts
10920
+ // ../../src/apiBaseUrlResolve.ts
10897
10921
  var vscode = __toESM(require_vscode_stub());
10898
10922
  var extensionRoot;
10899
10923
  var cachedExtensionDotEnv = null;
@@ -10902,11 +10926,11 @@ function setApiBaseUrlExtensionRoot(extensionFsPath) {
10902
10926
  cachedExtensionDotEnv = null;
10903
10927
  }
10904
10928
 
10905
- // src/easyspecsBuiltInApiUrls.ts
10929
+ // ../../src/easyspecsBuiltInApiUrls.ts
10906
10930
  var PRODUCTION_SYSTEM_MANAGER_URL = "https://api.easyspecs.ai";
10907
10931
  var STAGING_SYSTEM_MANAGER_URL = "https://system-manager-api.staging.gluecharm.info:8092";
10908
10932
 
10909
- // src/easyspecsApiBaseUrlCli.ts
10933
+ // ../../src/easyspecsApiBaseUrlCli.ts
10910
10934
  function stripTrailingSlash(url) {
10911
10935
  return url.replace(/\/$/, "");
10912
10936
  }
@@ -10923,7 +10947,7 @@ function resolveEasyspecsApiBaseUrlForCli(input) {
10923
10947
  return eff === "staging" ? STAGING_SYSTEM_MANAGER_URL : PRODUCTION_SYSTEM_MANAGER_URL;
10924
10948
  }
10925
10949
 
10926
- // src/cli/cliContext.ts
10950
+ // ../../src/cli/cliContext.ts
10927
10951
  function thisDir() {
10928
10952
  return __dirname;
10929
10953
  }
@@ -10988,7 +11012,7 @@ function assertAgentsDirExists(agentsDir) {
10988
11012
  }
10989
11013
  }
10990
11014
 
10991
- // src/config/openCodeProviderEnv.ts
11015
+ // ../../src/config/openCodeProviderEnv.ts
10992
11016
  var path3 = __toESM(require("node:path"));
10993
11017
  var PROVIDER_TO_ENV = {
10994
11018
  anthropic: "ANTHROPIC_API_KEY",
@@ -11019,7 +11043,7 @@ function buildOpenCodeProviderEnvFromConfig(cfg, repoRoot) {
11019
11043
  return out;
11020
11044
  }
11021
11045
 
11022
- // src/srs53SettingsAliases.ts
11046
+ // ../../src/srs53SettingsAliases.ts
11023
11047
  var SRS53_SETTING_ALIASES = [
11024
11048
  { canonical: "easyspecs.factory.debug", legacy: "easyspecs.macro.debug" },
11025
11049
  { canonical: "easyspecs.factory.backoff.initialDelayMs", legacy: "easyspecs.orchestration.initialDelayMs" },
@@ -11137,7 +11161,7 @@ function getEasyspecsMergedConfigValue(es, fullKey) {
11137
11161
  }
11138
11162
  }
11139
11163
 
11140
- // src/cli/cliSettings.ts
11164
+ // ../../src/cli/cliSettings.ts
11141
11165
  var DEFAULT_OPEN_CODE_TEST_ARGV = [
11142
11166
  "run",
11143
11167
  "--agent",
@@ -11202,7 +11226,7 @@ function mergeEasyspecsCliSettings(cfg, overrides = {}) {
11202
11226
  };
11203
11227
  }
11204
11228
 
11205
- // src/cli/cliSettingsDump.ts
11229
+ // ../../src/cli/cliSettingsDump.ts
11206
11230
  function redactMergedCliSettingsForDump(merged) {
11207
11231
  const child = merged.openCodeChildEnv;
11208
11232
  const childRedacted = child && Object.keys(child).length > 0 ? Object.fromEntries(Object.keys(child).map((k) => [k, "(redacted)"])) : {};
@@ -11217,15 +11241,15 @@ function redactMergedCliSettingsForDump(merged) {
11217
11241
  };
11218
11242
  }
11219
11243
 
11220
- // src/config/easyspecsConfigFile.ts
11244
+ // ../../src/config/easyspecsConfigFile.ts
11221
11245
  var fs6 = __toESM(require("node:fs"));
11222
11246
  var path7 = __toESM(require("node:path"));
11223
11247
 
11224
- // src/easySpecsWorkspaceSettingsCore.ts
11248
+ // ../../src/easySpecsWorkspaceSettingsCore.ts
11225
11249
  var fs4 = __toESM(require("node:fs"));
11226
11250
  var path5 = __toESM(require("node:path"));
11227
11251
 
11228
- // src/analysis/easySpecsWorktreeMarker.ts
11252
+ // ../../src/analysis/easySpecsWorktreeMarker.ts
11229
11253
  var fs3 = __toESM(require("fs"));
11230
11254
  var path4 = __toESM(require("path"));
11231
11255
  var EASYSPECS_LOCAL_DIR = ".easyspecs";
@@ -11242,7 +11266,7 @@ function writeAnalysisWorktreeMarker(worktreeRoot, repositoryRoot) {
11242
11266
  `, "utf-8");
11243
11267
  }
11244
11268
 
11245
- // src/easySpecsWorkspaceSettingsCore.ts
11269
+ // ../../src/easySpecsWorkspaceSettingsCore.ts
11246
11270
  var EASYSPECS_WORKSPACE_DIR = EASYSPECS_LOCAL_DIR;
11247
11271
  var EASYSPECS_SETTINGS_JSON = "settings.json";
11248
11272
  var EASYSPECS_SETTINGS_ACE_KEY = "easyspecs.analysis.ace.enabled";
@@ -11291,7 +11315,7 @@ function readAceOfflineLearnAfterSameSessionTraceFromEasySpecsSettingsFile(works
11291
11315
  return typeof v === "boolean" ? v : void 0;
11292
11316
  }
11293
11317
 
11294
- // src/config/easyspecsConfigJson.ts
11318
+ // ../../src/config/easyspecsConfigJson.ts
11295
11319
  var DEFAULT_CONTEXT_ANALYZED_STATUS_TIMEOUT_MS = 15e3;
11296
11320
  function mergeEasyspecsConfigDefaults(defaults, partial) {
11297
11321
  if (!partial) {
@@ -11510,7 +11534,7 @@ function getDefaultEasyspecsConfig() {
11510
11534
  };
11511
11535
  }
11512
11536
 
11513
- // src/config/validateEasyspecsConfigSrs46.ts
11537
+ // ../../src/config/validateEasyspecsConfigSrs46.ts
11514
11538
  var fs5 = __toESM(require("node:fs"));
11515
11539
  var path6 = __toESM(require("node:path"));
11516
11540
  var import__ = __toESM(require__());
@@ -11580,7 +11604,7 @@ function assertEasyspecsConfigValidatesSrs46Schema(merged, filePathForErrors) {
11580
11604
  }
11581
11605
  }
11582
11606
 
11583
- // src/config/easyspecsConfigFile.ts
11607
+ // ../../src/config/easyspecsConfigFile.ts
11584
11608
  var DIRNAME = ".easyspecs";
11585
11609
  var CONFIG_BASENAME = "config.json";
11586
11610
  var LEGACY_CLI_JSON = "cli.json";
@@ -11778,12 +11802,12 @@ function updateEasyspecsConfig(repoRoot, patch, opts) {
11778
11802
  return merged;
11779
11803
  }
11780
11804
 
11781
- // src/pipelines/upload/uploadPipeline.ts
11805
+ // ../../src/pipelines/upload/uploadPipeline.ts
11782
11806
  var fs11 = __toESM(require("node:fs"));
11783
11807
  var path12 = __toESM(require("node:path"));
11784
11808
  var import_node_crypto = require("node:crypto");
11785
11809
 
11786
- // src/auth/authProtocol.ts
11810
+ // ../../src/auth/authProtocol.ts
11787
11811
  function requireToken(value, key) {
11788
11812
  if (!value) {
11789
11813
  const err = { status: 500, message: `Missing ${key} in auth response.` };
@@ -11868,20 +11892,20 @@ function toAuthErrorMessage(error, fallback) {
11868
11892
  return raw;
11869
11893
  }
11870
11894
 
11871
- // src/analysis/contextSrsDiscoveryIdMap.ts
11895
+ // ../../src/analysis/contextSrsDiscoveryIdMap.ts
11872
11896
  var fs10 = __toESM(require("node:fs"));
11873
11897
  var path11 = __toESM(require("node:path"));
11874
11898
 
11875
- // src/analysis/indexApplicationContextMergeUploadIds.ts
11899
+ // ../../src/analysis/indexApplicationContextMergeUploadIds.ts
11876
11900
  var fs9 = __toESM(require("node:fs"));
11877
11901
  var path10 = __toESM(require("node:path"));
11878
11902
 
11879
- // src/indexApplicationContextValidate.ts
11903
+ // ../../src/indexApplicationContextValidate.ts
11880
11904
  var import__2 = __toESM(require__());
11881
11905
  var fs8 = __toESM(require("fs"));
11882
11906
  var path9 = __toESM(require("path"));
11883
11907
 
11884
- // src/shared/repoResourcesRoot.ts
11908
+ // ../../src/shared/repoResourcesRoot.ts
11885
11909
  var fs7 = __toESM(require("node:fs"));
11886
11910
  var path8 = __toESM(require("node:path"));
11887
11911
  var CONTEXT_LIST_MARKER = path8.join("schemas", "context-lists", "zero-reference-classifier-record.schema.json");
@@ -11907,7 +11931,7 @@ function resolveIndexApplicationContextSchemaPath() {
11907
11931
  return path8.join(resolveRepoResourcesRoot(), "schemas", "index-application-context.schema.json");
11908
11932
  }
11909
11933
 
11910
- // src/indexApplicationContextValidate.ts
11934
+ // ../../src/indexApplicationContextValidate.ts
11911
11935
  var validators = /* @__PURE__ */ new Map();
11912
11936
  function getDefaultIndexSchemaPath() {
11913
11937
  return resolveIndexApplicationContextSchemaPath();
@@ -11942,7 +11966,7 @@ function validateIndexApplicationContextJson(doc, schemaPath = getDefaultIndexSc
11942
11966
  return { ok: false, errors: formatAjvErrors2(validate) };
11943
11967
  }
11944
11968
 
11945
- // src/analysis/indexApplicationContextMergeUploadIds.ts
11969
+ // ../../src/analysis/indexApplicationContextMergeUploadIds.ts
11946
11970
  var INDEX_APPLICATION_CONTEXT_BASENAME = "index-application-context.json";
11947
11971
  var SCOPE_KEYS = ["Feature", "Experience", "Service", "DataModel", "TechStack"];
11948
11972
  function toContextRelativePosix(contextDir2, absPath) {
@@ -12046,7 +12070,7 @@ function mergeUploadIdsIntoIndexOnDisk(contextDir2, succeededIds, options) {
12046
12070
  return { ok: true };
12047
12071
  }
12048
12072
 
12049
- // src/analysis/contextSrsDiscoveryIdMap.ts
12073
+ // ../../src/analysis/contextSrsDiscoveryIdMap.ts
12050
12074
  var SCOPE_KEYS2 = ["Feature", "Experience", "Service", "DataModel", "TechStack"];
12051
12075
  function normalizeRel2(p) {
12052
12076
  return p.replace(/\\/g, "/");
@@ -12134,7 +12158,7 @@ function loadSrsDiscoveryIdMapFromContextDir(contextDir2, log) {
12134
12158
  return map;
12135
12159
  }
12136
12160
 
12137
- // src/pipelines/upload/uploadPipeline.ts
12161
+ // ../../src/pipelines/upload/uploadPipeline.ts
12138
12162
  var UPLOAD_TARGET_FILENAME = "easyspecs-upload-target.json";
12139
12163
  var ADAPTIVE_B_INITIAL = 100;
12140
12164
  var ADAPTIVE_B_MIN = 1;
@@ -12483,18 +12507,18 @@ async function runParallelSinglesIntoAccum(requestJson, applicationId, paths, on
12483
12507
  const recentWaveMs = [];
12484
12508
  let idx = 0;
12485
12509
  const runOne = async (absPath) => {
12486
- const basename16 = path12.basename(absPath);
12510
+ const basename17 = path12.basename(absPath);
12487
12511
  let content;
12488
12512
  try {
12489
12513
  content = fs11.readFileSync(absPath, "utf8");
12490
12514
  } catch (e) {
12491
12515
  const msg = errorMessage(e);
12492
- logSrs13Failure(log, `read file file=${basename16}`, msg);
12516
+ logSrs13Failure(log, `read file file=${basename17}`, msg);
12493
12517
  accum.failed.push({ path: absPath, message: msg });
12494
12518
  return;
12495
12519
  }
12496
12520
  const existingId = resolveExistingId(absPath);
12497
- const payload = buildSrsDiscoverySavePayload(applicationId, basename16, content, existingId);
12521
+ const payload = buildSrsDiscoverySavePayload(applicationId, basename17, content, existingId);
12498
12522
  try {
12499
12523
  await postSingleCreate(requestJson, payload, log);
12500
12524
  accum.succeeded.push(absPath);
@@ -12508,7 +12532,7 @@ async function runParallelSinglesIntoAccum(requestJson, applicationId, paths, on
12508
12532
  throw e;
12509
12533
  }
12510
12534
  const msg = errorMessage(e);
12511
- logSrs13Failure(log, `POST /api/content/srs_discovery file=${basename16}`, msg);
12535
+ logSrs13Failure(log, `POST /api/content/srs_discovery file=${basename17}`, msg);
12512
12536
  accum.failed.push({ path: absPath, message: msg });
12513
12537
  }
12514
12538
  };
@@ -12590,18 +12614,18 @@ async function executeContextSrsDiscoveryUploadPhase(filePaths, phaseOpts, accum
12590
12614
  const items = [];
12591
12615
  const chunkPaths = [];
12592
12616
  for (const absPath of chunk) {
12593
- const basename16 = path12.basename(absPath);
12617
+ const basename17 = path12.basename(absPath);
12594
12618
  let content;
12595
12619
  try {
12596
12620
  content = fs11.readFileSync(absPath, "utf8");
12597
12621
  } catch (e) {
12598
12622
  const msg = errorMessage(e);
12599
- logSrs13Failure(log, `read file file=${basename16}`, msg);
12623
+ logSrs13Failure(log, `read file file=${basename17}`, msg);
12600
12624
  accum.failed.push({ path: absPath, message: msg });
12601
12625
  continue;
12602
12626
  }
12603
12627
  const existingId = resolveExistingId(absPath);
12604
- items.push(buildSrsDiscoverySavePayloadForBatch(applicationId, basename16, content, existingId));
12628
+ items.push(buildSrsDiscoverySavePayloadForBatch(applicationId, basename17, content, existingId));
12605
12629
  chunkPaths.push(absPath);
12606
12630
  }
12607
12631
  if (items.length === 0) {
@@ -12759,7 +12783,7 @@ async function runUploadPipeline(opts) {
12759
12783
  return { succeeded, failed, succeededIds };
12760
12784
  }
12761
12785
 
12762
- // src/cli/cloudContextUploadCli.ts
12786
+ // ../../src/cli/cloudContextUploadCli.ts
12763
12787
  function buildUploadPrimaryJsonSrs46(args) {
12764
12788
  const out = {
12765
12789
  ok: args.uploadOk,
@@ -12793,7 +12817,7 @@ function shouldSkipAnalysisForCachedCloudContext(args) {
12793
12817
  return args.cloudContextAnalyzed === true;
12794
12818
  }
12795
12819
 
12796
- // src/config/easyspecsConfigRedact.ts
12820
+ // ../../src/config/easyspecsConfigRedact.ts
12797
12821
  function redactEasyspecsConfigRootForDump(cfg) {
12798
12822
  const o = JSON.parse(JSON.stringify(cfg));
12799
12823
  const es = o.easyspecs;
@@ -12814,11 +12838,11 @@ function redactEasyspecsConfigRootForDump(cfg) {
12814
12838
  return o;
12815
12839
  }
12816
12840
 
12817
- // src/cli/cliFileWorkspaceState.ts
12841
+ // ../../src/cli/cliFileWorkspaceState.ts
12818
12842
  var fs12 = __toESM(require("node:fs"));
12819
12843
  var path13 = __toESM(require("node:path"));
12820
12844
 
12821
- // src/srs53PersistedStateMigration.ts
12845
+ // ../../src/srs53PersistedStateMigration.ts
12822
12846
  var SRS53_WORKSTATION_RUN_KEY_LEGACY = "easyspecs.analysis.artefactRun.v1";
12823
12847
  var SRS53_PIPELINE_RUN_KEY_LEGACY = "easyspecs.analysis.pipelineRun.v1";
12824
12848
  var SRS53_REMEDIATION_MISSING_UI_KEY_LEGACY = "easyspecs.analysis.missingRemediationUi.v1";
@@ -12881,7 +12905,7 @@ function applySrs53PersistedStateMigrationInPlace(m) {
12881
12905
  return changed;
12882
12906
  }
12883
12907
 
12884
- // src/cli/cliFileWorkspaceState.ts
12908
+ // ../../src/cli/cliFileWorkspaceState.ts
12885
12909
  function createFileBackedWorkspaceState(repoRoot) {
12886
12910
  const dir = path13.join(repoRoot, ".gluecharm", "logs");
12887
12911
  const file = path13.join(dir, "easyspecs-cli-workspace-state.json");
@@ -12923,11 +12947,11 @@ function createFileBackedWorkspaceState(repoRoot) {
12923
12947
  return { workspaceState };
12924
12948
  }
12925
12949
 
12926
- // src/pipelines/synthesis/synthesisPipeline.ts
12950
+ // ../../src/pipelines/synthesis/synthesisPipeline.ts
12927
12951
  var fs34 = __toESM(require("fs"));
12928
12952
  var path32 = __toESM(require("path"));
12929
12953
 
12930
- // src/analysis/analysisDynamicTestSteps.ts
12954
+ // ../../src/analysis/analysisDynamicTestSteps.ts
12931
12955
  var fs13 = __toESM(require("fs"));
12932
12956
  var path14 = __toESM(require("path"));
12933
12957
  var FE_CODE = /^FE-\d+$/;
@@ -13077,9 +13101,9 @@ var ANALYSIS_STATIC_CONTEXT_OUTPUTS = [
13077
13101
  "tech-stack-list.json"
13078
13102
  ];
13079
13103
  function discoverDynamicAnalysisTestSteps(contextDir2) {
13080
- const staticOutputs = ANALYSIS_STATIC_CONTEXT_OUTPUTS.map((basename16) => ({
13081
- basename: basename16,
13082
- exists: nonEmptyContextFile(path14.join(contextDir2, basename16))
13104
+ const staticOutputs = ANALYSIS_STATIC_CONTEXT_OUTPUTS.map((basename17) => ({
13105
+ basename: basename17,
13106
+ exists: nonEmptyContextFile(path14.join(contextDir2, basename17))
13083
13107
  }));
13084
13108
  const featuresPath = path14.join(contextDir2, "features-list.json");
13085
13109
  const featuresData = readJson(featuresPath);
@@ -13195,15 +13219,15 @@ function discoverDynamicAnalysisTestSteps(contextDir2) {
13195
13219
  };
13196
13220
  }
13197
13221
 
13198
- // src/analysis/materializeOpenCodeAgents.ts
13222
+ // ../../src/analysis/materializeOpenCodeAgents.ts
13199
13223
  var fs16 = __toESM(require("fs"));
13200
13224
  var path17 = __toESM(require("path"));
13201
13225
 
13202
- // src/analysis/applyAceMaterializedAgents.ts
13226
+ // ../../src/analysis/applyAceMaterializedAgents.ts
13203
13227
  var fs15 = __toESM(require("fs"));
13204
13228
  var path16 = __toESM(require("path"));
13205
13229
 
13206
- // src/analysis/acePaths.ts
13230
+ // ../../src/analysis/acePaths.ts
13207
13231
  var path15 = __toESM(require("path"));
13208
13232
  var ACE_LEARNINGS_DIR = "learnings";
13209
13233
  var ACE_OVERLAYS_SUBDIR = "overlays";
@@ -13250,11 +13274,11 @@ function aceCurationPath(contextDir2, agentStem, runId) {
13250
13274
  function aceConsolidatedSessionsJsonlPath(contextDir2) {
13251
13275
  return path15.join(aceLearningsRoot(contextDir2), ACE_CONSOLIDATED_SESSIONS_JSONL);
13252
13276
  }
13253
- function opencodeAceSchemaPath(worktreeRoot, basename16) {
13254
- return path15.join(worktreeRoot, ".opencode", "schemas", "ace", basename16);
13277
+ function opencodeAceSchemaPath(worktreeRoot, basename17) {
13278
+ return path15.join(worktreeRoot, ".opencode", "schemas", "ace", basename17);
13255
13279
  }
13256
13280
 
13257
- // src/analysis/aceJsonValidate.ts
13281
+ // ../../src/analysis/aceJsonValidate.ts
13258
13282
  var fs14 = __toESM(require("fs"));
13259
13283
  var import__3 = __toESM(require__());
13260
13284
  function stripUtf8Bom2(s) {
@@ -13385,7 +13409,7 @@ function validateAceJsonValue(data, schemaAbsolutePath) {
13385
13409
  return { ok: false, kind: "schema", message: "ACE JSON Schema validation failed", errorsText };
13386
13410
  }
13387
13411
 
13388
- // src/analysis/applyAceMaterializedAgents.ts
13412
+ // ../../src/analysis/applyAceMaterializedAgents.ts
13389
13413
  function splitYamlFrontmatter(raw) {
13390
13414
  if (!raw.startsWith("---\n")) {
13391
13415
  return { frontmatter: "", body: raw };
@@ -13538,7 +13562,7 @@ ${extra}
13538
13562
  }
13539
13563
  }
13540
13564
 
13541
- // src/analysis/materializeOpenCodeAgents.ts
13565
+ // ../../src/analysis/materializeOpenCodeAgents.ts
13542
13566
  function posixFsPath(absPath) {
13543
13567
  return path17.resolve(absPath).split(path17.sep).join("/");
13544
13568
  }
@@ -13666,11 +13690,11 @@ function materializeOpenCodeAgentsWithAce(extensionResourcesAgents, analysisChec
13666
13690
  applyAceToMaterializedAgents(analysisCheckoutRoot, ace);
13667
13691
  }
13668
13692
 
13669
- // src/workstations/aiWorkstation.ts
13693
+ // ../../src/workstations/aiWorkstation.ts
13670
13694
  var fs28 = __toESM(require("fs"));
13671
13695
  var path26 = __toESM(require("path"));
13672
13696
 
13673
- // src/analysis/promptTemplates.ts
13697
+ // ../../src/analysis/promptTemplates.ts
13674
13698
  function fillMarkdownPrompt(p) {
13675
13699
  return [
13676
13700
  `You are OpenCode agent "${p.agentId}" (display name: ${p.agentDisplayName}).`,
@@ -13768,7 +13792,7 @@ function fillListJsonPrompt(p) {
13768
13792
  ].join("\n");
13769
13793
  }
13770
13794
 
13771
- // src/analysis/contextSynthesis.ts
13795
+ // ../../src/analysis/contextSynthesis.ts
13772
13796
  var CONTEXT_SYNTHESIS_TEST_STEP_ORDER = [
13773
13797
  "docsProject",
13774
13798
  "architecture",
@@ -13818,14 +13842,14 @@ function synthesisStepLabel(step, ctx) {
13818
13842
  return m[step];
13819
13843
  }
13820
13844
 
13821
- // src/analysis/aceTracePhase.ts
13845
+ // ../../src/analysis/aceTracePhase.ts
13822
13846
  var fs21 = __toESM(require("fs"));
13823
13847
  var path21 = __toESM(require("path"));
13824
13848
 
13825
- // src/opencodeCli.ts
13849
+ // ../../src/opencodeCli.ts
13826
13850
  var import_child_process = require("child_process");
13827
13851
 
13828
- // src/analysis/openCodeSessionStewardship.ts
13852
+ // ../../src/analysis/openCodeSessionStewardship.ts
13829
13853
  var TITLE_MAX_LEN = 80;
13830
13854
  function isNonEmptyString(v) {
13831
13855
  return typeof v === "string" && v.trim().length > 0;
@@ -13947,7 +13971,7 @@ function logOpenCodeSessionFollowUpStart(diagnosticLog, p) {
13947
13971
  );
13948
13972
  }
13949
13973
 
13950
- // src/opencodeCli.ts
13974
+ // ../../src/opencodeCli.ts
13951
13975
  var USE_SHELL = process.platform === "win32";
13952
13976
  function resolveExecutable(executable) {
13953
13977
  const t = executable?.trim();
@@ -14212,7 +14236,7 @@ ${truncateForDiag(outBody, DIAG_STDOUT_MAX)}`);
14212
14236
  });
14213
14237
  }
14214
14238
 
14215
- // src/analysis/aceTraceNormalize.ts
14239
+ // ../../src/analysis/aceTraceNormalize.ts
14216
14240
  var fs17 = __toESM(require("fs"));
14217
14241
  var ACE_VERSION = "1.0.0-draft";
14218
14242
  var REASONING_PHASES = /* @__PURE__ */ new Set([
@@ -14413,11 +14437,11 @@ function rewriteAceTraceFileWithCanonicalEnvelope(traceAbsolutePath, canonical,
14413
14437
  return true;
14414
14438
  }
14415
14439
 
14416
- // src/analysis/aceOfflineLearn.ts
14440
+ // ../../src/analysis/aceOfflineLearn.ts
14417
14441
  var fs20 = __toESM(require("fs"));
14418
14442
  var path20 = __toESM(require("path"));
14419
14443
 
14420
- // src/analysis/aceCuratorApplier.ts
14444
+ // ../../src/analysis/aceCuratorApplier.ts
14421
14445
  var fs18 = __toESM(require("fs"));
14422
14446
  var path18 = __toESM(require("path"));
14423
14447
  function writeJson(pathAbs, obj) {
@@ -14535,7 +14559,7 @@ function applyAceCuratorDeltaFile(worktreeRoot, deltaAbsolutePath, log) {
14535
14559
  return { ok: true, message: "Applied curator delta" };
14536
14560
  }
14537
14561
 
14538
- // src/analysis/aceOfflineLearnFallbacks.ts
14562
+ // ../../src/analysis/aceOfflineLearnFallbacks.ts
14539
14563
  var fs19 = __toESM(require("fs"));
14540
14564
  var path19 = __toESM(require("path"));
14541
14565
  var ACE_VERSION2 = "1.0.0-draft";
@@ -14567,7 +14591,7 @@ function appendAceConsolidatedSessionRecord(contextDir2, record, diagnosticLog)
14567
14591
  diagnosticLog?.(`[ace] consolidated session record appended \u2014 ${rel}`);
14568
14592
  }
14569
14593
 
14570
- // src/analysis/aceOfflineLearn.ts
14594
+ // ../../src/analysis/aceOfflineLearn.ts
14571
14595
  var ACE_REFLECTOR_AGENT_STEM = "agent-ace-reflector";
14572
14596
  var ACE_CURATOR_AGENT_STEM = "agent-ace-curator";
14573
14597
  function expandArgvTemplate(template, vars) {
@@ -14901,7 +14925,7 @@ async function runAceOfflineLearnFromTrace(traceAbsolutePath, opts) {
14901
14925
  };
14902
14926
  }
14903
14927
 
14904
- // src/analysis/aceTracePhase.ts
14928
+ // ../../src/analysis/aceTracePhase.ts
14905
14929
  var ACE_TRACE_RECORDER_AGENT_STEM = "agent-ace-trace-recorder";
14906
14930
  function expandArgvTemplate2(template, vars) {
14907
14931
  return template.map((part) => {
@@ -15110,7 +15134,7 @@ async function runAceTracePhase(params) {
15110
15134
  return { ok: true, message: "ACE trace OK", traceAbsolutePath: traceAbs };
15111
15135
  }
15112
15136
 
15113
- // src/analysis/coordinationListJsonValidate.ts
15137
+ // ../../src/analysis/coordinationListJsonValidate.ts
15114
15138
  var fs22 = __toESM(require("fs"));
15115
15139
  var import__4 = __toESM(require__());
15116
15140
  function stripUtf8Bom3(s) {
@@ -15327,11 +15351,11 @@ function formatCoordinationJsonRepairAppendix(outputBasename, failure, rawFilePr
15327
15351
  return lines.join("\n");
15328
15352
  }
15329
15353
 
15330
- // src/analysis/coordinationListStableWrite.ts
15354
+ // ../../src/analysis/coordinationListStableWrite.ts
15331
15355
  var fs24 = __toESM(require("fs"));
15332
15356
  var path23 = __toESM(require("path"));
15333
15357
 
15334
- // src/analysis/coordinationListFileLock.ts
15358
+ // ../../src/analysis/coordinationListFileLock.ts
15335
15359
  var fs23 = __toESM(require("fs"));
15336
15360
  var os = __toESM(require("os"));
15337
15361
  var path22 = __toESM(require("path"));
@@ -15432,7 +15456,7 @@ async function withCoordinationListFileLock(listJsonAbsolutePath, options, fn) {
15432
15456
  }
15433
15457
  }
15434
15458
 
15435
- // src/analysis/asyncMutex.ts
15459
+ // ../../src/analysis/asyncMutex.ts
15436
15460
  var AsyncMutex = class {
15437
15461
  chain = Promise.resolve();
15438
15462
  run(fn) {
@@ -15445,7 +15469,7 @@ var AsyncMutex = class {
15445
15469
  }
15446
15470
  };
15447
15471
 
15448
- // src/analysis/coordinationListMutex.ts
15472
+ // ../../src/analysis/coordinationListMutex.ts
15449
15473
  var pathToMutex = /* @__PURE__ */ new Map();
15450
15474
  function getCoordinationListMutex(listJsonAbsolutePath) {
15451
15475
  const key = listJsonAbsolutePath;
@@ -15457,7 +15481,7 @@ function getCoordinationListMutex(listJsonAbsolutePath) {
15457
15481
  return m;
15458
15482
  }
15459
15483
 
15460
- // src/analysis/coordinationListStableWrite.ts
15484
+ // ../../src/analysis/coordinationListStableWrite.ts
15461
15485
  function isRecord5(x) {
15462
15486
  return x !== null && typeof x === "object" && !Array.isArray(x);
15463
15487
  }
@@ -16161,7 +16185,7 @@ function allocateNextListRowCode(input) {
16161
16185
  };
16162
16186
  }
16163
16187
 
16164
- // src/analysis/markdownEvidenceIndexValidate.ts
16188
+ // ../../src/analysis/markdownEvidenceIndexValidate.ts
16165
16189
  var fs25 = __toESM(require("fs"));
16166
16190
  var EVIDENCE_HEADING = "## Evidence index";
16167
16191
  function evidenceIndexMentionsReadmeMd(body) {
@@ -16330,7 +16354,7 @@ function formatMarkdownEvidenceRepairAppendix(outputFileAbsolute, kind = "empty"
16330
16354
  ].join("\n");
16331
16355
  }
16332
16356
 
16333
- // src/analysis/openQuestionResolution.ts
16357
+ // ../../src/analysis/openQuestionResolution.ts
16334
16358
  var fs26 = __toESM(require("fs"));
16335
16359
  var path24 = __toESM(require("path"));
16336
16360
  var OPEN_QUESTION_RESOLUTION_JSON_BASENAME = "open-question-resolution.json";
@@ -16390,7 +16414,7 @@ function deleteOpenQuestionResolutionFile(worktreeRoot) {
16390
16414
  }
16391
16415
  }
16392
16416
 
16393
- // src/analysis/openQuestionsSectionValidate.ts
16417
+ // ../../src/analysis/openQuestionsSectionValidate.ts
16394
16418
  var fs27 = __toESM(require("fs"));
16395
16419
  var path25 = __toESM(require("path"));
16396
16420
  var CANONICAL_NORMALIZED = "open questions";
@@ -16557,7 +16581,7 @@ function formatOpenQuestionsProducerRepairAppendix(outputFileAbsolute, stepLabel
16557
16581
  ].join("\n");
16558
16582
  }
16559
16583
 
16560
- // src/workstations/workstationRepairLoop.ts
16584
+ // ../../src/workstations/workstationRepairLoop.ts
16561
16585
  async function runWorkstationRepairLoop(opts) {
16562
16586
  const validations = [];
16563
16587
  let repairAppendix;
@@ -16643,7 +16667,7 @@ async function runWorkstationRepairLoop(opts) {
16643
16667
  };
16644
16668
  }
16645
16669
 
16646
- // src/workstations/aiWorkstation.ts
16670
+ // ../../src/workstations/aiWorkstation.ts
16647
16671
  var CITATION_EXAMPLE = "`src/example.ts:42` or `src/example.ts:10-25`";
16648
16672
  var SRS50_COORD_LIST_APPEND_HINT = " **SRS-50 \u2014 stable writes:** Append **new** coded rows at the **end** of each array (never insert new codes between existing ones).";
16649
16673
  var SRS50_COORD_LIST_REVIEW_HINT = ' **SRS-50 \u2014 stable writes:** Preserve existing **code** order; append net-new at the end. To **remove** a row, add **revisionLog** with **droppedCodes** (string[]). To change **slug** without changing **code**, add **slugRenames** ([{ "code", "from", "to" }]).';
@@ -17125,16 +17149,16 @@ function outputPaths(step, worktreeRoot, listTarget) {
17125
17149
  if (!fe) {
17126
17150
  throw new Error("listUseCases requires listTarget.featureCode");
17127
17151
  }
17128
- const basename16 = `${fe}-use-cases-list.json`;
17129
- return { absolute: path26.join(ctx, basename16), basename: basename16 };
17152
+ const basename17 = `${fe}-use-cases-list.json`;
17153
+ return { absolute: path26.join(ctx, basename17), basename: basename17 };
17130
17154
  }
17131
17155
  case "reviewUseCasesList": {
17132
17156
  const fe = listTarget?.featureCode;
17133
17157
  if (!fe) {
17134
17158
  throw new Error("reviewUseCasesList requires listTarget.featureCode");
17135
17159
  }
17136
- const basename16 = `${fe}-use-cases-list.json`;
17137
- return { absolute: path26.join(ctx, basename16), basename: basename16 };
17160
+ const basename17 = `${fe}-use-cases-list.json`;
17161
+ return { absolute: path26.join(ctx, basename17), basename: basename17 };
17138
17162
  }
17139
17163
  case "listScenarios": {
17140
17164
  const fe = listTarget?.featureCode;
@@ -17142,8 +17166,8 @@ function outputPaths(step, worktreeRoot, listTarget) {
17142
17166
  if (!fe || !uc) {
17143
17167
  throw new Error("listScenarios requires listTarget.featureCode and useCaseCode");
17144
17168
  }
17145
- const basename16 = `${fe}_${uc}-scenarios-list.json`;
17146
- return { absolute: path26.join(ctx, basename16), basename: basename16 };
17169
+ const basename17 = `${fe}_${uc}-scenarios-list.json`;
17170
+ return { absolute: path26.join(ctx, basename17), basename: basename17 };
17147
17171
  }
17148
17172
  case "reviewScenariosList": {
17149
17173
  const fe = listTarget?.featureCode;
@@ -17151,24 +17175,24 @@ function outputPaths(step, worktreeRoot, listTarget) {
17151
17175
  if (!fe || !uc) {
17152
17176
  throw new Error("reviewScenariosList requires listTarget.featureCode and useCaseCode");
17153
17177
  }
17154
- const basename16 = `${fe}_${uc}-scenarios-list.json`;
17155
- return { absolute: path26.join(ctx, basename16), basename: basename16 };
17178
+ const basename17 = `${fe}_${uc}-scenarios-list.json`;
17179
+ return { absolute: path26.join(ctx, basename17), basename: basename17 };
17156
17180
  }
17157
17181
  case "listEntityFields": {
17158
17182
  const dm = listTarget?.entityCode;
17159
17183
  if (!dm) {
17160
17184
  throw new Error("listEntityFields requires listTarget.entityCode");
17161
17185
  }
17162
- const basename16 = `${dm}-fields-list.json`;
17163
- return { absolute: path26.join(ctx, basename16), basename: basename16 };
17186
+ const basename17 = `${dm}-fields-list.json`;
17187
+ return { absolute: path26.join(ctx, basename17), basename: basename17 };
17164
17188
  }
17165
17189
  case "reviewEntityFieldsList": {
17166
17190
  const dm = listTarget?.entityCode;
17167
17191
  if (!dm) {
17168
17192
  throw new Error("reviewEntityFieldsList requires listTarget.entityCode");
17169
17193
  }
17170
- const basename16 = `${dm}-fields-list.json`;
17171
- return { absolute: path26.join(ctx, basename16), basename: basename16 };
17194
+ const basename17 = `${dm}-fields-list.json`;
17195
+ return { absolute: path26.join(ctx, basename17), basename: basename17 };
17172
17196
  }
17173
17197
  default: {
17174
17198
  const _u = step;
@@ -18494,11 +18518,34 @@ Expected output: ${outputFileAbsolute}`;
18494
18518
  };
18495
18519
  }
18496
18520
 
18497
- // src/analysis/worktreeManager.ts
18498
- var import_child_process2 = require("child_process");
18521
+ // ../../src/analysis/worktreeManager.ts
18522
+ var import_child_process3 = require("child_process");
18499
18523
  var fs29 = __toESM(require("fs"));
18500
18524
  var os2 = __toESM(require("os"));
18501
18525
  var path27 = __toESM(require("path"));
18526
+
18527
+ // ../../src/analysis/gitWorktreeStaleRecovery.ts
18528
+ var import_child_process2 = require("child_process");
18529
+ function isMissingRegisteredWorktreeError(combinedStderrStdout) {
18530
+ return /missing but already registered worktree/i.test(combinedStderrStdout);
18531
+ }
18532
+ function gitWorktreePruneSync(repoRoot) {
18533
+ const r = (0, import_child_process2.spawnSync)("git", ["worktree", "prune"], {
18534
+ cwd: repoRoot,
18535
+ encoding: "utf-8",
18536
+ timeout: 6e4
18537
+ });
18538
+ if (r.status !== 0) {
18539
+ const msg = [r.stderr, r.stdout].filter(Boolean).join("\n").trim();
18540
+ return {
18541
+ ok: false,
18542
+ message: msg || `git worktree prune failed (exit ${String(r.status ?? "unknown")}).`
18543
+ };
18544
+ }
18545
+ return { ok: true };
18546
+ }
18547
+
18548
+ // ../../src/analysis/worktreeManager.ts
18502
18549
  var EASYSPECS_WT_DIR_RE = /^easyspecs-(\d+)$/;
18503
18550
  function maxEasyspecsWorktreeIndex(parentDir) {
18504
18551
  let max = 0;
@@ -18539,7 +18586,7 @@ function allocateEasyspecsWorktreePath(parentDir) {
18539
18586
  return null;
18540
18587
  }
18541
18588
  function readHeadBranchShort(repoRoot) {
18542
- const r = (0, import_child_process2.spawnSync)("git", ["symbolic-ref", "--short", "-q", "HEAD"], {
18589
+ const r = (0, import_child_process3.spawnSync)("git", ["symbolic-ref", "--short", "-q", "HEAD"], {
18543
18590
  cwd: repoRoot,
18544
18591
  encoding: "utf-8",
18545
18592
  timeout: 3e4
@@ -18557,7 +18604,7 @@ function attachWorktreeHandle(worktreePath, repositoryRoot) {
18557
18604
  path: wt,
18558
18605
  repoRoot: repo,
18559
18606
  remove() {
18560
- (0, import_child_process2.spawnSync)("git", ["worktree", "remove", "--force", wt], {
18607
+ (0, import_child_process3.spawnSync)("git", ["worktree", "remove", "--force", wt], {
18561
18608
  cwd: repo,
18562
18609
  encoding: "utf-8",
18563
18610
  timeout: 6e4
@@ -18569,7 +18616,7 @@ function attachWorktreeHandle(worktreePath, repositoryRoot) {
18569
18616
  }
18570
18617
  };
18571
18618
  }
18572
- function createAnalysisWorktree(repoRoot) {
18619
+ function createAnalysisWorktree(repoRoot, options) {
18573
18620
  const parent = path27.join(os2.tmpdir(), "easyspecs-analysis");
18574
18621
  const wt = allocateEasyspecsWorktreePath(parent);
18575
18622
  if (!wt) {
@@ -18579,30 +18626,44 @@ function createAnalysisWorktree(repoRoot) {
18579
18626
  };
18580
18627
  }
18581
18628
  const sourceBranchAtCreation = readHeadBranchShort(repoRoot);
18582
- const r = (0, import_child_process2.spawnSync)("git", ["worktree", "add", "--detach", wt, "HEAD"], {
18583
- cwd: repoRoot,
18584
- encoding: "utf-8",
18585
- timeout: 12e4
18586
- });
18587
- if (r.status !== 0) {
18629
+ for (let attempt = 0; attempt < 2; attempt++) {
18630
+ const r = (0, import_child_process3.spawnSync)("git", ["worktree", "add", "--detach", wt, "HEAD"], {
18631
+ cwd: repoRoot,
18632
+ encoding: "utf-8",
18633
+ timeout: 12e4
18634
+ });
18635
+ if (r.status === 0) {
18636
+ try {
18637
+ writeAnalysisWorktreeMarker(wt, repoRoot);
18638
+ } catch {
18639
+ }
18640
+ return {
18641
+ ok: true,
18642
+ handle: attachWorktreeHandle(wt, repoRoot),
18643
+ ...sourceBranchAtCreation ? { sourceBranchAtCreation } : {}
18644
+ };
18645
+ }
18588
18646
  const msg = [r.stderr, r.stdout].filter(Boolean).join("\n").trim();
18589
- return {
18590
- ok: false,
18591
- error: msg || `git worktree add failed (exit ${r.status ?? "unknown"}). Is this folder a Git repository?`
18592
- };
18593
- }
18594
- try {
18595
- writeAnalysisWorktreeMarker(wt, repoRoot);
18596
- } catch {
18647
+ const fullMsg = msg || `git worktree add failed (exit ${r.status ?? "unknown"}). Is this folder a Git repository?`;
18648
+ if (attempt === 0 && isMissingRegisteredWorktreeError(fullMsg)) {
18649
+ const pr = gitWorktreePruneSync(repoRoot);
18650
+ if (pr.ok) {
18651
+ const wtName = path27.basename(wt);
18652
+ options?.log?.(`[worktree] git worktree prune \u2014 cleared stale registration for ${wtName} (${wt})`);
18653
+ continue;
18654
+ }
18655
+ return {
18656
+ ok: false,
18657
+ error: `${fullMsg}
18658
+ (git worktree prune failed: ${pr.message ?? "unknown"})`
18659
+ };
18660
+ }
18661
+ return { ok: false, error: fullMsg };
18597
18662
  }
18598
- return {
18599
- ok: true,
18600
- handle: attachWorktreeHandle(wt, repoRoot),
18601
- ...sourceBranchAtCreation ? { sourceBranchAtCreation } : {}
18602
- };
18663
+ throw new Error("createAnalysisWorktree: retry loop exited without result.");
18603
18664
  }
18604
18665
 
18605
- // src/stores/workstationRunStore.ts
18666
+ // ../../src/stores/workstationRunStore.ts
18606
18667
  var STORAGE_KEY = SRS53_WORKSTATION_RUN_KEY_V2;
18607
18668
  function randomRunId() {
18608
18669
  return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
@@ -18675,7 +18736,7 @@ function cloneWorkstationRun(item) {
18675
18736
  return JSON.parse(JSON.stringify(item));
18676
18737
  }
18677
18738
 
18678
- // src/stores/analysisDiscoveriesStore.ts
18739
+ // ../../src/stores/analysisDiscoveriesStore.ts
18679
18740
  var agentsLaunchedCount = 0;
18680
18741
  var syncHandler;
18681
18742
  function noteOpenCodeAgentLaunched() {
@@ -18683,14 +18744,14 @@ function noteOpenCodeAgentLaunched() {
18683
18744
  syncHandler?.(agentsLaunchedCount);
18684
18745
  }
18685
18746
 
18686
- // src/contextIndexAssembler.ts
18747
+ // ../../src/contextIndexAssembler.ts
18687
18748
  var fs30 = __toESM(require("fs"));
18688
18749
  var path28 = __toESM(require("path"));
18689
18750
 
18690
- // src/srsModel.ts
18751
+ // ../../src/srsModel.ts
18691
18752
  var APPLICATION_CONTEXT_KIND = "easyspecs.application-context";
18692
18753
 
18693
- // src/contextIndexAssembler.ts
18754
+ // ../../src/contextIndexAssembler.ts
18694
18755
  var SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
18695
18756
  function safeStr(v) {
18696
18757
  return typeof v === "string" ? v.trim() : "";
@@ -19127,7 +19188,7 @@ function writeIndexApplicationContext(contextDir2, title, options) {
19127
19188
  return doc;
19128
19189
  }
19129
19190
 
19130
- // src/pipelines/linkMapping/linkMappingPipeline.ts
19191
+ // ../../src/pipelines/linkMapping/linkMappingPipeline.ts
19131
19192
  var fs31 = __toESM(require("node:fs"));
19132
19193
  var path29 = __toESM(require("node:path"));
19133
19194
  var SLUG2 = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
@@ -19569,8 +19630,8 @@ function renderProjectMdSections(contextDir2) {
19569
19630
  chunks.push("### Data model", "", dmLines.length ? dmLines.join("\n") : NONE_LINE, "");
19570
19631
  return chunks;
19571
19632
  }
19572
- function patchOneFile(contextDir2, basename16, innerChildren, innerParents, opts) {
19573
- const abs = path29.join(contextDir2, basename16);
19633
+ function patchOneFile(contextDir2, basename17, innerChildren, innerParents, opts) {
19634
+ const abs = path29.join(contextDir2, basename17);
19574
19635
  if (!fs31.existsSync(abs)) {
19575
19636
  return;
19576
19637
  }
@@ -19578,7 +19639,7 @@ function patchOneFile(contextDir2, basename16, innerChildren, innerParents, opts
19578
19639
  try {
19579
19640
  body = fs31.readFileSync(abs, "utf8");
19580
19641
  } catch (e) {
19581
- opts.log?.(`[pipeline:link-mapping] skip read ${basename16}: ${e instanceof Error ? e.message : String(e)}`);
19642
+ opts.log?.(`[pipeline:link-mapping] skip read ${basename17}: ${e instanceof Error ? e.message : String(e)}`);
19582
19643
  return;
19583
19644
  }
19584
19645
  let next = replaceOrAppendRegion(body, NAV_CHILDREN_START, NAV_CHILDREN_END, innerChildren);
@@ -19610,16 +19671,16 @@ function runLinkMappingPipeline(contextDirAbs, opts = {}) {
19610
19671
  };
19611
19672
  visitEdgeBasenames(edges.children);
19612
19673
  visitEdgeBasenames(edges.parents);
19613
- for (const basename16 of managedBasenames) {
19614
- if (basename16 === "project.md" || basename16 === "architecture.md") {
19674
+ for (const basename17 of managedBasenames) {
19675
+ if (basename17 === "project.md" || basename17 === "architecture.md") {
19615
19676
  continue;
19616
19677
  }
19617
- const abs = path29.join(contextDir2, basename16);
19678
+ const abs = path29.join(contextDir2, basename17);
19618
19679
  if (!fs31.existsSync(abs)) {
19619
19680
  continue;
19620
19681
  }
19621
- const childRows = edges.children.get(basename16) ?? [];
19622
- const parentRows = edges.parents.get(basename16) ?? [];
19682
+ const childRows = edges.children.get(basename17) ?? [];
19683
+ const parentRows = edges.parents.get(basename17) ?? [];
19623
19684
  const childLines = childRows.length === 0 ? NONE_LINE : childRows.map(
19624
19685
  (c) => bulletLink(c.title, markdownRelativeHref(abs, path29.join(contextDir2, c.basename)))
19625
19686
  ).join("\n");
@@ -19631,7 +19692,7 @@ function runLinkMappingPipeline(contextDirAbs, opts = {}) {
19631
19692
  ${childLines}
19632
19693
  `;
19633
19694
  const innerParents = buildInnerParents(parentLines.split("\n").filter(Boolean));
19634
- patchOneFile(contextDir2, basename16, innerChildren, innerParents, opts);
19695
+ patchOneFile(contextDir2, basename17, innerChildren, innerParents, opts);
19635
19696
  }
19636
19697
  const validation = validateEasyspecsNavLinksInContext(contextDir2);
19637
19698
  if (!validation.ok) {
@@ -19644,11 +19705,11 @@ ${validation.brokenLinks.join("\n")}`;
19644
19705
  return { ok: true };
19645
19706
  }
19646
19707
 
19647
- // src/analysis/aceAnalysisConfig.ts
19708
+ // ../../src/analysis/aceAnalysisConfig.ts
19648
19709
  var path30 = __toESM(require("node:path"));
19649
19710
  var vscode2 = __toESM(require_vscode_stub());
19650
19711
 
19651
- // src/config/easyspecsAceConfigRead.ts
19712
+ // ../../src/config/easyspecsAceConfigRead.ts
19652
19713
  var fs32 = __toESM(require("node:fs"));
19653
19714
  function readRawConfigJson(repoRoot) {
19654
19715
  const p = easyspecsConfigPath(repoRoot);
@@ -19712,7 +19773,7 @@ function readAceOfflineLearnAfterSameSessionTraceFromEasyspecsConfigFile(repoRoo
19712
19773
  return typeof v === "boolean" ? v : void 0;
19713
19774
  }
19714
19775
 
19715
- // src/analysis/aceAnalysisConfig.ts
19776
+ // ../../src/analysis/aceAnalysisConfig.ts
19716
19777
  var SECTION = "easyspecs";
19717
19778
  var cliWorkspaceRootOverride;
19718
19779
  var cliHeadlessMode = false;
@@ -19792,7 +19853,7 @@ function getAceOfflineLearnAfterSameSessionTrace(analysisCheckoutRoot) {
19792
19853
  return vscode2.workspace.getConfiguration(SECTION).get("analysis.ace.offlineLearnAfterSameSessionTrace") === true;
19793
19854
  }
19794
19855
 
19795
- // src/analysis/repoSurfaceAssessment.ts
19856
+ // ../../src/analysis/repoSurfaceAssessment.ts
19796
19857
  var fs33 = __toESM(require("fs"));
19797
19858
  var path31 = __toESM(require("path"));
19798
19859
  var REPO_SURFACE_SCAN_BASENAME = "repo-surface-scan.json";
@@ -19840,7 +19901,7 @@ function writeEmptyExperiencesListJson(contextDir2) {
19840
19901
  );
19841
19902
  }
19842
19903
 
19843
- // src/pipelines/synthesis/synthesisPipeline.ts
19904
+ // ../../src/pipelines/synthesis/synthesisPipeline.ts
19844
19905
  var FE = /^FE-\d+$/;
19845
19906
  var UC = /^UC-\d+$/;
19846
19907
  var SC = /^SC-\d+$/;
@@ -19940,91 +20001,91 @@ function mdItem(id, parentIds, t) {
19940
20001
  };
19941
20002
  }
19942
20003
  function featureDetailTarget(contextDir2, code, name, slug) {
19943
- const basename16 = `${code}-${slug}.md`;
20004
+ const basename17 = `${code}-${slug}.md`;
19944
20005
  return {
19945
20006
  openCodeAgentStem: "agent-md-feature-detail",
19946
20007
  agentId: "ctx-md-feature-detail",
19947
20008
  displayName: "Feature detail",
19948
- outputBasename: basename16,
20009
+ outputBasename: basename17,
19949
20010
  taskDescription: `Document feature **${code}** (**${name}**, slug **${slug}**) per \`.gluecharm/context/features-list.json\`: scope, behaviour, main dependencies, entry points, and links to code under the worktree. Write exactly one markdown file at the output path; cite substantive claims with file and line (or range).`,
19950
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20011
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
19951
20012
  };
19952
20013
  }
19953
20014
  function viewDetailTarget(row2, contextDir2) {
19954
- const basename16 = `${row2.code}-${row2.slug}.md`;
20015
+ const basename17 = `${row2.code}-${row2.slug}.md`;
19955
20016
  return {
19956
20017
  openCodeAgentStem: "agent-md-view-detail",
19957
20018
  agentId: "ctx-md-view-detail",
19958
20019
  displayName: "View detail",
19959
- outputBasename: basename16,
20020
+ outputBasename: basename17,
19960
20021
  taskDescription: `Describe view **${row2.code}** (**${row2.name}**, slug **${row2.slug}**) per \`.gluecharm/context/experiences-list.json\`: purpose, layout, controls, navigation, data shown; ground in components and routes.`,
19961
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20022
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
19962
20023
  };
19963
20024
  }
19964
20025
  function interactionDetailTarget(viewCode, ix, contextDir2) {
19965
- const basename16 = `${viewCode}_${ix.code}-${ix.slug}.md`;
20026
+ const basename17 = `${viewCode}_${ix.code}-${ix.slug}.md`;
19966
20027
  return {
19967
20028
  openCodeAgentStem: "agent-md-interaction-detail",
19968
20029
  agentId: "ctx-md-interaction-detail",
19969
20030
  displayName: "Interaction detail",
19970
- outputBasename: basename16,
20031
+ outputBasename: basename17,
19971
20032
  taskDescription: `Document interaction **${ix.code}** (**${ix.name}**) on view **${viewCode}** per \`.gluecharm/context/experiences-list.json\`.`,
19972
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20033
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
19973
20034
  };
19974
20035
  }
19975
20036
  function serviceDetailTarget(row2, contextDir2) {
19976
- const basename16 = `${row2.code}-${row2.slug}.md`;
20037
+ const basename17 = `${row2.code}-${row2.slug}.md`;
19977
20038
  return {
19978
20039
  openCodeAgentStem: "agent-md-service-detail",
19979
20040
  agentId: "ctx-md-service-detail",
19980
20041
  displayName: "Service detail",
19981
- outputBasename: basename16,
20042
+ outputBasename: basename17,
19982
20043
  taskDescription: `Describe service **${row2.code}** (**${row2.name}**, slug **${row2.slug}**) per \`.gluecharm/context/services-list.json\`: responsibilities, consumers, errors, integration points.`,
19983
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20044
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
19984
20045
  };
19985
20046
  }
19986
20047
  function methodDetailTarget(svc, m, contextDir2) {
19987
- const basename16 = `${svc.code}_${m.code}-${m.slug}.md`;
20048
+ const basename17 = `${svc.code}_${m.code}-${m.slug}.md`;
19988
20049
  return {
19989
20050
  openCodeAgentStem: "agent-md-method-detail",
19990
20051
  agentId: "ctx-md-method-detail",
19991
20052
  displayName: "Method detail",
19992
- outputBasename: basename16,
20053
+ outputBasename: basename17,
19993
20054
  taskDescription: `Document method **${m.code}** (**${m.name}**) on service **${svc.code}** per \`.gluecharm/context/services-list.json\`.`,
19994
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20055
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
19995
20056
  };
19996
20057
  }
19997
20058
  function entityDetailTarget(dmCode, ename, slug, contextDir2) {
19998
- const basename16 = `${dmCode}-${slug}.md`;
20059
+ const basename17 = `${dmCode}-${slug}.md`;
19999
20060
  return {
20000
20061
  openCodeAgentStem: "agent-md-entity-detail",
20001
20062
  agentId: "ctx-md-entity-detail",
20002
20063
  displayName: "Entity detail",
20003
- outputBasename: basename16,
20064
+ outputBasename: basename17,
20004
20065
  taskDescription: `Describe entity **${dmCode}** (**${ename}**, slug **${slug}**) per \`.gluecharm/context/data-model-list.json\`: lifecycle, invariants, storage, ORM/schema mapping.`,
20005
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20066
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
20006
20067
  };
20007
20068
  }
20008
20069
  function fieldDetailTarget(dmCode, fdCode, fname, fSlug, contextDir2) {
20009
- const basename16 = `${dmCode}_${fdCode}-${fSlug}.md`;
20070
+ const basename17 = `${dmCode}_${fdCode}-${fSlug}.md`;
20010
20071
  return {
20011
20072
  openCodeAgentStem: "agent-md-field-detail",
20012
20073
  agentId: "ctx-md-field-detail",
20013
20074
  displayName: "Field detail",
20014
- outputBasename: basename16,
20075
+ outputBasename: basename17,
20015
20076
  taskDescription: `Document field **${fdCode}** (**${fname}**) on entity **${dmCode}** per \`.gluecharm/context/${dmCode}-fields-list.json\`. Cite types and constraints with file and line.`,
20016
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20077
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
20017
20078
  };
20018
20079
  }
20019
20080
  function toolDetailTarget(row2, contextDir2) {
20020
- const basename16 = `${row2.code}-${row2.slug}.md`;
20081
+ const basename17 = `${row2.code}-${row2.slug}.md`;
20021
20082
  return {
20022
20083
  openCodeAgentStem: "agent-md-tool-detail",
20023
20084
  agentId: "ctx-md-tool-detail",
20024
20085
  displayName: "Tool detail",
20025
- outputBasename: basename16,
20086
+ outputBasename: basename17,
20026
20087
  taskDescription: `Describe tool **${row2.code}** (**${row2.name}**, slug **${row2.slug}**) per \`.gluecharm/context/tech-stack-list.json\`: role, version hints, configuration, boundaries.`,
20027
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20088
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
20028
20089
  };
20029
20090
  }
20030
20091
  function useCaseDetailTarget(feCode, ucCode, ucName, ucSlug, contextDir2) {
@@ -20041,14 +20102,14 @@ Follow bundled agent **agent-md-use-case-detail**: include **## Data inputs and
20041
20102
  };
20042
20103
  }
20043
20104
  function scenarioDetailTarget(feCode, ucCode, scCode, scName, contextDir2) {
20044
- const basename16 = `${feCode}_${ucCode}_${scCode}.md`;
20105
+ const basename17 = `${feCode}_${ucCode}_${scCode}.md`;
20045
20106
  return {
20046
20107
  openCodeAgentStem: "agent-md-scenario-detail",
20047
20108
  agentId: "ctx-md-scenario-detail",
20048
20109
  displayName: "Scenario detail",
20049
- outputBasename: basename16,
20110
+ outputBasename: basename17,
20050
20111
  taskDescription: `Document scenario **${scCode}** (**${scName}**) for **${feCode}** / **${ucCode}** per \`.gluecharm/context/${feCode}_${ucCode}-scenarios-list.json\`. Cite steps with file and line where possible.`,
20051
- exists: fs34.existsSync(path32.join(contextDir2, basename16)) && fs34.statSync(path32.join(contextDir2, basename16)).size > 0
20112
+ exists: fs34.existsSync(path32.join(contextDir2, basename17)) && fs34.statSync(path32.join(contextDir2, basename17)).size > 0
20052
20113
  };
20053
20114
  }
20054
20115
  function parentsDone(item, byId) {
@@ -20274,15 +20335,15 @@ function expandAfterSuccess(completed, contextDir2, byId, fifo) {
20274
20335
  return;
20275
20336
  }
20276
20337
  if (completed.kind === "markdown") {
20277
- const basename16 = completed.payload.outputBasename;
20338
+ const basename17 = completed.payload.outputBasename;
20278
20339
  const mdId = completed.id;
20279
- const feFromFeatureMd = basename16.match(/^(FE-\d+)-[^/]+\.md$/);
20340
+ const feFromFeatureMd = basename17.match(/^(FE-\d+)-[^/]+\.md$/);
20280
20341
  if (feFromFeatureMd) {
20281
20342
  const fe = feFromFeatureMd[1];
20282
20343
  add(coordItem(`coord:uc:${fe}`, [mdId], "listUseCases", { featureCode: fe }));
20283
20344
  return;
20284
20345
  }
20285
- const xpFromView = basename16.match(/^(XP-\d+)-[^/]+\.md$/);
20346
+ const xpFromView = basename17.match(/^(XP-\d+)-[^/]+\.md$/);
20286
20347
  if (xpFromView) {
20287
20348
  const xp = xpFromView[1];
20288
20349
  const row2 = discoverExperienceTreeRows(contextDir2).find((r) => r.code === xp);
@@ -20294,7 +20355,7 @@ function expandAfterSuccess(completed, contextDir2, byId, fifo) {
20294
20355
  }
20295
20356
  return;
20296
20357
  }
20297
- const svFromSvc = basename16.match(/^(SV-\d+)-[^/]+\.md$/);
20358
+ const svFromSvc = basename17.match(/^(SV-\d+)-[^/]+\.md$/);
20298
20359
  if (svFromSvc) {
20299
20360
  const sv = svFromSvc[1];
20300
20361
  const srow = discoverServiceTreeRows(contextDir2).find((r) => r.code === sv);
@@ -20306,7 +20367,7 @@ function expandAfterSuccess(completed, contextDir2, byId, fifo) {
20306
20367
  }
20307
20368
  return;
20308
20369
  }
20309
- const dmFromEnt = basename16.match(/^(DM-\d+)-[^/]+\.md$/);
20370
+ const dmFromEnt = basename17.match(/^(DM-\d+)-[^/]+\.md$/);
20310
20371
  if (dmFromEnt) {
20311
20372
  const dm = dmFromEnt[1];
20312
20373
  add(coordItem(`coord:ef:${dm}`, [mdId], "listEntityFields", { entityCode: dm }));
@@ -20610,7 +20671,7 @@ async function prepareSynthesisWorktree(storageContext, repoRoot, log, options)
20610
20671
  if (options?.clearPriorArtefactRun !== false) {
20611
20672
  await clearArtefactRun(storageContext);
20612
20673
  }
20613
- const wt = createAnalysisWorktree(repoRoot);
20674
+ const wt = createAnalysisWorktree(repoRoot, { log });
20614
20675
  if (!wt.ok) {
20615
20676
  return { ok: false, error: wt.error };
20616
20677
  }
@@ -20739,7 +20800,7 @@ async function runSynthesisPipeline(storageContext, repoRoot, workspaceLabel, ex
20739
20800
  );
20740
20801
  }
20741
20802
 
20742
- // src/workspaceContextPromote.ts
20803
+ // ../../src/workspaceContextPromote.ts
20743
20804
  var fs35 = __toESM(require("fs"));
20744
20805
  var path33 = __toESM(require("path"));
20745
20806
  function promoteContextDirectoryToWorkspaceFs(sourceContextDir, workspaceRootFs) {
@@ -20766,7 +20827,7 @@ function promoteContextDirectoryToWorkspaceFs(sourceContextDir, workspaceRootFs)
20766
20827
  return { filesCopied };
20767
20828
  }
20768
20829
 
20769
- // src/shared/factoryPipelineExitConditions.ts
20830
+ // ../../src/shared/factoryPipelineExitConditions.ts
20770
20831
  var FACTORY_PIPELINE_EXIT_CONDITIONS = {
20771
20832
  create_analysis_worktree: "Git analysis checkout exists under the configured temp parent (SRS-8); ready for agent materialization.",
20772
20833
  materialize_opencode_agents: "Bundled OpenCode agent definitions are copied into the analysis worktree (`.opencode/` tree).",
@@ -20779,7 +20840,181 @@ var FACTORY_PIPELINE_EXIT_CONDITIONS = {
20779
20840
  backend_context_sync: "Context upload finished with no failures (quiet SRS-13 path; or cancel)."
20780
20841
  };
20781
20842
 
20782
- // src/factory/generateContextFactory.ts
20843
+ // ../../src/factory/factoryValidationFailures.ts
20844
+ function factoryFailureDisplayId(row2) {
20845
+ return row2.failureExitId;
20846
+ }
20847
+ function normalizeFactoryFailureRow(r) {
20848
+ const failureExitId = r.failureExitId ?? r.validationExitId ?? "5.0";
20849
+ const exitCode = typeof r.exitCode === "number" ? r.exitCode : ExitCode.validation;
20850
+ const factory = r.factory ?? "generate_context";
20851
+ const base = {
20852
+ factory,
20853
+ phase: r.phase,
20854
+ exitCode,
20855
+ failureExitId,
20856
+ title: r.title,
20857
+ ...typeof r.detail === "string" ? { detail: r.detail } : {},
20858
+ ...typeof r.validationSubcode === "string" ? { validationSubcode: r.validationSubcode } : {}
20859
+ };
20860
+ if (exitCode === ExitCode.validation) {
20861
+ return { ...base, validationExitId: r.validationExitId ?? failureExitId };
20862
+ }
20863
+ return base;
20864
+ }
20865
+ var FACTORY_VALIDATION_PHASE_ORDER = [
20866
+ "create_analysis_worktree",
20867
+ "materialize_opencode_agents",
20868
+ "synthesis_convergence",
20869
+ "reference_coverage",
20870
+ "zero_reference_remediation_convergence",
20871
+ "reference_coverage_execution_report",
20872
+ "link_mapping_pipeline",
20873
+ "assemble_application_context_index",
20874
+ "backend_context_sync"
20875
+ ];
20876
+ var DETAIL_MAX = 600;
20877
+ var ERROR_JOIN_MAX = 900;
20878
+ var ADDITIONAL_APPEND_MAX = 200;
20879
+ var PHASE_TO_EXIT_ID = {
20880
+ unknown_factory_phase: "5.0",
20881
+ create_analysis_worktree: "5.1",
20882
+ materialize_opencode_agents: "5.2",
20883
+ synthesis_convergence: "5.3",
20884
+ reference_coverage: "5.4",
20885
+ zero_reference_remediation_convergence: "5.5",
20886
+ reference_coverage_execution_report: "5.6",
20887
+ link_mapping_pipeline: "5.7",
20888
+ assemble_application_context_index: "5.8",
20889
+ backend_context_sync: "5.9"
20890
+ };
20891
+ var EXIT_ID_TITLES = {
20892
+ "5.0": "EasySpecs stopped: the failing pipeline phase could not be identified. Retry with --verbose; report this outcome if it persists.",
20893
+ "5.1": "Could not prepare the analysis Git worktree (temporary checkout). Check disk space, repo permissions, and that the project is a valid Git checkout.",
20894
+ "5.2": "Could not install OpenCode agent files into the analysis worktree. Check bundled extension assets and disk permissions under the worktree path.",
20895
+ "5.3": "Context synthesis did not finish: required context files are still missing or invalid after retries. Inspect OpenCode errors and workstation logs for this phase.",
20896
+ "5.4": "Reference coverage could not be computed or written. Check coverage-reference-validation.json prerequisites and disk/schema errors.",
20897
+ "5.5": "Zero-reference remediation did not complete successfully. Inspect remediation logs and zero-reference outputs for this checkout.",
20898
+ "5.6": "Reference coverage execution report could not be generated. Ensure coverage inputs exist from the coverage phase; see coverage-reference-validation.json.",
20899
+ "5.7": "Context link graph (navigation links) could not be updated. Check coordination JSON and markdown under .gluecharm/context.",
20900
+ "5.8": "Application context index could not be assembled or failed schema validation. Inspect index-application-context.json and preceding context files.",
20901
+ "5.9": "Upload / cloud sync after analysis did not succeed. Check auth, project id, network, and upload error details."
20902
+ };
20903
+ var READABLE_PHASE_LABEL = {
20904
+ create_analysis_worktree: "Analysis worktree",
20905
+ materialize_opencode_agents: "OpenCode agents",
20906
+ synthesis_convergence: "Synthesis",
20907
+ reference_coverage: "Reference coverage",
20908
+ zero_reference_remediation_convergence: "Zero-reference remediation",
20909
+ reference_coverage_execution_report: "Coverage report",
20910
+ link_mapping_pipeline: "Link graph",
20911
+ assemble_application_context_index: "Index assembly",
20912
+ backend_context_sync: "Cloud sync",
20913
+ unknown_factory_phase: "Unknown phase"
20914
+ };
20915
+ function trimDetail(s) {
20916
+ if (!s) {
20917
+ return void 0;
20918
+ }
20919
+ const t = s.trim();
20920
+ if (!t) {
20921
+ return void 0;
20922
+ }
20923
+ return t.length <= DETAIL_MAX ? t : `${t.slice(0, DETAIL_MAX)}\u2026`;
20924
+ }
20925
+ function inferValidationSubcode(phase, detail) {
20926
+ const d = detail ?? "";
20927
+ if (phase === "synthesis_convergence" && d.includes("Unstable convergence (R5)")) {
20928
+ return "R5_MACRO_PING_PONG";
20929
+ }
20930
+ if (phase === "reference_coverage" && /percentNonReferenced\s+\d/.test(d) && d.includes(">")) {
20931
+ return "COVERAGE_PERCENT_THRESHOLD";
20932
+ }
20933
+ return void 0;
20934
+ }
20935
+ function phaseToValidationExitId(phase) {
20936
+ return PHASE_TO_EXIT_ID[phase] ?? "5.0";
20937
+ }
20938
+ function titleForValidationExitId(validationExitId) {
20939
+ return EXIT_ID_TITLES[validationExitId] ?? EXIT_ID_TITLES["5.0"];
20940
+ }
20941
+ function readableLabelForFactoryPhase(phase) {
20942
+ return READABLE_PHASE_LABEL[phase] ?? phase;
20943
+ }
20944
+ function phaseIndex(key) {
20945
+ const i = FACTORY_VALIDATION_PHASE_ORDER.indexOf(key);
20946
+ return i >= 0 ? i : 999;
20947
+ }
20948
+ function buildFactoryFailuresFromRows(phases) {
20949
+ const failed = phases.filter((p) => p.status === "failed");
20950
+ failed.sort((a, b) => phaseIndex(a.key) - phaseIndex(b.key));
20951
+ return failed.map((p) => {
20952
+ const id = phaseToValidationExitId(p.key);
20953
+ const sub = inferValidationSubcode(p.key, p.detail);
20954
+ return {
20955
+ factory: "generate_context",
20956
+ phase: p.key,
20957
+ exitCode: ExitCode.validation,
20958
+ failureExitId: id,
20959
+ validationExitId: id,
20960
+ title: titleForValidationExitId(id),
20961
+ detail: trimDetail(p.detail),
20962
+ ...sub !== void 0 ? { validationSubcode: sub } : {}
20963
+ };
20964
+ });
20965
+ }
20966
+ function syntheticUnknownFactoryFailure(message) {
20967
+ return [
20968
+ {
20969
+ factory: "generate_context",
20970
+ phase: "unknown_factory_phase",
20971
+ exitCode: ExitCode.validation,
20972
+ failureExitId: "5.0",
20973
+ validationExitId: "5.0",
20974
+ title: titleForValidationExitId("5.0"),
20975
+ detail: trimDetail(message)
20976
+ }
20977
+ ];
20978
+ }
20979
+ function primaryFailureAliases(failures) {
20980
+ const last = failures[failures.length - 1];
20981
+ if (!last) {
20982
+ return { failurePhase: "unknown_factory_phase", validationExitId: "5.0" };
20983
+ }
20984
+ return {
20985
+ failurePhase: last.phase,
20986
+ validationExitId: last.validationExitId ?? factoryFailureDisplayId(last)
20987
+ };
20988
+ }
20989
+ function exitMeaningFromFactoryFailures(failures) {
20990
+ const f0 = failures[0];
20991
+ if (!f0) {
20992
+ return "";
20993
+ }
20994
+ if (failures.length === 1) {
20995
+ return f0.title;
20996
+ }
20997
+ return `${f0.title} (and ${String(failures.length - 1)} other pipeline phases failed)`;
20998
+ }
20999
+ function composeFactoryValidationError(orchestratorMessage, failures) {
21000
+ const m = orchestratorMessage?.trim() ?? "";
21001
+ if (failures.length <= 1) {
21002
+ return m.length > 0 ? m : failures[0]?.title ?? "Validation failed.";
21003
+ }
21004
+ const extraIds = failures.slice(1).map((f) => factoryFailureDisplayId(f)).join(", ");
21005
+ let appendix = `(+${String(failures.length - 1)} additional phase failure(s): ${extraIds})`;
21006
+ if (appendix.length > ADDITIONAL_APPEND_MAX) {
21007
+ appendix = appendix.slice(0, ADDITIONAL_APPEND_MAX).trimEnd() + "\u2026";
21008
+ }
21009
+ if (m.length > 0) {
21010
+ const out = `${m} | ${appendix}`;
21011
+ return out.length <= ERROR_JOIN_MAX ? out : `${m.slice(0, Math.max(0, ERROR_JOIN_MAX - appendix.length - 3))}\u2026 | ${appendix}`;
21012
+ }
21013
+ const joined = failures.map((f) => `[${factoryFailureDisplayId(f)}] ${f.title}`).join(" | ");
21014
+ return joined.length <= ERROR_JOIN_MAX ? joined : `${joined.slice(0, ERROR_JOIN_MAX - 1)}\u2026`;
21015
+ }
21016
+
21017
+ // ../../src/factory/generateContextFactory.ts
20783
21018
  var FACTORY_PIPELINE_KEYS = [
20784
21019
  "create_analysis_worktree",
20785
21020
  "materialize_opencode_agents",
@@ -20886,7 +21121,11 @@ async function runGenerateContextFactory(deps) {
20886
21121
  };
20887
21122
  const fail = async (message) => {
20888
21123
  await post();
20889
- return { ok: false, message, totalElapsedMs: macroEnd() };
21124
+ let ff = buildFactoryFailuresFromRows(phases);
21125
+ if (ff.length === 0) {
21126
+ ff = syntheticUnknownFactoryFailure(message);
21127
+ }
21128
+ return { ok: false, message, totalElapsedMs: macroEnd(), factoryFailures: ff };
20890
21129
  };
20891
21130
  const pipelineCtx = {
20892
21131
  signal: deps.signal,
@@ -21226,11 +21465,11 @@ async function runGenerateContextFactory(deps) {
21226
21465
  }
21227
21466
  }
21228
21467
 
21229
- // src/factory/generateContextFactoryHeadlessHost.ts
21468
+ // ../../src/factory/generateContextFactoryHeadlessHost.ts
21230
21469
  var fs44 = __toESM(require("node:fs"));
21231
21470
  var path43 = __toESM(require("node:path"));
21232
21471
 
21233
- // src/stores/pipelineRunStore.ts
21472
+ // ../../src/stores/pipelineRunStore.ts
21234
21473
  var STORAGE_KEY2 = SRS53_PIPELINE_RUN_KEY_V2;
21235
21474
  function randomRunId2() {
21236
21475
  return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
@@ -21289,7 +21528,7 @@ async function finishPipelineRun(context, ok) {
21289
21528
  });
21290
21529
  }
21291
21530
 
21292
- // src/stores/analysisWorkspaceStore.ts
21531
+ // ../../src/stores/analysisWorkspaceStore.ts
21293
21532
  var STORAGE_KEY3 = "easyspecs.analysis.workspaceState.v1";
21294
21533
  function readAnalysisWorkspaceSnapshot(context) {
21295
21534
  const raw = context.workspaceState.get(STORAGE_KEY3);
@@ -21327,11 +21566,11 @@ async function noteAgentsMaterialized(context) {
21327
21566
  });
21328
21567
  }
21329
21568
 
21330
- // src/pipelines/remediation/missingWorkstations.ts
21569
+ // ../../src/pipelines/remediation/missingWorkstations.ts
21331
21570
  var fs37 = __toESM(require("fs"));
21332
21571
  var path35 = __toESM(require("path"));
21333
21572
 
21334
- // src/analysis/analysisDetailMarkdownDiscovery.ts
21573
+ // ../../src/analysis/analysisDetailMarkdownDiscovery.ts
21335
21574
  var fs36 = __toESM(require("fs"));
21336
21575
  var path34 = __toESM(require("path"));
21337
21576
  var SLUG4 = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
@@ -21394,8 +21633,8 @@ function expectedFeatureDetailBasenameFromRow(row2) {
21394
21633
  }
21395
21634
  return `${code}-${slug}.md`;
21396
21635
  }
21397
- function ctxPath(contextDir2, basename16) {
21398
- return path34.join(contextDir2, basename16);
21636
+ function ctxPath(contextDir2, basename17) {
21637
+ return path34.join(contextDir2, basename17);
21399
21638
  }
21400
21639
  function pushTarget(targets, stem, outputBasename, taskDescription, contextDir2) {
21401
21640
  const meta = STEM_TO_AGENT[stem];
@@ -21424,11 +21663,11 @@ function discoverDetailMarkdownGroups(contextDir2) {
21424
21663
  continue;
21425
21664
  }
21426
21665
  const name = safeStr4(row2.name) || code;
21427
- const basename16 = `${code}-${slug}.md`;
21666
+ const basename17 = `${code}-${slug}.md`;
21428
21667
  pushTarget(
21429
21668
  featureTargets,
21430
21669
  "agent-md-feature-detail",
21431
- basename16,
21670
+ basename17,
21432
21671
  `Document feature **${code}** (**${name}**, slug **${slug}**) per \`.gluecharm/context/features-list.json\`: scope, behaviour, main dependencies, entry points, and links to code under the worktree. Write exactly one markdown file at the output path; cite substantive claims with file and line (or range).`,
21433
21672
  contextDir2
21434
21673
  );
@@ -21609,7 +21848,7 @@ function collectExpectedDetailMarkdownBasenames(contextDir2) {
21609
21848
  return set;
21610
21849
  }
21611
21850
 
21612
- // src/pipelines/remediation/missingWorkstations.ts
21851
+ // ../../src/pipelines/remediation/missingWorkstations.ts
21613
21852
  function fileAndValidationFromKind(kind) {
21614
21853
  if (kind === "valid") {
21615
21854
  return { filePresentYesNo: "yes", validationYesNo: "yes" };
@@ -21950,7 +22189,7 @@ function toMissingWorkstationUiRows(rows, contextDir2, worktreeRoot) {
21950
22189
  });
21951
22190
  }
21952
22191
 
21953
- // src/pipelines/remediation/missingWorkstationsPool.ts
22192
+ // ../../src/pipelines/remediation/missingWorkstationsPool.ts
21954
22193
  var path36 = __toESM(require("path"));
21955
22194
  function reconcileSkippedWorkItemsWithDisk(byId, contextDir2, worktreeRoot) {
21956
22195
  for (const item of byId.values()) {
@@ -22075,12 +22314,12 @@ async function runRemediationPipelineMissingPass(p) {
22075
22314
  return { cancelled: false, skippedWorkItemIds, indexOk, ...indexError ? { indexError } : {} };
22076
22315
  }
22077
22316
 
22078
- // src/pipelines/coverage/coveragePipeline.ts
22079
- var import_child_process3 = require("child_process");
22317
+ // ../../src/pipelines/coverage/coveragePipeline.ts
22318
+ var import_child_process4 = require("child_process");
22080
22319
  var fs39 = __toESM(require("fs"));
22081
22320
  var path38 = __toESM(require("path"));
22082
22321
 
22083
- // src/analysis/coverageReferenceValidationSchemaValidate.ts
22322
+ // ../../src/analysis/coverageReferenceValidationSchemaValidate.ts
22084
22323
  var fs38 = __toESM(require("fs"));
22085
22324
  var path37 = __toESM(require("path"));
22086
22325
  var import__5 = __toESM(require__());
@@ -22148,7 +22387,7 @@ function readAndValidateCoverageReferenceValidationFile(jsonAbsolutePath) {
22148
22387
  return { ok: true, data };
22149
22388
  }
22150
22389
 
22151
- // src/pipelines/coverage/coveragePipeline.ts
22390
+ // ../../src/pipelines/coverage/coveragePipeline.ts
22152
22391
  var COVERAGE_REFERENCE_VALIDATION_BASENAME = "coverage-reference-validation.json";
22153
22392
  var SKIP_CONTEXT_JSON = /* @__PURE__ */ new Set([
22154
22393
  COVERAGE_REFERENCE_VALIDATION_BASENAME,
@@ -22180,8 +22419,8 @@ function tryLoadGitNonIgnoredPathSet(repositoryRootAbs) {
22180
22419
  env
22181
22420
  };
22182
22421
  try {
22183
- const tracked = (0, import_child_process3.execFileSync)("git", ["-c", "core.quotepath=false", "ls-files", "-z"], opts);
22184
- const others = (0, import_child_process3.execFileSync)(
22422
+ const tracked = (0, import_child_process4.execFileSync)("git", ["-c", "core.quotepath=false", "ls-files", "-z"], opts);
22423
+ const others = (0, import_child_process4.execFileSync)(
22185
22424
  "git",
22186
22425
  ["-c", "core.quotepath=false", "ls-files", "-z", "--others", "--exclude-standard"],
22187
22426
  opts
@@ -22594,12 +22833,12 @@ ${schemaCheck.errors.join("\n")}`,
22594
22833
  return { ok: true, document, outputAbsolutePath: opts.write ? outPath : void 0 };
22595
22834
  }
22596
22835
 
22597
- // src/pipelines/remediation/zeroReferenceWorkstationChain.ts
22836
+ // ../../src/pipelines/remediation/zeroReferenceWorkstationChain.ts
22598
22837
  var crypto = __toESM(require("crypto"));
22599
22838
  var fs41 = __toESM(require("fs"));
22600
22839
  var path40 = __toESM(require("path"));
22601
22840
 
22602
- // src/analysis/zeroReferenceRemediationSchemaValidate.ts
22841
+ // ../../src/analysis/zeroReferenceRemediationSchemaValidate.ts
22603
22842
  var fs40 = __toESM(require("fs"));
22604
22843
  var path39 = __toESM(require("path"));
22605
22844
  var import__6 = __toESM(require__());
@@ -22620,8 +22859,8 @@ function formatAjvErrors6(errors) {
22620
22859
  });
22621
22860
  }
22622
22861
  var ajv = new import__6.default({ allErrors: true, strict: false });
22623
- function compileSchema(basename16) {
22624
- const schemaPath = path39.join(schemasDir(), basename16);
22862
+ function compileSchema(basename17) {
22863
+ const schemaPath = path39.join(schemasDir(), basename17);
22625
22864
  const schemaRaw = stripUtf8Bom5(fs40.readFileSync(schemaPath, "utf-8"));
22626
22865
  const schema = JSON.parse(schemaRaw);
22627
22866
  return ajv.compile(schema);
@@ -22655,7 +22894,7 @@ function validateZeroReferenceTriageDocumentData(data) {
22655
22894
  return { ok: false, errors: formatAjvErrors6(validateTriageDoc.errors) };
22656
22895
  }
22657
22896
 
22658
- // src/pipelines/remediation/zeroReferenceWorkstationChain.ts
22897
+ // ../../src/pipelines/remediation/zeroReferenceWorkstationChain.ts
22659
22898
  var ZERO_REF_ROUTING_BASENAME = "zero-reference-routing.json";
22660
22899
  var ZERO_REF_TRIAGE_BASENAME = "zero-reference-triage.json";
22661
22900
  var ZERO_REF_CLASSIFY_AGENT_STEM = "agent-classify-unreferenced-file";
@@ -23706,7 +23945,7 @@ async function runRemediationPipelineZeroRefPass(p) {
23706
23945
  return { cancelled, completed, failures };
23707
23946
  }
23708
23947
 
23709
- // src/pipelines/coverage/coverageExecutionReport.ts
23948
+ // ../../src/pipelines/coverage/coverageExecutionReport.ts
23710
23949
  var fs42 = __toESM(require("fs"));
23711
23950
  var path41 = __toESM(require("path"));
23712
23951
  var REFERENCE_COVERAGE_EXECUTION_REPORT_BASENAME = "reference-coverage-execution-report.md";
@@ -23875,7 +24114,7 @@ async function runCoverageExecutionReport(p) {
23875
24114
  return { ok: true, outputAbsolutePath: outAbs };
23876
24115
  }
23877
24116
 
23878
- // src/gluecharm/minimalGluecharmLayout.ts
24117
+ // ../../src/gluecharm/minimalGluecharmLayout.ts
23879
24118
  var fs43 = __toESM(require("node:fs"));
23880
24119
  var path42 = __toESM(require("node:path"));
23881
24120
  var MINIMAL_GLUECHARM_RELATIVE_DIRS = [
@@ -23900,7 +24139,7 @@ function ensureMinimalGluecharmLayoutNode(repoRootAbs) {
23900
24139
  return { ok: true };
23901
24140
  }
23902
24141
 
23903
- // src/factory/factoryPipelineRegistry.ts
24142
+ // ../../src/factory/factoryPipelineRegistry.ts
23904
24143
  function buildFactoryPipelineRegistry(cb) {
23905
24144
  const synthesis = {
23906
24145
  key: "synthesis",
@@ -24001,7 +24240,7 @@ function buildFactoryPipelineRegistry(cb) {
24001
24240
  return { synthesis, coverage, remediation, linkMapping, upload, download };
24002
24241
  }
24003
24242
 
24004
- // src/factory/generateContextFactoryHeadlessHost.ts
24243
+ // ../../src/factory/generateContextFactoryHeadlessHost.ts
24005
24244
  function buildFactoryDepsHeadless(input) {
24006
24245
  const { storageContext, repoRoot, agentsDirFs, buildOpenCodeOptions, log, signal, macroConfig } = input;
24007
24246
  let adHocWorktree;
@@ -24348,11 +24587,160 @@ function buildFactoryDepsHeadless(input) {
24348
24587
  };
24349
24588
  }
24350
24589
 
24351
- // src/factory/updateContext/runUpdateContextFactory.ts
24590
+ // ../../src/cli/failureExitRegistry.ts
24591
+ var DRIFT_FACTORY = "context_drift";
24592
+ function failureExitIdFromParts(exitCode, minor) {
24593
+ return `${String(exitCode)}.${String(minor)}`;
24594
+ }
24595
+ var DRIFT_META = {
24596
+ INVALID_REFERENCE_PATH: {
24597
+ phase: "resolve_reference_bundle",
24598
+ exitCode: ExitCode.misconfiguration,
24599
+ minor: 1,
24600
+ title: "Reference path is not valid under the repository root or does not exist. Check the path is relative to --cwd or exists on disk."
24601
+ },
24602
+ WORKTREE_PREP_FAILED: {
24603
+ phase: "prepare_analysis_worktree",
24604
+ exitCode: ExitCode.misconfiguration,
24605
+ minor: 3,
24606
+ title: "Analysis worktree could not be prepared for drift analysis. Check git, disk space, and permissions."
24607
+ },
24608
+ EMPTY_BUNDLE: {
24609
+ phase: "resolve_reference_bundle",
24610
+ exitCode: ExitCode.validation,
24611
+ minor: 10,
24612
+ title: "Reference bundle was empty or could not be read for drift analysis."
24613
+ },
24614
+ UNRESOLVED_REFERENCE_ROOT: {
24615
+ phase: "resolve_reference_root",
24616
+ exitCode: ExitCode.validation,
24617
+ minor: 11,
24618
+ title: "Reference root document could not be resolved. Use --index or ensure an index markdown exists."
24619
+ },
24620
+ MANIFEST_FAILED: {
24621
+ phase: "build_comparison_manifest",
24622
+ exitCode: ExitCode.validation,
24623
+ minor: 12,
24624
+ title: "Comparison manifest could not be built for drift analysis."
24625
+ },
24626
+ AGENT_FAILED: {
24627
+ phase: "run_drift_analysis",
24628
+ exitCode: ExitCode.opencode,
24629
+ minor: 1,
24630
+ title: "OpenCode drift comparison did not complete successfully. Check OpenCode logs and credentials."
24631
+ },
24632
+ INVALID_AGENT_PAYLOAD: {
24633
+ phase: "validate_and_render_report",
24634
+ exitCode: ExitCode.opencode,
24635
+ minor: 2,
24636
+ title: "Drift agent returned a payload that failed validation before the report could be written."
24637
+ },
24638
+ REPORT_WRITE_FAILED: {
24639
+ phase: "validate_and_render_report",
24640
+ exitCode: ExitCode.validation,
24641
+ minor: 13,
24642
+ title: "Drift report markdown could not be written under the analysis worktree."
24643
+ },
24644
+ INDEX_PATCH_FAILED: {
24645
+ phase: "update_reference_index",
24646
+ exitCode: ExitCode.validation,
24647
+ minor: 14,
24648
+ title: "Reference root markdown could not be updated with the drift report link."
24649
+ },
24650
+ PROMOTE_FAILED: {
24651
+ phase: "promote_drift_artefacts",
24652
+ exitCode: ExitCode.upload,
24653
+ minor: 1,
24654
+ title: "Promoting drift artefacts from the analysis worktree to the workspace failed."
24655
+ }
24656
+ };
24657
+ var INDEX_PATH_ERROR_SUBSTRING = "--index";
24658
+ function invalidReferencePathMeta(error) {
24659
+ const isIndex = (error ?? "").includes(INDEX_PATH_ERROR_SUBSTRING);
24660
+ if (isIndex) {
24661
+ return {
24662
+ phase: "resolve_reference_root",
24663
+ exitCode: ExitCode.misconfiguration,
24664
+ minor: 2,
24665
+ title: "Index path (--index) is not under the repository root or does not exist. Fix the path or omit --index."
24666
+ };
24667
+ }
24668
+ return DRIFT_META.INVALID_REFERENCE_PATH;
24669
+ }
24670
+ function contextDriftExitCodeFor(code, error) {
24671
+ if (code === "INVALID_REFERENCE_PATH") {
24672
+ return invalidReferencePathMeta(error).exitCode;
24673
+ }
24674
+ return DRIFT_META[code].exitCode;
24675
+ }
24676
+ var DRIFT_PHASE_LABEL = {
24677
+ parse_cli: "CLI",
24678
+ prepare_analysis_worktree: "Analysis worktree",
24679
+ resolve_reference_bundle: "Reference bundle",
24680
+ resolve_reference_root: "Reference root",
24681
+ build_comparison_manifest: "Comparison manifest",
24682
+ run_drift_analysis: "Drift analysis",
24683
+ validate_and_render_report: "Drift report",
24684
+ update_reference_index: "Reference index",
24685
+ promote_drift_artefacts: "Promotion",
24686
+ finalize: "Finalize"
24687
+ };
24688
+ function readableLabelForDriftFactoryPhase(phase) {
24689
+ return DRIFT_PHASE_LABEL[phase] ?? phase;
24690
+ }
24691
+ function contextDriftFactoryFailureRow(code, error) {
24692
+ const meta = code === "INVALID_REFERENCE_PATH" ? invalidReferencePathMeta(error) : DRIFT_META[code];
24693
+ const failureExitId = failureExitIdFromParts(meta.exitCode, meta.minor);
24694
+ const detail = error.trim().length > 0 ? error.trim() : void 0;
24695
+ const base = {
24696
+ factory: DRIFT_FACTORY,
24697
+ phase: meta.phase,
24698
+ exitCode: meta.exitCode,
24699
+ failureExitId,
24700
+ title: meta.title,
24701
+ detail
24702
+ };
24703
+ if (meta.exitCode === ExitCode.validation) {
24704
+ return { ...base, validationExitId: failureExitId };
24705
+ }
24706
+ return base;
24707
+ }
24708
+
24709
+ // ../../src/cli/factoryValidationStderr.ts
24710
+ function readableLabelForAnyFactory(row2) {
24711
+ return row2.factory === "context_drift" ? readableLabelForDriftFactoryPhase(row2.phase) : readableLabelForFactoryPhase(row2.phase);
24712
+ }
24713
+ function stderrLinesForFactoryFailures(failures, exitCode) {
24714
+ const lines = [`=== Easyspecs factory failure (exit ${String(exitCode)})`];
24715
+ for (const f of failures) {
24716
+ const label = readableLabelForAnyFactory(f);
24717
+ let bullet = ` \u2022 [${factoryFailureDisplayId(f)}] ${label} \u2014 ${f.title}`;
24718
+ if (f.validationSubcode) {
24719
+ bullet += ` (${f.validationSubcode})`;
24720
+ }
24721
+ lines.push(bullet);
24722
+ if (f.detail) {
24723
+ for (const part of f.detail.split(/\r?\n/)) {
24724
+ if (part.length > 0) {
24725
+ lines.push(` ${part}`);
24726
+ }
24727
+ }
24728
+ }
24729
+ }
24730
+ const n = failures.length;
24731
+ if (n === 1 && failures[0]) {
24732
+ lines.push(`Exit ${String(exitCode)} \u2014 ${failures[0].title}`);
24733
+ } else {
24734
+ lines.push(`Exit ${String(exitCode)} \u2014 ${String(n)} pipeline phase(s) failed.`);
24735
+ }
24736
+ return lines;
24737
+ }
24738
+
24739
+ // ../../src/factory/updateContext/runUpdateContextFactory.ts
24352
24740
  var fs49 = __toESM(require("node:fs"));
24353
24741
  var path48 = __toESM(require("node:path"));
24354
24742
 
24355
- // src/factory/updateContext/updateContextBaseline.ts
24743
+ // ../../src/factory/updateContext/updateContextBaseline.ts
24356
24744
  var fs45 = __toESM(require("node:fs"));
24357
24745
  var path44 = __toESM(require("node:path"));
24358
24746
  function isValidIso(s) {
@@ -24417,7 +24805,7 @@ function persistUpdateContextLastRunAt(repoRootAbs, isoUtc) {
24417
24805
  });
24418
24806
  }
24419
24807
 
24420
- // src/factory/updateContext/updateContextGitWindow.ts
24808
+ // ../../src/factory/updateContext/updateContextGitWindow.ts
24421
24809
  var import_node_child_process2 = require("node:child_process");
24422
24810
  var fs46 = __toESM(require("node:fs"));
24423
24811
  var path45 = __toESM(require("node:path"));
@@ -24519,7 +24907,7 @@ function filterPathsExistingInWorktree(worktreeRootAbs, pathsPosix) {
24519
24907
  return out;
24520
24908
  }
24521
24909
 
24522
- // src/factory/updateContext/updateContextReport.ts
24910
+ // ../../src/factory/updateContext/updateContextReport.ts
24523
24911
  var fs47 = __toESM(require("node:fs"));
24524
24912
  var path46 = __toESM(require("node:path"));
24525
24913
  var CHANGES_SINCE_DATE_BASENAME = "changes-since-date.md";
@@ -24571,7 +24959,7 @@ function writeChangesSinceDateReport(contextDirAbs, body) {
24571
24959
  }
24572
24960
  }
24573
24961
 
24574
- // src/factory/updateContext/updateContextSeedCheck.ts
24962
+ // ../../src/factory/updateContext/updateContextSeedCheck.ts
24575
24963
  var fs48 = __toESM(require("node:fs"));
24576
24964
  var path47 = __toESM(require("node:path"));
24577
24965
  var INDEX_BASENAME = "index-application-context.json";
@@ -24618,7 +25006,7 @@ function isWorktreeContextSeeded(contextDirAbs) {
24618
25006
  return distinct.size >= 3;
24619
25007
  }
24620
25008
 
24621
- // src/factory/updateContext/runUpdateContextFactory.ts
25009
+ // ../../src/factory/updateContext/runUpdateContextFactory.ts
24622
25010
  var REMEDIATION_CHUNK_MAX = 40;
24623
25011
  function contextDirUnderRoot(wtRoot) {
24624
25012
  return path48.join(wtRoot, ".gluecharm", "context");
@@ -24986,11 +25374,11 @@ async function runUpdateContextFactory(deps) {
24986
25374
  };
24987
25375
  }
24988
25376
 
24989
- // src/factory/contextDrift/runContextDriftFactory.ts
25377
+ // ../../src/factory/contextDrift/runContextDriftFactory.ts
24990
25378
  var fs55 = __toESM(require("node:fs"));
24991
25379
  var path53 = __toESM(require("node:path"));
24992
25380
 
24993
- // src/factory/contextDrift/contextDriftManifest.ts
25381
+ // ../../src/factory/contextDrift/contextDriftManifest.ts
24994
25382
  var fs50 = __toESM(require("node:fs"));
24995
25383
  var path49 = __toESM(require("node:path"));
24996
25384
  var MAX_REFERENCE_BYTES = 256 * 1024;
@@ -25096,11 +25484,11 @@ function buildComparisonManifest(args) {
25096
25484
  };
25097
25485
  }
25098
25486
 
25099
- // src/factory/contextDrift/contextDriftAgent.ts
25487
+ // ../../src/factory/contextDrift/contextDriftAgent.ts
25100
25488
  var fs51 = __toESM(require("node:fs"));
25101
25489
  var path50 = __toESM(require("node:path"));
25102
25490
 
25103
- // src/factory/contextDrift/contextDriftPayload.ts
25491
+ // ../../src/factory/contextDrift/contextDriftPayload.ts
25104
25492
  function isNonEmptyString2(v) {
25105
25493
  return typeof v === "string" && v.trim().length > 0;
25106
25494
  }
@@ -25215,7 +25603,7 @@ function renderDriftMarkdown(args) {
25215
25603
  return lines.join("\n");
25216
25604
  }
25217
25605
 
25218
- // src/factory/contextDrift/contextDriftAgent.ts
25606
+ // ../../src/factory/contextDrift/contextDriftAgent.ts
25219
25607
  var CONTEXT_DRIFT_AGENT_STEM = "agent-context-drift-compare";
25220
25608
  function expandArgvTemplate5(template, vars) {
25221
25609
  return template.map((part) => {
@@ -25310,7 +25698,7 @@ async function runDriftComparisonOpenCode(args) {
25310
25698
  return { ok: true, payload: parsed.payload };
25311
25699
  }
25312
25700
 
25313
- // src/factory/contextDrift/contextDriftPaths.ts
25701
+ // ../../src/factory/contextDrift/contextDriftPaths.ts
25314
25702
  var crypto2 = __toESM(require("node:crypto"));
25315
25703
  var fs52 = __toESM(require("node:fs"));
25316
25704
  var path51 = __toESM(require("node:path"));
@@ -25424,7 +25812,7 @@ function toPosixPath(p) {
25424
25812
  return p.split(path51.sep).join("/");
25425
25813
  }
25426
25814
 
25427
- // src/factory/contextDrift/contextDriftIndex.ts
25815
+ // ../../src/factory/contextDrift/contextDriftIndex.ts
25428
25816
  var fs53 = __toESM(require("node:fs"));
25429
25817
  var START = "<!-- easyspecs-drift-links:start -->";
25430
25818
  var END = "<!-- easyspecs-drift-links:end -->";
@@ -25462,7 +25850,7 @@ function escapeRe(s) {
25462
25850
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
25463
25851
  }
25464
25852
 
25465
- // src/factory/contextDrift/contextDriftPromote.ts
25853
+ // ../../src/factory/contextDrift/contextDriftPromote.ts
25466
25854
  var fs54 = __toESM(require("node:fs"));
25467
25855
  var path52 = __toESM(require("node:path"));
25468
25856
  function copyWorktreeFileToWorkspace(args) {
@@ -25472,7 +25860,7 @@ function copyWorktreeFileToWorkspace(args) {
25472
25860
  fs54.copyFileSync(src, dest);
25473
25861
  }
25474
25862
 
25475
- // src/factory/contextDrift/runContextDriftFactory.ts
25863
+ // ../../src/factory/contextDrift/runContextDriftFactory.ts
25476
25864
  async function runContextDriftFactory(deps) {
25477
25865
  const runDate = utcDateString(/* @__PURE__ */ new Date());
25478
25866
  const baseMeta = { command: "context_drift", referencePath: deps.referencePathArg };
@@ -25730,7 +26118,7 @@ async function runContextDriftFactory(deps) {
25730
26118
  };
25731
26119
  }
25732
26120
 
25733
- // src/analysis/coordinationDuplicatesDiagnosis.ts
26121
+ // ../../src/analysis/coordinationDuplicatesDiagnosis.ts
25734
26122
  var fs56 = __toESM(require("fs"));
25735
26123
  var path54 = __toESM(require("path"));
25736
26124
  var import__7 = __toESM(require__());
@@ -25757,14 +26145,14 @@ var RE_MD_SV = /^SV-\d+-.+\.md$/i;
25757
26145
  var RE_MD_DM_FD = /^DM-\d+_FD-\d+-.+\.md$/i;
25758
26146
  var RE_MD_DM = /^DM-\d+-.+\.md$/i;
25759
26147
  var RE_MD_TS = /^TS-\d+-.+\.md$/i;
25760
- function looksLikeCoordinationDetailMarkdownBasename(basename16) {
25761
- if (!basename16 || basename16 !== path54.basename(basename16) || !/\.md$/i.test(basename16)) {
26148
+ function looksLikeCoordinationDetailMarkdownBasename(basename17) {
26149
+ if (!basename17 || basename17 !== path54.basename(basename17) || !/\.md$/i.test(basename17)) {
25762
26150
  return false;
25763
26151
  }
25764
- if (STAPLE_CONTEXT_MARKDOWN_BASENAMES.has(basename16)) {
26152
+ if (STAPLE_CONTEXT_MARKDOWN_BASENAMES.has(basename17)) {
25765
26153
  return false;
25766
26154
  }
25767
- return RE_MD_FE_UC_SC.test(basename16) || RE_MD_FE_UC_SLUG.test(basename16) || RE_MD_FE_UC_PLAIN.test(basename16) || RE_MD_FE_FEATURE.test(basename16) || RE_MD_XP_BH.test(basename16) || RE_MD_XP_VIEW.test(basename16) || RE_MD_SV_ME.test(basename16) || RE_MD_SV.test(basename16) || RE_MD_DM_FD.test(basename16) || RE_MD_DM.test(basename16) || RE_MD_TS.test(basename16);
26155
+ return RE_MD_FE_UC_SC.test(basename17) || RE_MD_FE_UC_SLUG.test(basename17) || RE_MD_FE_UC_PLAIN.test(basename17) || RE_MD_FE_FEATURE.test(basename17) || RE_MD_XP_BH.test(basename17) || RE_MD_XP_VIEW.test(basename17) || RE_MD_SV_ME.test(basename17) || RE_MD_SV.test(basename17) || RE_MD_DM_FD.test(basename17) || RE_MD_DM.test(basename17) || RE_MD_TS.test(basename17);
25768
26156
  }
25769
26157
  function loadRawFeatureRows(contextDirAbs) {
25770
26158
  const p = path54.join(contextDirAbs, "features-list.json");
@@ -25779,8 +26167,8 @@ function loadRawFeatureRows(contextDirAbs) {
25779
26167
  return [];
25780
26168
  }
25781
26169
  }
25782
- function hintForOrphanFeatureMarkdown(basename16, featureRows) {
25783
- const m = /^FE-(\d+)-(.+)\.md$/i.exec(basename16);
26170
+ function hintForOrphanFeatureMarkdown(basename17, featureRows) {
26171
+ const m = /^FE-(\d+)-(.+)\.md$/i.exec(basename17);
25784
26172
  if (!m) {
25785
26173
  return void 0;
25786
26174
  }
@@ -25792,8 +26180,8 @@ function hintForOrphanFeatureMarkdown(basename16, featureRows) {
25792
26180
  continue;
25793
26181
  }
25794
26182
  const expected = expectedFeatureDetailBasenameFromRow(row2);
25795
- if (expected && expected !== basename16) {
25796
- return `features-list row ${code} currently implies detail file ${expected} (slug/name changed \u2014 ${basename16} may be stale).`;
26183
+ if (expected && expected !== basename17) {
26184
+ return `features-list row ${code} currently implies detail file ${expected} (slug/name changed \u2014 ${basename17} may be stale).`;
25797
26185
  }
25798
26186
  if (!expected) {
25799
26187
  return `features-list row ${code} has no resolvable slug for a detail markdown basename.`;
@@ -26180,7 +26568,7 @@ function runCoordinationDuplicatesDiagnosis(input) {
26180
26568
  };
26181
26569
  }
26182
26570
 
26183
- // src/pipelines/download/downloadPipeline.ts
26571
+ // ../../src/pipelines/download/downloadPipeline.ts
26184
26572
  var fs57 = __toESM(require("node:fs"));
26185
26573
  var path55 = __toESM(require("node:path"));
26186
26574
  var SRS_DISCOVERY_BATCH_GET_CHUNK_SIZE = 200;
@@ -26421,7 +26809,7 @@ async function runDownloadPipeline(opts) {
26421
26809
  return { downloaded, skipped, failed, localFilesRemoved, succeededIds };
26422
26810
  }
26423
26811
 
26424
- // src/auth/authApi.ts
26812
+ // ../../src/auth/authApi.ts
26425
26813
  var API_TIMEOUT_MS = 1e4;
26426
26814
  async function fetchWithTimeout(url, init, fetchImpl) {
26427
26815
  const controller = new AbortController();
@@ -26477,7 +26865,7 @@ function toFetchErrorMessage(e) {
26477
26865
  return { status: 0, message: msg };
26478
26866
  }
26479
26867
 
26480
- // src/auth/gluecharmContentNegotiation.ts
26868
+ // ../../src/auth/gluecharmContentNegotiation.ts
26481
26869
  var GLUECHARM_WS_LEGACY_JSON = "application/vnd.gluecharm.v1.ws-legacy+json";
26482
26870
  function pathWithoutQuery(path60) {
26483
26871
  const q = path60.indexOf("?");
@@ -26496,7 +26884,7 @@ function gluecharmContentHeaders(method) {
26496
26884
  return headers;
26497
26885
  }
26498
26886
 
26499
- // src/auth/authenticatedFetch.ts
26887
+ // ../../src/auth/authenticatedFetch.ts
26500
26888
  async function fetchWithTimeout2(url, init, fetchImpl, timeoutMs, externalSignal) {
26501
26889
  const controller = new AbortController();
26502
26890
  const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
@@ -26574,7 +26962,7 @@ function createAuthenticatedRequestJson(deps) {
26574
26962
  return requestJson;
26575
26963
  }
26576
26964
 
26577
- // src/cli/cliSession.ts
26965
+ // ../../src/cli/cliSession.ts
26578
26966
  var fs58 = __toESM(require("node:fs"));
26579
26967
  var os3 = __toESM(require("node:os"));
26580
26968
  var path56 = __toESM(require("node:path"));
@@ -26649,7 +27037,7 @@ function clearCliSession() {
26649
27037
  }
26650
27038
  }
26651
27039
 
26652
- // src/analysis/acePendingTraces.ts
27040
+ // ../../src/analysis/acePendingTraces.ts
26653
27041
  var fs59 = __toESM(require("fs"));
26654
27042
  var path57 = __toESM(require("path"));
26655
27043
  function normalizeAceTraceRelativePath(rel) {
@@ -26715,7 +27103,7 @@ function listPendingAceTraceFiles(contextDir2, worktreeRoot) {
26715
27103
  return pending.map((x) => x.abs);
26716
27104
  }
26717
27105
 
26718
- // src/analysis/aceAutoLearnPool.ts
27106
+ // ../../src/analysis/aceAutoLearnPool.ts
26719
27107
  var path58 = __toESM(require("path"));
26720
27108
  function clampConcurrency2(n) {
26721
27109
  if (!Number.isFinite(n)) {
@@ -26797,7 +27185,7 @@ async function runAceAutoLearnPool(p) {
26797
27185
  return { cancelled: abortSignal?.aborted === true, completed, failed };
26798
27186
  }
26799
27187
 
26800
- // src/cli/parseTailFlags.ts
27188
+ // ../../src/cli/parseTailFlags.ts
26801
27189
  function parseTailFlags(tail) {
26802
27190
  let rootKind = "workspace";
26803
27191
  let worktree;
@@ -26822,7 +27210,7 @@ function parseTailFlags(tail) {
26822
27210
  return { rootKind, worktree };
26823
27211
  }
26824
27212
 
26825
- // src/cli/parseContextDriftTail.ts
27213
+ // ../../src/cli/parseContextDriftTail.ts
26826
27214
  function parseContextDriftTail(tail) {
26827
27215
  const rest = [];
26828
27216
  let label;
@@ -26865,7 +27253,7 @@ function stripRootWorktreeTokens(tokens) {
26865
27253
  return out;
26866
27254
  }
26867
27255
 
26868
- // src/cli/parseDoctorFlags.ts
27256
+ // ../../src/cli/parseDoctorFlags.ts
26869
27257
  var ALLOWED = /* @__PURE__ */ new Set(["--readiness", "--inspect-config"]);
26870
27258
  function parseDoctorFlags(tail) {
26871
27259
  for (const t of tail) {
@@ -26882,7 +27270,7 @@ function parseDoctorFlags(tail) {
26882
27270
  };
26883
27271
  }
26884
27272
 
26885
- // src/cli/parseAuthLoginTail.ts
27273
+ // ../../src/cli/parseAuthLoginTail.ts
26886
27274
  function extractAuthLoginSessionPathFromTail(tail) {
26887
27275
  const rest = [];
26888
27276
  let sessionPath;
@@ -26939,7 +27327,7 @@ function parseAuthLoginTail(tail) {
26939
27327
  return { ok: true, creds: { email: email.trim(), password } };
26940
27328
  }
26941
27329
 
26942
- // src/cli/cliDiagStyle.ts
27330
+ // ../../src/cli/cliDiagStyle.ts
26943
27331
  var RESET = "\x1B[0m";
26944
27332
  var DIM = "\x1B[2m";
26945
27333
  var BOLD = "\x1B[1m";
@@ -27259,8 +27647,24 @@ function formatCliStderrLine(line, useAnsi) {
27259
27647
  return { leadingBlank, text };
27260
27648
  }
27261
27649
 
27262
- // src/cli/main.ts
27263
- var PKG_VERSION = "0.0.14";
27650
+ // ../../src/cli/main.ts
27651
+ var PKG_VERSION = "0.0.18";
27652
+ function isNonEmptyFactoryFailureArray(x) {
27653
+ if (!Array.isArray(x) || x.length === 0) {
27654
+ return false;
27655
+ }
27656
+ for (const item of x) {
27657
+ if (typeof item !== "object" || item === null) {
27658
+ return false;
27659
+ }
27660
+ const r = item;
27661
+ const hasId = typeof r.failureExitId === "string" || typeof r.validationExitId === "string";
27662
+ if (typeof r.phase !== "string" || typeof r.title !== "string" || !hasId) {
27663
+ return false;
27664
+ }
27665
+ }
27666
+ return true;
27667
+ }
27264
27668
  function isEasyspecsConfigReadError(e) {
27265
27669
  return e instanceof EasyspecsConfigInvalidJsonError || e instanceof EasyspecsConfigSchemaError;
27266
27670
  }
@@ -27279,6 +27683,20 @@ function logErr(flags, ...a) {
27279
27683
  console.error(...a);
27280
27684
  }
27281
27685
  }
27686
+ function logExitCodeSummary(code, flags) {
27687
+ if (code === ExitCode.ok) {
27688
+ return;
27689
+ }
27690
+ if (flags?.json === true) {
27691
+ return;
27692
+ }
27693
+ const line = `Exit ${String(code)} \u2014 ${describeExitCode(code)}`;
27694
+ if (flags) {
27695
+ logErr(flags, line);
27696
+ } else {
27697
+ console.error(line);
27698
+ }
27699
+ }
27282
27700
  function buildDoctorInspectPayload(merged, repoConfig) {
27283
27701
  return {
27284
27702
  merged: redactMergedCliSettingsForDump(merged),
@@ -27444,6 +27862,7 @@ async function main() {
27444
27862
  parsed = parseCliWithCommander(process.argv.slice(2));
27445
27863
  } catch (e) {
27446
27864
  console.error(e instanceof Error ? e.message : String(e));
27865
+ logExitCodeSummary(ExitCode.usage);
27447
27866
  process.exit(ExitCode.usage);
27448
27867
  }
27449
27868
  const { flags, positionals } = parsed;
@@ -27465,6 +27884,7 @@ async function main() {
27465
27884
  const unknown = tail.filter((t) => t !== "--overwrite");
27466
27885
  if (unknown.length > 0) {
27467
27886
  logErr(flags, `Unknown arguments for config init: ${unknown.join(", ")}`);
27887
+ logExitCodeSummary(ExitCode.usage, flags);
27468
27888
  process.exit(ExitCode.usage);
27469
27889
  }
27470
27890
  try {
@@ -27488,6 +27908,7 @@ async function main() {
27488
27908
  } catch (e) {
27489
27909
  if (isEasyspecsConfigReadError(e)) {
27490
27910
  console.error(e.message);
27911
+ logExitCodeSummary(ExitCode.misconfiguration, flags);
27491
27912
  process.exit(ExitCode.misconfiguration);
27492
27913
  }
27493
27914
  throw e;
@@ -27499,6 +27920,7 @@ async function main() {
27499
27920
  const extra = rest.slice(1).filter((t) => t.length > 0);
27500
27921
  if (!id || extra.length > 0) {
27501
27922
  logErr(flags, "Usage: easyspecs-cli config set-project-id <easyspecsProjectId>");
27923
+ logExitCodeSummary(ExitCode.usage, flags);
27502
27924
  process.exit(ExitCode.usage);
27503
27925
  }
27504
27926
  try {
@@ -27523,6 +27945,7 @@ async function main() {
27523
27945
  } catch (e) {
27524
27946
  if (isEasyspecsConfigReadError(e)) {
27525
27947
  console.error(e.message);
27948
+ logExitCodeSummary(ExitCode.misconfiguration, flags);
27526
27949
  process.exit(ExitCode.misconfiguration);
27527
27950
  }
27528
27951
  throw e;
@@ -27534,6 +27957,7 @@ async function main() {
27534
27957
  const extra = rest.slice(1).filter((t) => t.length > 0);
27535
27958
  if (!url || extra.length > 0) {
27536
27959
  logErr(flags, "Usage: easyspecs-cli config set-git-remote <url>");
27960
+ logExitCodeSummary(ExitCode.usage, flags);
27537
27961
  process.exit(ExitCode.usage);
27538
27962
  }
27539
27963
  try {
@@ -27558,6 +27982,7 @@ async function main() {
27558
27982
  } catch (e) {
27559
27983
  if (isEasyspecsConfigReadError(e)) {
27560
27984
  console.error(e.message);
27985
+ logExitCodeSummary(ExitCode.misconfiguration, flags);
27561
27986
  process.exit(ExitCode.misconfiguration);
27562
27987
  }
27563
27988
  throw e;
@@ -27576,6 +28001,7 @@ async function main() {
27576
28001
  } catch (e) {
27577
28002
  if (isEasyspecsConfigReadError(e)) {
27578
28003
  console.error(e.message);
28004
+ logExitCodeSummary(ExitCode.misconfiguration, flags);
27579
28005
  process.exit(ExitCode.misconfiguration);
27580
28006
  }
27581
28007
  throw e;
@@ -27594,12 +28020,29 @@ async function main() {
27594
28020
  repoRoot
27595
28021
  });
27596
28022
  const finish = (code, envelope) => {
28023
+ const ffRaw = envelope.factoryFailures;
28024
+ const factoryFailuresPack = isNonEmptyFactoryFailureArray(ffRaw) ? ffRaw.map(
28025
+ (r) => normalizeFactoryFailureRow(
28026
+ r
28027
+ )
28028
+ ) : void 0;
28029
+ const exitMeaningComputed = code !== ExitCode.ok ? factoryFailuresPack !== void 0 && factoryFailuresPack.length > 0 ? exitMeaningFromFactoryFailures(factoryFailuresPack) : describeExitCode(code) : "";
27597
28030
  if (flags.json) {
27598
28031
  printJsonLine({
27599
28032
  command: cmd,
27600
28033
  durationMs: Date.now() - t0,
27601
- ...envelope
28034
+ ...envelope,
28035
+ ...factoryFailuresPack !== void 0 ? { factoryFailures: factoryFailuresPack } : {},
28036
+ ...code !== ExitCode.ok ? { exitCode: code, exitMeaning: exitMeaningComputed } : {}
27602
28037
  });
28038
+ } else if (code !== ExitCode.ok) {
28039
+ if (factoryFailuresPack !== void 0 && factoryFailuresPack.length > 0) {
28040
+ for (const ln of stderrLinesForFactoryFailures(factoryFailuresPack, code)) {
28041
+ logErr(flags, ln);
28042
+ }
28043
+ } else {
28044
+ logErr(flags, `Exit ${String(code)} \u2014 ${describeExitCode(code)}`);
28045
+ }
27603
28046
  }
27604
28047
  process.exit(code);
27605
28048
  throw new Error("unreachable");
@@ -27620,6 +28063,7 @@ async function main() {
27620
28063
  } catch (e) {
27621
28064
  logErr(flags, e instanceof Error ? e.message : String(e));
27622
28065
  logErr(flags, "Usage: easyspecs-cli doctor [--readiness] [--inspect-config]");
28066
+ logExitCodeSummary(ExitCode.usage, flags);
27623
28067
  process.exit(ExitCode.usage);
27624
28068
  }
27625
28069
  const agentsDir = resolveOpenCodeAgentsDir(repoRoot, repoConfig);
@@ -27684,6 +28128,7 @@ async function main() {
27684
28128
  sessionPathRaw = extracted.sessionPath;
27685
28129
  } catch (e) {
27686
28130
  logErr(flags, e instanceof Error ? e.message : String(e));
28131
+ logExitCodeSummary(ExitCode.usage, flags);
27687
28132
  process.exit(ExitCode.usage);
27688
28133
  }
27689
28134
  const parsedCli = parseAuthLoginTail(tailForCreds);
@@ -27709,6 +28154,7 @@ async function main() {
27709
28154
  flags,
27710
28155
  "Non-interactive (--ci): set easyspecs.auth.ciLogin.email and easyspecs.auth.ciLogin.password in .easyspecs/config.json"
27711
28156
  );
28157
+ logExitCodeSummary(ExitCode.usage, flags);
27712
28158
  process.exit(ExitCode.usage);
27713
28159
  }
27714
28160
  if (sessionPathRaw !== void 0) {
@@ -28043,12 +28489,29 @@ async function main() {
28043
28489
  signal: ctrl.signal,
28044
28490
  log: (line) => logErr(flags, line)
28045
28491
  });
28046
- const driftExit = dres.exitOk && dres.ok ? ExitCode.ok : dres.ok === false && (dres.code === "INVALID_REFERENCE_PATH" || dres.code === "UNRESOLVED_REFERENCE_ROOT") ? ExitCode.usage : ExitCode.validation;
28047
- if (dres.exitOk && dres.ok && dres.driftReportPath && !flags.json && !dres.dryRun) {
28048
- console.log(dres.driftReportPath);
28492
+ if (dres.exitOk && dres.ok) {
28493
+ if (dres.driftReportPath && !flags.json && !dres.dryRun) {
28494
+ console.log(dres.driftReportPath);
28495
+ }
28496
+ const { exitOk: _driftOkA, ...driftPayload } = dres;
28497
+ finish(ExitCode.ok, driftPayload);
28498
+ }
28499
+ if (dres.ok === false) {
28500
+ const row2 = contextDriftFactoryFailureRow(dres.code, dres.error);
28501
+ const driftExit = contextDriftExitCodeFor(dres.code, dres.error);
28502
+ const { exitOk: _driftOkB, ...driftRest } = dres;
28503
+ const envelope = {
28504
+ ...driftRest,
28505
+ ok: false,
28506
+ factoryFailures: [row2],
28507
+ error: composeFactoryValidationError(dres.error, [row2])
28508
+ };
28509
+ if (driftExit === ExitCode.validation) {
28510
+ Object.assign(envelope, primaryFailureAliases([row2]));
28511
+ }
28512
+ finish(driftExit, envelope);
28049
28513
  }
28050
- const { exitOk: _driftExitOk, ...driftPayload } = dres;
28051
- finish(driftExit, driftPayload);
28514
+ finish(ExitCode.internal, { ok: false, error: "Unexpected context drift result shape." });
28052
28515
  }
28053
28516
  if (pos[0] === "analysis") {
28054
28517
  const synthesisOnly = positionals.includes("--synthesis-only");
@@ -28152,12 +28615,18 @@ async function main() {
28152
28615
  runBackendSyncImpl
28153
28616
  });
28154
28617
  const res = await runGenerateContextFactory(deps);
28155
- finish(res.ok ? ExitCode.ok : res.cancelled ? ExitCode.cancelled : ExitCode.validation, {
28618
+ const analysisEnvelope = {
28156
28619
  ok: res.ok,
28157
- error: res.message,
28158
28620
  cancelled: res.cancelled,
28159
- totalElapsedMs: res.totalElapsedMs
28160
- });
28621
+ totalElapsedMs: res.totalElapsedMs,
28622
+ error: res.message
28623
+ };
28624
+ if (!res.ok && !res.cancelled && res.factoryFailures && res.factoryFailures.length > 0) {
28625
+ analysisEnvelope.factoryFailures = res.factoryFailures;
28626
+ Object.assign(analysisEnvelope, primaryFailureAliases(res.factoryFailures));
28627
+ analysisEnvelope.error = composeFactoryValidationError(res.message, res.factoryFailures);
28628
+ }
28629
+ finish(res.ok ? ExitCode.ok : res.cancelled ? ExitCode.cancelled : ExitCode.validation, analysisEnvelope);
28161
28630
  }
28162
28631
  if (pos[0] === "update" && pos[1] === "context") {
28163
28632
  for (const a of pos.slice(2)) {
@@ -28547,10 +29016,13 @@ async function main() {
28547
29016
  command: cmd,
28548
29017
  durationMs: Date.now() - t0,
28549
29018
  ok: false,
28550
- error: e.message
29019
+ error: e.message,
29020
+ exitCode: ExitCode.misconfiguration,
29021
+ exitMeaning: describeExitCode(ExitCode.misconfiguration)
28551
29022
  });
28552
29023
  } else {
28553
29024
  console.error(e.message);
29025
+ logExitCodeSummary(ExitCode.misconfiguration, flags);
28554
29026
  }
28555
29027
  process.exit(ExitCode.misconfiguration);
28556
29028
  }