@hasna/contacts 0.6.35 → 0.6.36

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/mcp/index.js CHANGED
@@ -47,7 +47,7 @@ var __export = (target, all) => {
47
47
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
48
48
  var __require = import.meta.require;
49
49
 
50
- // node_modules/ajv/dist/compile/codegen/code.js
50
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/code.js
51
51
  var require_code = __commonJS((exports) => {
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = undefined;
@@ -201,7 +201,7 @@ var require_code = __commonJS((exports) => {
201
201
  exports.regexpCode = regexpCode;
202
202
  });
203
203
 
204
- // node_modules/ajv/dist/compile/codegen/scope.js
204
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/scope.js
205
205
  var require_scope = __commonJS((exports) => {
206
206
  Object.defineProperty(exports, "__esModule", { value: true });
207
207
  exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = undefined;
@@ -347,7 +347,7 @@ var require_scope = __commonJS((exports) => {
347
347
  exports.ValueScope = ValueScope;
348
348
  });
349
349
 
350
- // node_modules/ajv/dist/compile/codegen/index.js
350
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/index.js
351
351
  var require_codegen = __commonJS((exports) => {
352
352
  Object.defineProperty(exports, "__esModule", { value: true });
353
353
  exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = undefined;
@@ -1057,7 +1057,7 @@ var require_codegen = __commonJS((exports) => {
1057
1057
  }
1058
1058
  });
1059
1059
 
1060
- // node_modules/ajv/dist/compile/util.js
1060
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/util.js
1061
1061
  var require_util = __commonJS((exports) => {
1062
1062
  Object.defineProperty(exports, "__esModule", { value: true });
1063
1063
  exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = undefined;
@@ -1221,7 +1221,7 @@ var require_util = __commonJS((exports) => {
1221
1221
  exports.checkStrictMode = checkStrictMode;
1222
1222
  });
1223
1223
 
1224
- // node_modules/ajv/dist/compile/names.js
1224
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/names.js
1225
1225
  var require_names = __commonJS((exports) => {
1226
1226
  Object.defineProperty(exports, "__esModule", { value: true });
1227
1227
  var codegen_1 = require_codegen();
@@ -1246,7 +1246,7 @@ var require_names = __commonJS((exports) => {
1246
1246
  exports.default = names;
1247
1247
  });
1248
1248
 
1249
- // node_modules/ajv/dist/compile/errors.js
1249
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/errors.js
1250
1250
  var require_errors = __commonJS((exports) => {
1251
1251
  Object.defineProperty(exports, "__esModule", { value: true });
1252
1252
  exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = undefined;
@@ -1364,7 +1364,7 @@ var require_errors = __commonJS((exports) => {
1364
1364
  }
1365
1365
  });
1366
1366
 
1367
- // node_modules/ajv/dist/compile/validate/boolSchema.js
1367
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/boolSchema.js
1368
1368
  var require_boolSchema = __commonJS((exports) => {
1369
1369
  Object.defineProperty(exports, "__esModule", { value: true });
1370
1370
  exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = undefined;
@@ -1412,7 +1412,7 @@ var require_boolSchema = __commonJS((exports) => {
1412
1412
  }
1413
1413
  });
1414
1414
 
1415
- // node_modules/ajv/dist/compile/rules.js
1415
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/rules.js
1416
1416
  var require_rules = __commonJS((exports) => {
1417
1417
  Object.defineProperty(exports, "__esModule", { value: true });
1418
1418
  exports.getRules = exports.isJSONType = undefined;
@@ -1440,7 +1440,7 @@ var require_rules = __commonJS((exports) => {
1440
1440
  exports.getRules = getRules;
1441
1441
  });
1442
1442
 
1443
- // node_modules/ajv/dist/compile/validate/applicability.js
1443
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/applicability.js
1444
1444
  var require_applicability = __commonJS((exports) => {
1445
1445
  Object.defineProperty(exports, "__esModule", { value: true });
1446
1446
  exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = undefined;
@@ -1460,7 +1460,7 @@ var require_applicability = __commonJS((exports) => {
1460
1460
  exports.shouldUseRule = shouldUseRule;
1461
1461
  });
1462
1462
 
1463
- // node_modules/ajv/dist/compile/validate/dataType.js
1463
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/dataType.js
1464
1464
  var require_dataType = __commonJS((exports) => {
1465
1465
  Object.defineProperty(exports, "__esModule", { value: true });
1466
1466
  exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = undefined;
@@ -1641,7 +1641,7 @@ var require_dataType = __commonJS((exports) => {
1641
1641
  }
1642
1642
  });
1643
1643
 
1644
- // node_modules/ajv/dist/compile/validate/defaults.js
1644
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/defaults.js
1645
1645
  var require_defaults = __commonJS((exports) => {
1646
1646
  Object.defineProperty(exports, "__esModule", { value: true });
1647
1647
  exports.assignDefaults = undefined;
@@ -1675,7 +1675,7 @@ var require_defaults = __commonJS((exports) => {
1675
1675
  }
1676
1676
  });
1677
1677
 
1678
- // node_modules/ajv/dist/vocabularies/code.js
1678
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/code.js
1679
1679
  var require_code2 = __commonJS((exports) => {
1680
1680
  Object.defineProperty(exports, "__esModule", { value: true });
1681
1681
  exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = undefined;
@@ -1804,7 +1804,7 @@ var require_code2 = __commonJS((exports) => {
1804
1804
  exports.validateUnion = validateUnion;
1805
1805
  });
1806
1806
 
1807
- // node_modules/ajv/dist/compile/validate/keyword.js
1807
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/keyword.js
1808
1808
  var require_keyword = __commonJS((exports) => {
1809
1809
  Object.defineProperty(exports, "__esModule", { value: true });
1810
1810
  exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = undefined;
@@ -1919,7 +1919,7 @@ var require_keyword = __commonJS((exports) => {
1919
1919
  exports.validateKeywordUsage = validateKeywordUsage;
1920
1920
  });
1921
1921
 
1922
- // node_modules/ajv/dist/compile/validate/subschema.js
1922
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/subschema.js
1923
1923
  var require_subschema = __commonJS((exports) => {
1924
1924
  Object.defineProperty(exports, "__esModule", { value: true });
1925
1925
  exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = undefined;
@@ -1999,7 +1999,7 @@ var require_subschema = __commonJS((exports) => {
1999
1999
  exports.extendSubschemaMode = extendSubschemaMode;
2000
2000
  });
2001
2001
 
2002
- // node_modules/fast-deep-equal/index.js
2002
+ // node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js
2003
2003
  var require_fast_deep_equal = __commonJS((exports, module) => {
2004
2004
  module.exports = function equal(a, b) {
2005
2005
  if (a === b)
@@ -2041,7 +2041,7 @@ var require_fast_deep_equal = __commonJS((exports, module) => {
2041
2041
  };
2042
2042
  });
2043
2043
 
2044
- // node_modules/json-schema-traverse/index.js
2044
+ // node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js
2045
2045
  var require_json_schema_traverse = __commonJS((exports, module) => {
2046
2046
  var traverse = module.exports = function(schema, opts, cb) {
2047
2047
  if (typeof opts == "function") {
@@ -2124,7 +2124,7 @@ var require_json_schema_traverse = __commonJS((exports, module) => {
2124
2124
  }
2125
2125
  });
2126
2126
 
2127
- // node_modules/ajv/dist/compile/resolve.js
2127
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/resolve.js
2128
2128
  var require_resolve = __commonJS((exports) => {
2129
2129
  Object.defineProperty(exports, "__esModule", { value: true });
2130
2130
  exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = undefined;
@@ -2277,7 +2277,7 @@ var require_resolve = __commonJS((exports) => {
2277
2277
  exports.getSchemaRefs = getSchemaRefs;
2278
2278
  });
2279
2279
 
2280
- // node_modules/ajv/dist/compile/validate/index.js
2280
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/index.js
2281
2281
  var require_validate = __commonJS((exports) => {
2282
2282
  Object.defineProperty(exports, "__esModule", { value: true });
2283
2283
  exports.getData = exports.KeywordCxt = exports.validateFunctionCode = undefined;
@@ -2782,7 +2782,7 @@ var require_validate = __commonJS((exports) => {
2782
2782
  exports.getData = getData;
2783
2783
  });
2784
2784
 
2785
- // node_modules/ajv/dist/runtime/validation_error.js
2785
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/validation_error.js
2786
2786
  var require_validation_error = __commonJS((exports) => {
2787
2787
  Object.defineProperty(exports, "__esModule", { value: true });
2788
2788
 
@@ -2796,7 +2796,7 @@ var require_validation_error = __commonJS((exports) => {
2796
2796
  exports.default = ValidationError;
2797
2797
  });
2798
2798
 
2799
- // node_modules/ajv/dist/compile/ref_error.js
2799
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/ref_error.js
2800
2800
  var require_ref_error = __commonJS((exports) => {
2801
2801
  Object.defineProperty(exports, "__esModule", { value: true });
2802
2802
  var resolve_1 = require_resolve();
@@ -2811,7 +2811,7 @@ var require_ref_error = __commonJS((exports) => {
2811
2811
  exports.default = MissingRefError;
2812
2812
  });
2813
2813
 
2814
- // node_modules/ajv/dist/compile/index.js
2814
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/index.js
2815
2815
  var require_compile = __commonJS((exports) => {
2816
2816
  Object.defineProperty(exports, "__esModule", { value: true });
2817
2817
  exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = undefined;
@@ -3032,7 +3032,7 @@ var require_compile = __commonJS((exports) => {
3032
3032
  }
3033
3033
  });
3034
3034
 
3035
- // node_modules/ajv/dist/refs/data.json
3035
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/data.json
3036
3036
  var require_data = __commonJS((exports, module) => {
3037
3037
  module.exports = {
3038
3038
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
@@ -3822,7 +3822,7 @@ var require_fast_uri = __commonJS((exports, module) => {
3822
3822
  module.exports.fastUri = fastUri;
3823
3823
  });
3824
3824
 
3825
- // node_modules/ajv/dist/runtime/uri.js
3825
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/uri.js
3826
3826
  var require_uri = __commonJS((exports) => {
3827
3827
  Object.defineProperty(exports, "__esModule", { value: true });
3828
3828
  var uri = require_fast_uri();
@@ -3830,7 +3830,7 @@ var require_uri = __commonJS((exports) => {
3830
3830
  exports.default = uri;
3831
3831
  });
3832
3832
 
3833
- // node_modules/ajv/dist/core.js
3833
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/core.js
3834
3834
  var require_core = __commonJS((exports) => {
3835
3835
  Object.defineProperty(exports, "__esModule", { value: true });
3836
3836
  exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = undefined;
@@ -3941,7 +3941,7 @@ var require_core = __commonJS((exports) => {
3941
3941
  constructor(opts = {}) {
3942
3942
  this.schemas = {};
3943
3943
  this.refs = {};
3944
- this.formats = {};
3944
+ this.formats = Object.create(null);
3945
3945
  this._compilations = new Set;
3946
3946
  this._loading = {};
3947
3947
  this._cache = new Map;
@@ -4423,7 +4423,7 @@ var require_core = __commonJS((exports) => {
4423
4423
  }
4424
4424
  });
4425
4425
 
4426
- // node_modules/ajv/dist/vocabularies/core/id.js
4426
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/id.js
4427
4427
  var require_id = __commonJS((exports) => {
4428
4428
  Object.defineProperty(exports, "__esModule", { value: true });
4429
4429
  var def = {
@@ -4435,7 +4435,7 @@ var require_id = __commonJS((exports) => {
4435
4435
  exports.default = def;
4436
4436
  });
4437
4437
 
4438
- // node_modules/ajv/dist/vocabularies/core/ref.js
4438
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/ref.js
4439
4439
  var require_ref = __commonJS((exports) => {
4440
4440
  Object.defineProperty(exports, "__esModule", { value: true });
4441
4441
  exports.callRef = exports.getValidate = undefined;
@@ -4554,7 +4554,7 @@ var require_ref = __commonJS((exports) => {
4554
4554
  exports.default = def;
4555
4555
  });
4556
4556
 
4557
- // node_modules/ajv/dist/vocabularies/core/index.js
4557
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/index.js
4558
4558
  var require_core2 = __commonJS((exports) => {
4559
4559
  Object.defineProperty(exports, "__esModule", { value: true });
4560
4560
  var id_1 = require_id();
@@ -4572,7 +4572,7 @@ var require_core2 = __commonJS((exports) => {
4572
4572
  exports.default = core2;
4573
4573
  });
4574
4574
 
4575
- // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4575
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js
4576
4576
  var require_limitNumber = __commonJS((exports) => {
4577
4577
  Object.defineProperty(exports, "__esModule", { value: true });
4578
4578
  var codegen_1 = require_codegen();
@@ -4601,7 +4601,7 @@ var require_limitNumber = __commonJS((exports) => {
4601
4601
  exports.default = def;
4602
4602
  });
4603
4603
 
4604
- // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4604
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js
4605
4605
  var require_multipleOf = __commonJS((exports) => {
4606
4606
  Object.defineProperty(exports, "__esModule", { value: true });
4607
4607
  var codegen_1 = require_codegen();
@@ -4626,7 +4626,7 @@ var require_multipleOf = __commonJS((exports) => {
4626
4626
  exports.default = def;
4627
4627
  });
4628
4628
 
4629
- // node_modules/ajv/dist/runtime/ucs2length.js
4629
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/ucs2length.js
4630
4630
  var require_ucs2length = __commonJS((exports) => {
4631
4631
  Object.defineProperty(exports, "__esModule", { value: true });
4632
4632
  function ucs2length(str) {
@@ -4649,7 +4649,7 @@ var require_ucs2length = __commonJS((exports) => {
4649
4649
  ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
4650
4650
  });
4651
4651
 
4652
- // node_modules/ajv/dist/vocabularies/validation/limitLength.js
4652
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js
4653
4653
  var require_limitLength = __commonJS((exports) => {
4654
4654
  Object.defineProperty(exports, "__esModule", { value: true });
4655
4655
  var codegen_1 = require_codegen();
@@ -4678,7 +4678,7 @@ var require_limitLength = __commonJS((exports) => {
4678
4678
  exports.default = def;
4679
4679
  });
4680
4680
 
4681
- // node_modules/ajv/dist/vocabularies/validation/pattern.js
4681
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/pattern.js
4682
4682
  var require_pattern = __commonJS((exports) => {
4683
4683
  Object.defineProperty(exports, "__esModule", { value: true });
4684
4684
  var code_1 = require_code2();
@@ -4712,7 +4712,7 @@ var require_pattern = __commonJS((exports) => {
4712
4712
  exports.default = def;
4713
4713
  });
4714
4714
 
4715
- // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4715
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js
4716
4716
  var require_limitProperties = __commonJS((exports) => {
4717
4717
  Object.defineProperty(exports, "__esModule", { value: true });
4718
4718
  var codegen_1 = require_codegen();
@@ -4738,7 +4738,7 @@ var require_limitProperties = __commonJS((exports) => {
4738
4738
  exports.default = def;
4739
4739
  });
4740
4740
 
4741
- // node_modules/ajv/dist/vocabularies/validation/required.js
4741
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/required.js
4742
4742
  var require_required = __commonJS((exports) => {
4743
4743
  Object.defineProperty(exports, "__esModule", { value: true });
4744
4744
  var code_1 = require_code2();
@@ -4817,7 +4817,7 @@ var require_required = __commonJS((exports) => {
4817
4817
  exports.default = def;
4818
4818
  });
4819
4819
 
4820
- // node_modules/ajv/dist/vocabularies/validation/limitItems.js
4820
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js
4821
4821
  var require_limitItems = __commonJS((exports) => {
4822
4822
  Object.defineProperty(exports, "__esModule", { value: true });
4823
4823
  var codegen_1 = require_codegen();
@@ -4843,7 +4843,7 @@ var require_limitItems = __commonJS((exports) => {
4843
4843
  exports.default = def;
4844
4844
  });
4845
4845
 
4846
- // node_modules/ajv/dist/runtime/equal.js
4846
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/equal.js
4847
4847
  var require_equal = __commonJS((exports) => {
4848
4848
  Object.defineProperty(exports, "__esModule", { value: true });
4849
4849
  var equal = require_fast_deep_equal();
@@ -4851,7 +4851,7 @@ var require_equal = __commonJS((exports) => {
4851
4851
  exports.default = equal;
4852
4852
  });
4853
4853
 
4854
- // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4854
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
4855
4855
  var require_uniqueItems = __commonJS((exports) => {
4856
4856
  Object.defineProperty(exports, "__esModule", { value: true });
4857
4857
  var dataType_1 = require_dataType();
@@ -4915,7 +4915,7 @@ var require_uniqueItems = __commonJS((exports) => {
4915
4915
  exports.default = def;
4916
4916
  });
4917
4917
 
4918
- // node_modules/ajv/dist/vocabularies/validation/const.js
4918
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/const.js
4919
4919
  var require_const = __commonJS((exports) => {
4920
4920
  Object.defineProperty(exports, "__esModule", { value: true });
4921
4921
  var codegen_1 = require_codegen();
@@ -4941,7 +4941,7 @@ var require_const = __commonJS((exports) => {
4941
4941
  exports.default = def;
4942
4942
  });
4943
4943
 
4944
- // node_modules/ajv/dist/vocabularies/validation/enum.js
4944
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/enum.js
4945
4945
  var require_enum = __commonJS((exports) => {
4946
4946
  Object.defineProperty(exports, "__esModule", { value: true });
4947
4947
  var codegen_1 = require_codegen();
@@ -4987,7 +4987,7 @@ var require_enum = __commonJS((exports) => {
4987
4987
  exports.default = def;
4988
4988
  });
4989
4989
 
4990
- // node_modules/ajv/dist/vocabularies/validation/index.js
4990
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/index.js
4991
4991
  var require_validation = __commonJS((exports) => {
4992
4992
  Object.defineProperty(exports, "__esModule", { value: true });
4993
4993
  var limitNumber_1 = require_limitNumber();
@@ -5017,7 +5017,7 @@ var require_validation = __commonJS((exports) => {
5017
5017
  exports.default = validation;
5018
5018
  });
5019
5019
 
5020
- // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5020
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
5021
5021
  var require_additionalItems = __commonJS((exports) => {
5022
5022
  Object.defineProperty(exports, "__esModule", { value: true });
5023
5023
  exports.validateAdditionalItems = undefined;
@@ -5067,7 +5067,7 @@ var require_additionalItems = __commonJS((exports) => {
5067
5067
  exports.default = def;
5068
5068
  });
5069
5069
 
5070
- // node_modules/ajv/dist/vocabularies/applicator/items.js
5070
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items.js
5071
5071
  var require_items = __commonJS((exports) => {
5072
5072
  Object.defineProperty(exports, "__esModule", { value: true });
5073
5073
  exports.validateTuple = undefined;
@@ -5121,7 +5121,7 @@ var require_items = __commonJS((exports) => {
5121
5121
  exports.default = def;
5122
5122
  });
5123
5123
 
5124
- // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5124
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
5125
5125
  var require_prefixItems = __commonJS((exports) => {
5126
5126
  Object.defineProperty(exports, "__esModule", { value: true });
5127
5127
  var items_1 = require_items();
@@ -5135,7 +5135,7 @@ var require_prefixItems = __commonJS((exports) => {
5135
5135
  exports.default = def;
5136
5136
  });
5137
5137
 
5138
- // node_modules/ajv/dist/vocabularies/applicator/items2020.js
5138
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js
5139
5139
  var require_items2020 = __commonJS((exports) => {
5140
5140
  Object.defineProperty(exports, "__esModule", { value: true });
5141
5141
  var codegen_1 = require_codegen();
@@ -5167,7 +5167,7 @@ var require_items2020 = __commonJS((exports) => {
5167
5167
  exports.default = def;
5168
5168
  });
5169
5169
 
5170
- // node_modules/ajv/dist/vocabularies/applicator/contains.js
5170
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/contains.js
5171
5171
  var require_contains = __commonJS((exports) => {
5172
5172
  Object.defineProperty(exports, "__esModule", { value: true });
5173
5173
  var codegen_1 = require_codegen();
@@ -5258,7 +5258,7 @@ var require_contains = __commonJS((exports) => {
5258
5258
  exports.default = def;
5259
5259
  });
5260
5260
 
5261
- // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5261
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js
5262
5262
  var require_dependencies = __commonJS((exports) => {
5263
5263
  Object.defineProperty(exports, "__esModule", { value: true });
5264
5264
  exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = undefined;
@@ -5343,7 +5343,7 @@ var require_dependencies = __commonJS((exports) => {
5343
5343
  exports.default = def;
5344
5344
  });
5345
5345
 
5346
- // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5346
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
5347
5347
  var require_propertyNames = __commonJS((exports) => {
5348
5348
  Object.defineProperty(exports, "__esModule", { value: true });
5349
5349
  var codegen_1 = require_codegen();
@@ -5383,7 +5383,7 @@ var require_propertyNames = __commonJS((exports) => {
5383
5383
  exports.default = def;
5384
5384
  });
5385
5385
 
5386
- // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5386
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
5387
5387
  var require_additionalProperties = __commonJS((exports) => {
5388
5388
  Object.defineProperty(exports, "__esModule", { value: true });
5389
5389
  var code_1 = require_code2();
@@ -5486,7 +5486,7 @@ var require_additionalProperties = __commonJS((exports) => {
5486
5486
  exports.default = def;
5487
5487
  });
5488
5488
 
5489
- // node_modules/ajv/dist/vocabularies/applicator/properties.js
5489
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/properties.js
5490
5490
  var require_properties = __commonJS((exports) => {
5491
5491
  Object.defineProperty(exports, "__esModule", { value: true });
5492
5492
  var validate_1 = require_validate();
@@ -5541,7 +5541,7 @@ var require_properties = __commonJS((exports) => {
5541
5541
  exports.default = def;
5542
5542
  });
5543
5543
 
5544
- // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5544
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
5545
5545
  var require_patternProperties = __commonJS((exports) => {
5546
5546
  Object.defineProperty(exports, "__esModule", { value: true });
5547
5547
  var code_1 = require_code2();
@@ -5612,7 +5612,7 @@ var require_patternProperties = __commonJS((exports) => {
5612
5612
  exports.default = def;
5613
5613
  });
5614
5614
 
5615
- // node_modules/ajv/dist/vocabularies/applicator/not.js
5615
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/not.js
5616
5616
  var require_not = __commonJS((exports) => {
5617
5617
  Object.defineProperty(exports, "__esModule", { value: true });
5618
5618
  var util_1 = require_util();
@@ -5640,7 +5640,7 @@ var require_not = __commonJS((exports) => {
5640
5640
  exports.default = def;
5641
5641
  });
5642
5642
 
5643
- // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5643
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js
5644
5644
  var require_anyOf = __commonJS((exports) => {
5645
5645
  Object.defineProperty(exports, "__esModule", { value: true });
5646
5646
  var code_1 = require_code2();
@@ -5654,7 +5654,7 @@ var require_anyOf = __commonJS((exports) => {
5654
5654
  exports.default = def;
5655
5655
  });
5656
5656
 
5657
- // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5657
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js
5658
5658
  var require_oneOf = __commonJS((exports) => {
5659
5659
  Object.defineProperty(exports, "__esModule", { value: true });
5660
5660
  var codegen_1 = require_codegen();
@@ -5709,7 +5709,7 @@ var require_oneOf = __commonJS((exports) => {
5709
5709
  exports.default = def;
5710
5710
  });
5711
5711
 
5712
- // node_modules/ajv/dist/vocabularies/applicator/allOf.js
5712
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js
5713
5713
  var require_allOf = __commonJS((exports) => {
5714
5714
  Object.defineProperty(exports, "__esModule", { value: true });
5715
5715
  var util_1 = require_util();
@@ -5733,7 +5733,7 @@ var require_allOf = __commonJS((exports) => {
5733
5733
  exports.default = def;
5734
5734
  });
5735
5735
 
5736
- // node_modules/ajv/dist/vocabularies/applicator/if.js
5736
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/if.js
5737
5737
  var require_if = __commonJS((exports) => {
5738
5738
  Object.defineProperty(exports, "__esModule", { value: true });
5739
5739
  var codegen_1 = require_codegen();
@@ -5799,7 +5799,7 @@ var require_if = __commonJS((exports) => {
5799
5799
  exports.default = def;
5800
5800
  });
5801
5801
 
5802
- // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
5802
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js
5803
5803
  var require_thenElse = __commonJS((exports) => {
5804
5804
  Object.defineProperty(exports, "__esModule", { value: true });
5805
5805
  var util_1 = require_util();
@@ -5814,7 +5814,7 @@ var require_thenElse = __commonJS((exports) => {
5814
5814
  exports.default = def;
5815
5815
  });
5816
5816
 
5817
- // node_modules/ajv/dist/vocabularies/applicator/index.js
5817
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/index.js
5818
5818
  var require_applicator = __commonJS((exports) => {
5819
5819
  Object.defineProperty(exports, "__esModule", { value: true });
5820
5820
  var additionalItems_1 = require_additionalItems();
@@ -5857,7 +5857,7 @@ var require_applicator = __commonJS((exports) => {
5857
5857
  exports.default = getApplicator;
5858
5858
  });
5859
5859
 
5860
- // node_modules/ajv/dist/vocabularies/format/format.js
5860
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/format.js
5861
5861
  var require_format = __commonJS((exports) => {
5862
5862
  Object.defineProperty(exports, "__esModule", { value: true });
5863
5863
  var codegen_1 = require_codegen();
@@ -5944,7 +5944,7 @@ var require_format = __commonJS((exports) => {
5944
5944
  exports.default = def;
5945
5945
  });
5946
5946
 
5947
- // node_modules/ajv/dist/vocabularies/format/index.js
5947
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/index.js
5948
5948
  var require_format2 = __commonJS((exports) => {
5949
5949
  Object.defineProperty(exports, "__esModule", { value: true });
5950
5950
  var format_1 = require_format();
@@ -5952,7 +5952,7 @@ var require_format2 = __commonJS((exports) => {
5952
5952
  exports.default = format;
5953
5953
  });
5954
5954
 
5955
- // node_modules/ajv/dist/vocabularies/metadata.js
5955
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/metadata.js
5956
5956
  var require_metadata = __commonJS((exports) => {
5957
5957
  Object.defineProperty(exports, "__esModule", { value: true });
5958
5958
  exports.contentVocabulary = exports.metadataVocabulary = undefined;
@@ -5972,7 +5972,7 @@ var require_metadata = __commonJS((exports) => {
5972
5972
  ];
5973
5973
  });
5974
5974
 
5975
- // node_modules/ajv/dist/vocabularies/draft7.js
5975
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/draft7.js
5976
5976
  var require_draft7 = __commonJS((exports) => {
5977
5977
  Object.defineProperty(exports, "__esModule", { value: true });
5978
5978
  var core_1 = require_core2();
@@ -5991,7 +5991,7 @@ var require_draft7 = __commonJS((exports) => {
5991
5991
  exports.default = draft7Vocabularies;
5992
5992
  });
5993
5993
 
5994
- // node_modules/ajv/dist/vocabularies/discriminator/types.js
5994
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/types.js
5995
5995
  var require_types = __commonJS((exports) => {
5996
5996
  Object.defineProperty(exports, "__esModule", { value: true });
5997
5997
  exports.DiscrError = undefined;
@@ -6002,7 +6002,7 @@ var require_types = __commonJS((exports) => {
6002
6002
  })(DiscrError || (exports.DiscrError = DiscrError = {}));
6003
6003
  });
6004
6004
 
6005
- // node_modules/ajv/dist/vocabularies/discriminator/index.js
6005
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/index.js
6006
6006
  var require_discriminator = __commonJS((exports) => {
6007
6007
  Object.defineProperty(exports, "__esModule", { value: true });
6008
6008
  var codegen_1 = require_codegen();
@@ -6104,7 +6104,7 @@ var require_discriminator = __commonJS((exports) => {
6104
6104
  exports.default = def;
6105
6105
  });
6106
6106
 
6107
- // node_modules/ajv/dist/refs/json-schema-draft-07.json
6107
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-draft-07.json
6108
6108
  var require_json_schema_draft_07 = __commonJS((exports, module) => {
6109
6109
  module.exports = {
6110
6110
  $schema: "http://json-schema.org/draft-07/schema#",
@@ -6259,7 +6259,7 @@ var require_json_schema_draft_07 = __commonJS((exports, module) => {
6259
6259
  };
6260
6260
  });
6261
6261
 
6262
- // node_modules/ajv/dist/ajv.js
6262
+ // node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/ajv.js
6263
6263
  var require_ajv = __commonJS((exports, module) => {
6264
6264
  Object.defineProperty(exports, "__esModule", { value: true });
6265
6265
  exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = undefined;
@@ -6327,7 +6327,7 @@ var require_ajv = __commonJS((exports, module) => {
6327
6327
  } });
6328
6328
  });
6329
6329
 
6330
- // node_modules/ajv-formats/dist/formats.js
6330
+ // node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.20.0/node_modules/ajv-formats/dist/formats.js
6331
6331
  var require_formats = __commonJS((exports) => {
6332
6332
  Object.defineProperty(exports, "__esModule", { value: true });
6333
6333
  exports.formatNames = exports.fastFormats = exports.fullFormats = undefined;
@@ -6504,7 +6504,7 @@ var require_formats = __commonJS((exports) => {
6504
6504
  }
6505
6505
  });
6506
6506
 
6507
- // node_modules/ajv-formats/dist/limit.js
6507
+ // node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.20.0/node_modules/ajv-formats/dist/limit.js
6508
6508
  var require_limit = __commonJS((exports) => {
6509
6509
  Object.defineProperty(exports, "__esModule", { value: true });
6510
6510
  exports.formatLimitDefinition = undefined;
@@ -6573,7 +6573,7 @@ var require_limit = __commonJS((exports) => {
6573
6573
  exports.default = formatLimitPlugin;
6574
6574
  });
6575
6575
 
6576
- // node_modules/ajv-formats/dist/index.js
6576
+ // node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.20.0/node_modules/ajv-formats/dist/index.js
6577
6577
  var require_dist = __commonJS((exports, module) => {
6578
6578
  Object.defineProperty(exports, "__esModule", { value: true });
6579
6579
  var formats_1 = require_formats();
@@ -6652,43 +6652,169 @@ class SqliteAdapter {
6652
6652
  }
6653
6653
  var init_sqlite_adapter = () => {};
6654
6654
 
6655
- // src/db/paths.ts
6656
- import { chmodSync, copyFileSync, existsSync as existsSync2, mkdirSync, readdirSync, statSync } from "fs";
6655
+ // node_modules/.pnpm/@hasna+paths@0.2.2/node_modules/@hasna/paths/dist/index.js
6656
+ import { homedir as homedir2 } from "os";
6657
6657
  import { join as join2 } from "path";
6658
+ function assertApp(app) {
6659
+ if (typeof app !== "string" || app.length === 0) {
6660
+ throw new TypeError("paths: app must be a non-empty string");
6661
+ }
6662
+ if (!APP_SLUG_RE.test(app)) {
6663
+ throw new TypeError(`paths: invalid app slug "${app}" \u2014 expected lowercase kebab-case ([a-z0-9]+(-[a-z0-9]+)*)`);
6664
+ }
6665
+ }
6666
+ function assertKind(kind) {
6667
+ if (!PATH_KINDS.includes(kind)) {
6668
+ throw new TypeError(`paths: invalid path kind "${kind}" \u2014 expected one of ${PATH_KINDS.join(", ")}`);
6669
+ }
6670
+ }
6671
+ function envOf(options) {
6672
+ return options.env ?? process.env;
6673
+ }
6674
+ function envValue(options, kind) {
6675
+ const value = envOf(options)[KIND_ENV[kind]];
6676
+ return typeof value === "string" && value.length > 0 ? value : undefined;
6677
+ }
6678
+ function isMacOS(platform) {
6679
+ return platform === "darwin";
6680
+ }
6681
+ function baseDir(kind, options) {
6682
+ assertKind(kind);
6683
+ const override = envValue(options, kind);
6684
+ if (override)
6685
+ return override;
6686
+ const home = options.home ?? homedir2();
6687
+ const platform = options.platform ?? process.platform;
6688
+ if (isMacOS(platform)) {
6689
+ switch (kind) {
6690
+ case "config":
6691
+ case "data":
6692
+ return join2(home, "Library", "Application Support", "Hasna");
6693
+ case "cache":
6694
+ return join2(home, "Library", "Caches", "Hasna");
6695
+ case "state":
6696
+ return join2(home, "Library", "Logs", "Hasna");
6697
+ }
6698
+ }
6699
+ switch (kind) {
6700
+ case "config":
6701
+ return join2(home, ".config", "hasna");
6702
+ case "data":
6703
+ return join2(home, ".local", "share", "hasna");
6704
+ case "state":
6705
+ return join2(home, ".local", "state", "hasna");
6706
+ case "cache":
6707
+ return join2(home, ".cache", "hasna");
6708
+ }
6709
+ }
6710
+ function resolvePath(kind, options) {
6711
+ assertKind(kind);
6712
+ assertApp(options.app);
6713
+ const appSegment = options.internal === true ? join2("internal", options.app) : options.app;
6714
+ return join2(baseDir(kind, options), appSegment);
6715
+ }
6716
+ function dataDir(options) {
6717
+ return resolvePath("data", options);
6718
+ }
6719
+ function stateDir(options) {
6720
+ return resolvePath("state", options);
6721
+ }
6722
+ var PATH_KINDS, KIND_ENV, APP_SLUG_RE;
6723
+ var init_dist = __esm(() => {
6724
+ PATH_KINDS = ["config", "data", "state", "cache"];
6725
+ KIND_ENV = {
6726
+ config: "HASNA_CONFIG_HOME",
6727
+ data: "HASNA_DATA_HOME",
6728
+ state: "HASNA_STATE_HOME",
6729
+ cache: "HASNA_CACHE_HOME"
6730
+ };
6731
+ APP_SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
6732
+ });
6733
+
6734
+ // src/db/paths.ts
6735
+ import { chmodSync, copyFileSync, cpSync, existsSync as existsSync2, mkdirSync, readdirSync, statSync } from "fs";
6736
+ import { homedir as homedir3 } from "os";
6737
+ import { join as join3 } from "path";
6658
6738
  function ensurePrivateDir(dir) {
6659
6739
  if (!existsSync2(dir))
6660
6740
  mkdirSync(dir, { recursive: true, mode: 448 });
6661
6741
  chmodSync(dir, 448);
6662
6742
  }
6743
+ function home() {
6744
+ return process.env["HOME"] || process.env["USERPROFILE"] || homedir3();
6745
+ }
6746
+ function hasContent(dir) {
6747
+ if (!existsSync2(dir))
6748
+ return false;
6749
+ try {
6750
+ return readdirSync(dir).length > 0;
6751
+ } catch {
6752
+ return false;
6753
+ }
6754
+ }
6755
+ function adoptLegacy(source, target) {
6756
+ if (!hasContent(source) || hasContent(target))
6757
+ return;
6758
+ ensurePrivateDir(target);
6759
+ for (const entry of readdirSync(source)) {
6760
+ if (entry === ".vault-session")
6761
+ continue;
6762
+ if (entry === "{backups,images,documents}")
6763
+ continue;
6764
+ const oldPath = join3(source, entry);
6765
+ const newPath = join3(target, entry);
6766
+ const st = statSync(oldPath);
6767
+ if (st.isDirectory()) {
6768
+ cpSync(oldPath, newPath, { recursive: true });
6769
+ chmodSync(newPath, 448);
6770
+ } else if (st.isFile()) {
6771
+ copyFileSync(oldPath, newPath);
6772
+ chmodSync(newPath, 384);
6773
+ }
6774
+ }
6775
+ }
6663
6776
  function getDataDir() {
6664
- const home = process.env["HOME"] || process.env["USERPROFILE"] || "~";
6665
- const hasnaDir = join2(home, ".hasna");
6666
- const newDir = join2(home, ".hasna", "contacts");
6667
- const oldDir = join2(home, ".contacts");
6668
- if (existsSync2(oldDir) && !existsSync2(newDir)) {
6669
- ensurePrivateDir(hasnaDir);
6670
- ensurePrivateDir(newDir);
6671
- for (const file of readdirSync(oldDir)) {
6672
- const oldPath = join2(oldDir, file);
6673
- if (statSync(oldPath).isFile()) {
6674
- const newPath = join2(newDir, file);
6675
- copyFileSync(oldPath, newPath);
6676
- chmodSync(newPath, 384);
6677
- }
6678
- }
6679
- }
6680
- ensurePrivateDir(hasnaDir);
6681
- ensurePrivateDir(newDir);
6682
- return newDir;
6777
+ const base = home();
6778
+ const target = dataDir({ app: "contacts", home: base });
6779
+ if (!checkedDataTargets.has(target)) {
6780
+ adoptLegacy(join3(base, ".hasna", "contacts"), target);
6781
+ adoptLegacy(join3(base, ".contacts"), target);
6782
+ checkedDataTargets.add(target);
6783
+ }
6784
+ ensurePrivateDir(target);
6785
+ return target;
6786
+ }
6787
+ function getStateDir() {
6788
+ const base = home();
6789
+ const target = stateDir({ app: "contacts", home: base });
6790
+ if (!checkedStateTargets.has(target)) {
6791
+ if (!hasContent(target)) {
6792
+ const legacySession = join3(base, ".hasna", "contacts", ".vault-session");
6793
+ if (existsSync2(legacySession)) {
6794
+ ensurePrivateDir(target);
6795
+ const targetSession = join3(target, ".vault-session");
6796
+ copyFileSync(legacySession, targetSession);
6797
+ chmodSync(targetSession, 384);
6798
+ }
6799
+ }
6800
+ checkedStateTargets.add(target);
6801
+ }
6802
+ ensurePrivateDir(target);
6803
+ return target;
6683
6804
  }
6684
6805
  function getDbPath() {
6685
6806
  if (process.env["HASNA_CONTACTS_DB_PATH"])
6686
6807
  return process.env["HASNA_CONTACTS_DB_PATH"];
6687
6808
  if (process.env["CONTACTS_DB_PATH"])
6688
6809
  return process.env["CONTACTS_DB_PATH"];
6689
- return join2(getDataDir(), "contacts.db");
6810
+ return join3(getDataDir(), "contacts.db");
6690
6811
  }
6691
- var init_paths = () => {};
6812
+ var checkedDataTargets, checkedStateTargets;
6813
+ var init_paths = __esm(() => {
6814
+ init_dist();
6815
+ checkedDataTargets = new Set;
6816
+ checkedStateTargets = new Set;
6817
+ });
6692
6818
 
6693
6819
  // src/db/database.ts
6694
6820
  var exports_database = {};
@@ -6696,6 +6822,7 @@ __export(exports_database, {
6696
6822
  uuid: () => uuid2,
6697
6823
  resetDatabase: () => resetDatabase,
6698
6824
  now: () => now,
6825
+ getStateDir: () => getStateDir,
6699
6826
  getDbPath: () => getDbPath,
6700
6827
  getDatabase: () => getDatabase,
6701
6828
  getDataDir: () => getDataDir
@@ -8455,11 +8582,117 @@ var init_events = __esm(() => {
8455
8582
  init_database();
8456
8583
  });
8457
8584
 
8585
+ // node_modules/.pnpm/content-type@1.0.5/node_modules/content-type/index.js
8586
+ var require_content_type = __commonJS((exports) => {
8587
+ /*!
8588
+ * content-type
8589
+ * Copyright(c) 2015 Douglas Christopher Wilson
8590
+ * MIT Licensed
8591
+ */
8592
+ var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
8593
+ var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
8594
+ var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
8595
+ var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
8596
+ var QUOTE_REGEXP = /([\\"])/g;
8597
+ var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
8598
+ exports.format = format;
8599
+ exports.parse = parse6;
8600
+ function format(obj) {
8601
+ if (!obj || typeof obj !== "object") {
8602
+ throw new TypeError("argument obj is required");
8603
+ }
8604
+ var parameters = obj.parameters;
8605
+ var type = obj.type;
8606
+ if (!type || !TYPE_REGEXP.test(type)) {
8607
+ throw new TypeError("invalid type");
8608
+ }
8609
+ var string4 = type;
8610
+ if (parameters && typeof parameters === "object") {
8611
+ var param;
8612
+ var params = Object.keys(parameters).sort();
8613
+ for (var i = 0;i < params.length; i++) {
8614
+ param = params[i];
8615
+ if (!TOKEN_REGEXP.test(param)) {
8616
+ throw new TypeError("invalid parameter name");
8617
+ }
8618
+ string4 += "; " + param + "=" + qstring(parameters[param]);
8619
+ }
8620
+ }
8621
+ return string4;
8622
+ }
8623
+ function parse6(string4) {
8624
+ if (!string4) {
8625
+ throw new TypeError("argument string is required");
8626
+ }
8627
+ var header = typeof string4 === "object" ? getcontenttype(string4) : string4;
8628
+ if (typeof header !== "string") {
8629
+ throw new TypeError("argument string is required to be a string");
8630
+ }
8631
+ var index = header.indexOf(";");
8632
+ var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
8633
+ if (!TYPE_REGEXP.test(type)) {
8634
+ throw new TypeError("invalid media type");
8635
+ }
8636
+ var obj = new ContentType(type.toLowerCase());
8637
+ if (index !== -1) {
8638
+ var key;
8639
+ var match;
8640
+ var value;
8641
+ PARAM_REGEXP.lastIndex = index;
8642
+ while (match = PARAM_REGEXP.exec(header)) {
8643
+ if (match.index !== index) {
8644
+ throw new TypeError("invalid parameter format");
8645
+ }
8646
+ index += match[0].length;
8647
+ key = match[1].toLowerCase();
8648
+ value = match[2];
8649
+ if (value.charCodeAt(0) === 34) {
8650
+ value = value.slice(1, -1);
8651
+ if (value.indexOf("\\") !== -1) {
8652
+ value = value.replace(QESC_REGEXP, "$1");
8653
+ }
8654
+ }
8655
+ obj.parameters[key] = value;
8656
+ }
8657
+ if (index !== header.length) {
8658
+ throw new TypeError("invalid parameter format");
8659
+ }
8660
+ }
8661
+ return obj;
8662
+ }
8663
+ function getcontenttype(obj) {
8664
+ var header;
8665
+ if (typeof obj.getHeader === "function") {
8666
+ header = obj.getHeader("content-type");
8667
+ } else if (typeof obj.headers === "object") {
8668
+ header = obj.headers && obj.headers["content-type"];
8669
+ }
8670
+ if (typeof header !== "string") {
8671
+ throw new TypeError("content-type header is missing from object");
8672
+ }
8673
+ return header;
8674
+ }
8675
+ function qstring(val) {
8676
+ var str = String(val);
8677
+ if (TOKEN_REGEXP.test(str)) {
8678
+ return str;
8679
+ }
8680
+ if (str.length > 0 && !TEXT_REGEXP.test(str)) {
8681
+ throw new TypeError("invalid parameter value");
8682
+ }
8683
+ return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
8684
+ }
8685
+ function ContentType(type) {
8686
+ this.parameters = Object.create(null);
8687
+ this.type = type;
8688
+ }
8689
+ });
8690
+
8458
8691
  // src/mcp/index.ts
8459
8692
  import { readFileSync as readFileSync5 } from "fs";
8460
- import { join as join5 } from "path";
8693
+ import { join as join7 } from "path";
8461
8694
 
8462
- // node_modules/zod/v3/external.js
8695
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js
8463
8696
  var exports_external = {};
8464
8697
  __export(exports_external, {
8465
8698
  void: () => voidType,
@@ -8571,7 +8804,7 @@ __export(exports_external, {
8571
8804
  BRAND: () => BRAND
8572
8805
  });
8573
8806
 
8574
- // node_modules/zod/v3/helpers/util.js
8807
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js
8575
8808
  var util;
8576
8809
  (function(util2) {
8577
8810
  util2.assertEqual = (_) => {};
@@ -8702,7 +8935,7 @@ var getParsedType = (data) => {
8702
8935
  }
8703
8936
  };
8704
8937
 
8705
- // node_modules/zod/v3/ZodError.js
8938
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js
8706
8939
  var ZodIssueCode = util.arrayToEnum([
8707
8940
  "invalid_type",
8708
8941
  "invalid_literal",
@@ -8821,7 +9054,7 @@ ZodError.create = (issues) => {
8821
9054
  return error;
8822
9055
  };
8823
9056
 
8824
- // node_modules/zod/v3/locales/en.js
9057
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js
8825
9058
  var errorMap = (issue, _ctx) => {
8826
9059
  let message;
8827
9060
  switch (issue.code) {
@@ -8924,7 +9157,7 @@ var errorMap = (issue, _ctx) => {
8924
9157
  };
8925
9158
  var en_default = errorMap;
8926
9159
 
8927
- // node_modules/zod/v3/errors.js
9160
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js
8928
9161
  var overrideErrorMap = en_default;
8929
9162
  function setErrorMap(map) {
8930
9163
  overrideErrorMap = map;
@@ -8932,7 +9165,7 @@ function setErrorMap(map) {
8932
9165
  function getErrorMap() {
8933
9166
  return overrideErrorMap;
8934
9167
  }
8935
- // node_modules/zod/v3/helpers/parseUtil.js
9168
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
8936
9169
  var makeIssue = (params) => {
8937
9170
  const { data, path, errorMaps, issueData } = params;
8938
9171
  const fullPath = [...path, ...issueData.path || []];
@@ -9038,14 +9271,14 @@ var isAborted = (x) => x.status === "aborted";
9038
9271
  var isDirty = (x) => x.status === "dirty";
9039
9272
  var isValid = (x) => x.status === "valid";
9040
9273
  var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
9041
- // node_modules/zod/v3/helpers/errorUtil.js
9274
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js
9042
9275
  var errorUtil;
9043
9276
  (function(errorUtil2) {
9044
9277
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
9045
9278
  errorUtil2.toString = (message) => typeof message === "string" ? message : message?.message;
9046
9279
  })(errorUtil || (errorUtil = {}));
9047
9280
 
9048
- // node_modules/zod/v3/types.js
9281
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js
9049
9282
  class ParseInputLazyPath {
9050
9283
  constructor(parent, value, path, key) {
9051
9284
  this._cachedPath = [];
@@ -12432,7 +12665,7 @@ var coerce = {
12432
12665
  date: (arg) => ZodDate.create({ ...arg, coerce: true })
12433
12666
  };
12434
12667
  var NEVER = INVALID;
12435
- // node_modules/zod/v4/core/core.js
12668
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/core.js
12436
12669
  var NEVER2 = Object.freeze({
12437
12670
  status: "aborted"
12438
12671
  });
@@ -12492,7 +12725,7 @@ function config(newConfig) {
12492
12725
  Object.assign(globalConfig, newConfig);
12493
12726
  return globalConfig;
12494
12727
  }
12495
- // node_modules/zod/v4/core/util.js
12728
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/util.js
12496
12729
  var exports_util = {};
12497
12730
  __export(exports_util, {
12498
12731
  unwrapMessage: () => unwrapMessage,
@@ -13006,7 +13239,7 @@ class Class {
13006
13239
  constructor(..._args) {}
13007
13240
  }
13008
13241
 
13009
- // node_modules/zod/v4/core/errors.js
13242
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/errors.js
13010
13243
  var initializer = (inst, def) => {
13011
13244
  inst.name = "$ZodError";
13012
13245
  Object.defineProperty(inst, "_zod", {
@@ -13080,7 +13313,7 @@ function formatError(error, _mapper) {
13080
13313
  return fieldErrors;
13081
13314
  }
13082
13315
 
13083
- // node_modules/zod/v4/core/parse.js
13316
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/parse.js
13084
13317
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
13085
13318
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
13086
13319
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -13131,7 +13364,7 @@ var _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
13131
13364
  } : { success: true, data: result.value };
13132
13365
  };
13133
13366
  var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
13134
- // node_modules/zod/v4/core/regexes.js
13367
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/regexes.js
13135
13368
  var cuid = /^[cC][^\s-]{8,}$/;
13136
13369
  var cuid2 = /^[0-9a-z]+$/;
13137
13370
  var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
@@ -13189,7 +13422,7 @@ var _null = /null/i;
13189
13422
  var lowercase = /^[^A-Z]*$/;
13190
13423
  var uppercase = /^[^a-z]*$/;
13191
13424
 
13192
- // node_modules/zod/v4/core/checks.js
13425
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/checks.js
13193
13426
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
13194
13427
  var _a;
13195
13428
  inst._zod ?? (inst._zod = {});
@@ -13573,7 +13806,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
13573
13806
  };
13574
13807
  });
13575
13808
 
13576
- // node_modules/zod/v4/core/doc.js
13809
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/doc.js
13577
13810
  class Doc {
13578
13811
  constructor(args = []) {
13579
13812
  this.content = [];
@@ -13611,14 +13844,14 @@ class Doc {
13611
13844
  }
13612
13845
  }
13613
13846
 
13614
- // node_modules/zod/v4/core/versions.js
13847
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/versions.js
13615
13848
  var version = {
13616
13849
  major: 4,
13617
13850
  minor: 0,
13618
13851
  patch: 0
13619
13852
  };
13620
13853
 
13621
- // node_modules/zod/v4/core/schemas.js
13854
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/schemas.js
13622
13855
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
13623
13856
  var _a;
13624
13857
  inst ?? (inst = {});
@@ -14849,7 +15082,7 @@ function handleRefineResult(result, payload, input, inst) {
14849
15082
  payload.issues.push(issue(_iss));
14850
15083
  }
14851
15084
  }
14852
- // node_modules/zod/v4/locales/en.js
15085
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/locales/en.js
14853
15086
  var parsedType = (data) => {
14854
15087
  const t = typeof data;
14855
15088
  switch (t) {
@@ -14966,7 +15199,7 @@ function en_default2() {
14966
15199
  localeError: error()
14967
15200
  };
14968
15201
  }
14969
- // node_modules/zod/v4/core/registries.js
15202
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/registries.js
14970
15203
  var $output = Symbol("ZodOutput");
14971
15204
  var $input = Symbol("ZodInput");
14972
15205
 
@@ -15016,7 +15249,7 @@ function registry() {
15016
15249
  return new $ZodRegistry;
15017
15250
  }
15018
15251
  var globalRegistry = /* @__PURE__ */ registry();
15019
- // node_modules/zod/v4/core/api.js
15252
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/api.js
15020
15253
  function _string(Class2, params) {
15021
15254
  return new Class2({
15022
15255
  type: "string",
@@ -15451,7 +15684,7 @@ function _refine(Class2, fn, _params) {
15451
15684
  });
15452
15685
  return schema;
15453
15686
  }
15454
- // node_modules/zod/v4/core/to-json-schema.js
15687
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/core/to-json-schema.js
15455
15688
  class JSONSchemaGenerator {
15456
15689
  constructor(params) {
15457
15690
  this.counter = 0;
@@ -16203,7 +16436,7 @@ function isTransforming(_schema, _ctx) {
16203
16436
  }
16204
16437
  throw new Error(`Unknown schema type: ${def.type}`);
16205
16438
  }
16206
- // node_modules/zod/v4/mini/schemas.js
16439
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/mini/schemas.js
16207
16440
  var ZodMiniType = /* @__PURE__ */ $constructor("ZodMiniType", (inst, def) => {
16208
16441
  if (!inst._zod)
16209
16442
  throw new Error("Uninitialized schema in ZodMiniType.");
@@ -16245,7 +16478,7 @@ function object(shape, params) {
16245
16478
  };
16246
16479
  return new ZodMiniObject(def);
16247
16480
  }
16248
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
16481
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
16249
16482
  function isZ4Schema(s) {
16250
16483
  const schema = s;
16251
16484
  return !!schema._zod;
@@ -16329,17 +16562,34 @@ function normalizeObjectSchema(schema) {
16329
16562
  }
16330
16563
  return;
16331
16564
  }
16565
+ function getDotPath(path) {
16566
+ if (path.length === 0) {
16567
+ return "object root";
16568
+ }
16569
+ return path.reduce((acc, seg, index) => {
16570
+ if (index === 0) {
16571
+ return String(seg);
16572
+ }
16573
+ if (typeof seg === "number") {
16574
+ return `${acc}[${seg}]`;
16575
+ }
16576
+ return `${acc}.${seg}`;
16577
+ }, "");
16578
+ }
16332
16579
  function getParseErrorMessage(error2) {
16333
16580
  if (error2 && typeof error2 === "object") {
16581
+ if ("issues" in error2 && Array.isArray(error2.issues) && error2.issues.length > 0) {
16582
+ return error2.issues.map((i) => {
16583
+ if (!i.path?.length) {
16584
+ return i.message;
16585
+ }
16586
+ return `${i.message} at ${getDotPath(i.path)}`;
16587
+ }).join(`
16588
+ `);
16589
+ }
16334
16590
  if ("message" in error2 && typeof error2.message === "string") {
16335
16591
  return error2.message;
16336
16592
  }
16337
- if ("issues" in error2 && Array.isArray(error2.issues) && error2.issues.length > 0) {
16338
- const firstIssue = error2.issues[0];
16339
- if (firstIssue && typeof firstIssue === "object" && "message" in firstIssue) {
16340
- return String(firstIssue.message);
16341
- }
16342
- }
16343
16593
  try {
16344
16594
  return JSON.stringify(error2);
16345
16595
  } catch {
@@ -16388,7 +16638,7 @@ function getLiteralValue(schema) {
16388
16638
  return directValue;
16389
16639
  return;
16390
16640
  }
16391
- // node_modules/zod/v4/classic/iso.js
16641
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/iso.js
16392
16642
  var exports_iso2 = {};
16393
16643
  __export(exports_iso2, {
16394
16644
  time: () => time2,
@@ -16429,7 +16679,7 @@ function duration2(params) {
16429
16679
  return _isoDuration(ZodISODuration, params);
16430
16680
  }
16431
16681
 
16432
- // node_modules/zod/v4/classic/errors.js
16682
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/errors.js
16433
16683
  var initializer2 = (inst, issues) => {
16434
16684
  $ZodError.init(inst, issues);
16435
16685
  inst.name = "ZodError";
@@ -16458,13 +16708,13 @@ var ZodRealError = $constructor("ZodError", initializer2, {
16458
16708
  Parent: Error
16459
16709
  });
16460
16710
 
16461
- // node_modules/zod/v4/classic/parse.js
16711
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/parse.js
16462
16712
  var parse4 = /* @__PURE__ */ _parse(ZodRealError);
16463
16713
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
16464
16714
  var safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
16465
16715
  var safeParseAsync3 = /* @__PURE__ */ _safeParseAsync(ZodRealError);
16466
16716
 
16467
- // node_modules/zod/v4/classic/schemas.js
16717
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/schemas.js
16468
16718
  var ZodType2 = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
16469
16719
  $ZodType.init(inst, def);
16470
16720
  inst.def = def;
@@ -17069,10 +17319,10 @@ function superRefine(fn) {
17069
17319
  function preprocess(fn, schema) {
17070
17320
  return pipe(transform(fn), schema);
17071
17321
  }
17072
- // node_modules/zod/v4/classic/external.js
17322
+ // node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/external.js
17073
17323
  config(en_default2());
17074
17324
 
17075
- // node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
17325
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
17076
17326
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
17077
17327
  var DEFAULT_NEGOTIATED_PROTOCOL_VERSION = "2025-03-26";
17078
17328
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
@@ -17082,7 +17332,7 @@ var AssertObjectSchema = custom2((v) => v !== null && (typeof v === "object" ||
17082
17332
  var ProgressTokenSchema = union([string2(), number2().int()]);
17083
17333
  var CursorSchema = string2();
17084
17334
  var TaskCreationParamsSchema = looseObject({
17085
- ttl: union([number2(), _null3()]).optional(),
17335
+ ttl: number2().optional(),
17086
17336
  pollInterval: number2().optional()
17087
17337
  });
17088
17338
  var TaskMetadataSchema = object2({
@@ -17236,7 +17486,8 @@ var ClientCapabilitiesSchema = object2({
17236
17486
  roots: object2({
17237
17487
  listChanged: boolean2().optional()
17238
17488
  }).optional(),
17239
- tasks: ClientTasksCapabilitySchema.optional()
17489
+ tasks: ClientTasksCapabilitySchema.optional(),
17490
+ extensions: record(string2(), AssertObjectSchema).optional()
17240
17491
  });
17241
17492
  var InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({
17242
17493
  protocolVersion: string2(),
@@ -17262,7 +17513,8 @@ var ServerCapabilitiesSchema = object2({
17262
17513
  tools: object2({
17263
17514
  listChanged: boolean2().optional()
17264
17515
  }).optional(),
17265
- tasks: ServerTasksCapabilitySchema.optional()
17516
+ tasks: ServerTasksCapabilitySchema.optional(),
17517
+ extensions: record(string2(), AssertObjectSchema).optional()
17266
17518
  });
17267
17519
  var InitializeResultSchema = ResultSchema.extend({
17268
17520
  protocolVersion: string2(),
@@ -17377,6 +17629,7 @@ var ResourceSchema = object2({
17377
17629
  uri: string2(),
17378
17630
  description: optional(string2()),
17379
17631
  mimeType: optional(string2()),
17632
+ size: optional(number2()),
17380
17633
  annotations: AnnotationsSchema.optional(),
17381
17634
  _meta: optional(looseObject({}))
17382
17635
  });
@@ -17916,12 +18169,12 @@ class UrlElicitationRequiredError extends McpError {
17916
18169
  }
17917
18170
  }
17918
18171
 
17919
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
18172
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
17920
18173
  function isTerminal(status) {
17921
18174
  return status === "completed" || status === "failed" || status === "cancelled";
17922
18175
  }
17923
18176
 
17924
- // node_modules/zod-to-json-schema/dist/esm/Options.js
18177
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js
17925
18178
  var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
17926
18179
  var defaultOptions = {
17927
18180
  name: undefined,
@@ -17954,7 +18207,7 @@ var getDefaultOptions = (options) => typeof options === "string" ? {
17954
18207
  ...defaultOptions,
17955
18208
  ...options
17956
18209
  };
17957
- // node_modules/zod-to-json-schema/dist/esm/Refs.js
18210
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js
17958
18211
  var getRefs = (options) => {
17959
18212
  const _options = getDefaultOptions(options);
17960
18213
  const currentPath = _options.name !== undefined ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
@@ -17973,7 +18226,7 @@ var getRefs = (options) => {
17973
18226
  ]))
17974
18227
  };
17975
18228
  };
17976
- // node_modules/zod-to-json-schema/dist/esm/errorMessages.js
18229
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js
17977
18230
  function addErrorMessage(res, key, errorMessage, refs) {
17978
18231
  if (!refs?.errorMessages)
17979
18232
  return;
@@ -17988,7 +18241,7 @@ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
17988
18241
  res[key] = value;
17989
18242
  addErrorMessage(res, key, errorMessage, refs);
17990
18243
  }
17991
- // node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
18244
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
17992
18245
  var getRelativePath = (pathA, pathB) => {
17993
18246
  let i = 0;
17994
18247
  for (;i < pathA.length && i < pathB.length; i++) {
@@ -17997,7 +18250,7 @@ var getRelativePath = (pathA, pathB) => {
17997
18250
  }
17998
18251
  return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
17999
18252
  };
18000
- // node_modules/zod-to-json-schema/dist/esm/parsers/any.js
18253
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js
18001
18254
  function parseAnyDef(refs) {
18002
18255
  if (refs.target !== "openAi") {
18003
18256
  return {};
@@ -18013,7 +18266,7 @@ function parseAnyDef(refs) {
18013
18266
  };
18014
18267
  }
18015
18268
 
18016
- // node_modules/zod-to-json-schema/dist/esm/parsers/array.js
18269
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js
18017
18270
  function parseArrayDef(def, refs) {
18018
18271
  const res = {
18019
18272
  type: "array"
@@ -18037,7 +18290,7 @@ function parseArrayDef(def, refs) {
18037
18290
  return res;
18038
18291
  }
18039
18292
 
18040
- // node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
18293
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
18041
18294
  function parseBigintDef(def, refs) {
18042
18295
  const res = {
18043
18296
  type: "integer",
@@ -18083,24 +18336,24 @@ function parseBigintDef(def, refs) {
18083
18336
  return res;
18084
18337
  }
18085
18338
 
18086
- // node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
18339
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
18087
18340
  function parseBooleanDef() {
18088
18341
  return {
18089
18342
  type: "boolean"
18090
18343
  };
18091
18344
  }
18092
18345
 
18093
- // node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
18346
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
18094
18347
  function parseBrandedDef(_def, refs) {
18095
18348
  return parseDef(_def.type._def, refs);
18096
18349
  }
18097
18350
 
18098
- // node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
18351
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
18099
18352
  var parseCatchDef = (def, refs) => {
18100
18353
  return parseDef(def.innerType._def, refs);
18101
18354
  };
18102
18355
 
18103
- // node_modules/zod-to-json-schema/dist/esm/parsers/date.js
18356
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js
18104
18357
  function parseDateDef(def, refs, overrideDateStrategy) {
18105
18358
  const strategy = overrideDateStrategy ?? refs.dateStrategy;
18106
18359
  if (Array.isArray(strategy)) {
@@ -18145,7 +18398,7 @@ var integerDateParser = (def, refs) => {
18145
18398
  return res;
18146
18399
  };
18147
18400
 
18148
- // node_modules/zod-to-json-schema/dist/esm/parsers/default.js
18401
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js
18149
18402
  function parseDefaultDef(_def, refs) {
18150
18403
  return {
18151
18404
  ...parseDef(_def.innerType._def, refs),
@@ -18153,12 +18406,12 @@ function parseDefaultDef(_def, refs) {
18153
18406
  };
18154
18407
  }
18155
18408
 
18156
- // node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
18409
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
18157
18410
  function parseEffectsDef(_def, refs) {
18158
18411
  return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
18159
18412
  }
18160
18413
 
18161
- // node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
18414
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
18162
18415
  function parseEnumDef(def) {
18163
18416
  return {
18164
18417
  type: "string",
@@ -18166,7 +18419,7 @@ function parseEnumDef(def) {
18166
18419
  };
18167
18420
  }
18168
18421
 
18169
- // node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
18422
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
18170
18423
  var isJsonSchema7AllOfType = (type) => {
18171
18424
  if ("type" in type && type.type === "string")
18172
18425
  return false;
@@ -18208,7 +18461,7 @@ function parseIntersectionDef(def, refs) {
18208
18461
  } : undefined;
18209
18462
  }
18210
18463
 
18211
- // node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
18464
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
18212
18465
  function parseLiteralDef(def, refs) {
18213
18466
  const parsedType2 = typeof def.value;
18214
18467
  if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") {
@@ -18228,7 +18481,7 @@ function parseLiteralDef(def, refs) {
18228
18481
  };
18229
18482
  }
18230
18483
 
18231
- // node_modules/zod-to-json-schema/dist/esm/parsers/string.js
18484
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js
18232
18485
  var emojiRegex2 = undefined;
18233
18486
  var zodPatterns = {
18234
18487
  cuid: /^[cC][^\s-]{8,}$/,
@@ -18525,7 +18778,7 @@ function stringifyRegExpWithFlags(regex, refs) {
18525
18778
  return pattern;
18526
18779
  }
18527
18780
 
18528
- // node_modules/zod-to-json-schema/dist/esm/parsers/record.js
18781
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js
18529
18782
  function parseRecordDef(def, refs) {
18530
18783
  if (refs.target === "openAi") {
18531
18784
  console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
@@ -18577,7 +18830,7 @@ function parseRecordDef(def, refs) {
18577
18830
  return schema;
18578
18831
  }
18579
18832
 
18580
- // node_modules/zod-to-json-schema/dist/esm/parsers/map.js
18833
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js
18581
18834
  function parseMapDef(def, refs) {
18582
18835
  if (refs.mapStrategy === "record") {
18583
18836
  return parseRecordDef(def, refs);
@@ -18602,7 +18855,7 @@ function parseMapDef(def, refs) {
18602
18855
  };
18603
18856
  }
18604
18857
 
18605
- // node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
18858
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
18606
18859
  function parseNativeEnumDef(def) {
18607
18860
  const object3 = def.values;
18608
18861
  const actualKeys = Object.keys(def.values).filter((key) => {
@@ -18616,7 +18869,7 @@ function parseNativeEnumDef(def) {
18616
18869
  };
18617
18870
  }
18618
18871
 
18619
- // node_modules/zod-to-json-schema/dist/esm/parsers/never.js
18872
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js
18620
18873
  function parseNeverDef(refs) {
18621
18874
  return refs.target === "openAi" ? undefined : {
18622
18875
  not: parseAnyDef({
@@ -18626,7 +18879,7 @@ function parseNeverDef(refs) {
18626
18879
  };
18627
18880
  }
18628
18881
 
18629
- // node_modules/zod-to-json-schema/dist/esm/parsers/null.js
18882
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js
18630
18883
  function parseNullDef(refs) {
18631
18884
  return refs.target === "openApi3" ? {
18632
18885
  enum: ["null"],
@@ -18636,7 +18889,7 @@ function parseNullDef(refs) {
18636
18889
  };
18637
18890
  }
18638
18891
 
18639
- // node_modules/zod-to-json-schema/dist/esm/parsers/union.js
18892
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js
18640
18893
  var primitiveMappings = {
18641
18894
  ZodString: "string",
18642
18895
  ZodNumber: "number",
@@ -18704,7 +18957,7 @@ var asAnyOf = (def, refs) => {
18704
18957
  return anyOf.length ? { anyOf } : undefined;
18705
18958
  };
18706
18959
 
18707
- // node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
18960
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
18708
18961
  function parseNullableDef(def, refs) {
18709
18962
  if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
18710
18963
  if (refs.target === "openApi3") {
@@ -18736,7 +18989,7 @@ function parseNullableDef(def, refs) {
18736
18989
  return base && { anyOf: [base, { type: "null" }] };
18737
18990
  }
18738
18991
 
18739
- // node_modules/zod-to-json-schema/dist/esm/parsers/number.js
18992
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js
18740
18993
  function parseNumberDef(def, refs) {
18741
18994
  const res = {
18742
18995
  type: "number"
@@ -18785,7 +19038,7 @@ function parseNumberDef(def, refs) {
18785
19038
  return res;
18786
19039
  }
18787
19040
 
18788
- // node_modules/zod-to-json-schema/dist/esm/parsers/object.js
19041
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js
18789
19042
  function parseObjectDef(def, refs) {
18790
19043
  const forceOptionalIntoNullable = refs.target === "openAi";
18791
19044
  const result = {
@@ -18855,7 +19108,7 @@ function safeIsOptional(schema) {
18855
19108
  }
18856
19109
  }
18857
19110
 
18858
- // node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
19111
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
18859
19112
  var parseOptionalDef = (def, refs) => {
18860
19113
  if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
18861
19114
  return parseDef(def.innerType._def, refs);
@@ -18874,7 +19127,7 @@ var parseOptionalDef = (def, refs) => {
18874
19127
  } : parseAnyDef(refs);
18875
19128
  };
18876
19129
 
18877
- // node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
19130
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
18878
19131
  var parsePipelineDef = (def, refs) => {
18879
19132
  if (refs.pipeStrategy === "input") {
18880
19133
  return parseDef(def.in._def, refs);
@@ -18894,12 +19147,12 @@ var parsePipelineDef = (def, refs) => {
18894
19147
  };
18895
19148
  };
18896
19149
 
18897
- // node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
19150
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
18898
19151
  function parsePromiseDef(def, refs) {
18899
19152
  return parseDef(def.type._def, refs);
18900
19153
  }
18901
19154
 
18902
- // node_modules/zod-to-json-schema/dist/esm/parsers/set.js
19155
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js
18903
19156
  function parseSetDef(def, refs) {
18904
19157
  const items = parseDef(def.valueType._def, {
18905
19158
  ...refs,
@@ -18919,7 +19172,7 @@ function parseSetDef(def, refs) {
18919
19172
  return schema;
18920
19173
  }
18921
19174
 
18922
- // node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
19175
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
18923
19176
  function parseTupleDef(def, refs) {
18924
19177
  if (def.rest) {
18925
19178
  return {
@@ -18947,24 +19200,24 @@ function parseTupleDef(def, refs) {
18947
19200
  }
18948
19201
  }
18949
19202
 
18950
- // node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
19203
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
18951
19204
  function parseUndefinedDef(refs) {
18952
19205
  return {
18953
19206
  not: parseAnyDef(refs)
18954
19207
  };
18955
19208
  }
18956
19209
 
18957
- // node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
19210
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
18958
19211
  function parseUnknownDef(refs) {
18959
19212
  return parseAnyDef(refs);
18960
19213
  }
18961
19214
 
18962
- // node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
19215
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
18963
19216
  var parseReadonlyDef = (def, refs) => {
18964
19217
  return parseDef(def.innerType._def, refs);
18965
19218
  };
18966
19219
 
18967
- // node_modules/zod-to-json-schema/dist/esm/selectParser.js
19220
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js
18968
19221
  var selectParser = (def, typeName, refs) => {
18969
19222
  switch (typeName) {
18970
19223
  case ZodFirstPartyTypeKind.ZodString:
@@ -19042,7 +19295,7 @@ var selectParser = (def, typeName, refs) => {
19042
19295
  }
19043
19296
  };
19044
19297
 
19045
- // node_modules/zod-to-json-schema/dist/esm/parseDef.js
19298
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js
19046
19299
  function parseDef(def, refs, forceResolution = false) {
19047
19300
  const seenItem = refs.seen.get(def);
19048
19301
  if (refs.override) {
@@ -19097,7 +19350,7 @@ var addMeta = (def, refs, jsonSchema) => {
19097
19350
  }
19098
19351
  return jsonSchema;
19099
19352
  };
19100
- // node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
19353
+ // node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
19101
19354
  var zodToJsonSchema = (schema, options) => {
19102
19355
  const refs = getRefs(options);
19103
19356
  let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
@@ -19157,7 +19410,7 @@ var zodToJsonSchema = (schema, options) => {
19157
19410
  }
19158
19411
  return combined;
19159
19412
  };
19160
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
19413
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
19161
19414
  function mapMiniTarget(t) {
19162
19415
  if (!t)
19163
19416
  return "draft-7";
@@ -19199,7 +19452,7 @@ function parseWithCompat(schema, data) {
19199
19452
  return result.data;
19200
19453
  }
19201
19454
 
19202
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
19455
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
19203
19456
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;
19204
19457
 
19205
19458
  class Protocol {
@@ -19403,6 +19656,10 @@ class Protocol {
19403
19656
  this._progressHandlers.clear();
19404
19657
  this._taskProgressTokens.clear();
19405
19658
  this._pendingDebouncedNotifications.clear();
19659
+ for (const info of this._timeoutInfo.values()) {
19660
+ clearTimeout(info.timeoutId);
19661
+ }
19662
+ this._timeoutInfo.clear();
19406
19663
  for (const controller of this._requestHandlerAbortControllers.values()) {
19407
19664
  controller.abort();
19408
19665
  }
@@ -19533,7 +19790,9 @@ class Protocol {
19533
19790
  await capturedTransport?.send(errorResponse);
19534
19791
  }
19535
19792
  }).catch((error2) => this._onerror(new Error(`Failed to send response: ${error2}`))).finally(() => {
19536
- this._requestHandlerAbortControllers.delete(request.id);
19793
+ if (this._requestHandlerAbortControllers.get(request.id) === abortController) {
19794
+ this._requestHandlerAbortControllers.delete(request.id);
19795
+ }
19537
19796
  });
19538
19797
  }
19539
19798
  _onprogress(notification) {
@@ -20034,7 +20293,7 @@ function mergeCapabilities(base, additional) {
20034
20293
  return result;
20035
20294
  }
20036
20295
 
20037
- // node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
20296
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
20038
20297
  var import_ajv = __toESM(require_ajv(), 1);
20039
20298
  var import_ajv_formats = __toESM(require_dist(), 1);
20040
20299
  function createDefaultAjvInstance() {
@@ -20074,7 +20333,7 @@ class AjvJsonSchemaValidator {
20074
20333
  }
20075
20334
  }
20076
20335
 
20077
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
20336
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
20078
20337
  class ExperimentalServerTasks {
20079
20338
  constructor(_server) {
20080
20339
  this._server = _server;
@@ -20152,7 +20411,7 @@ class ExperimentalServerTasks {
20152
20411
  }
20153
20412
  }
20154
20413
 
20155
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
20414
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
20156
20415
  function assertToolsCallTaskCapability(requests, method, entityName) {
20157
20416
  if (!requests) {
20158
20417
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -20187,7 +20446,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
20187
20446
  }
20188
20447
  }
20189
20448
 
20190
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
20449
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
20191
20450
  class Server extends Protocol {
20192
20451
  constructor(_serverInfo, options) {
20193
20452
  super(options);
@@ -20235,16 +20494,7 @@ class Server extends Protocol {
20235
20494
  if (!methodSchema) {
20236
20495
  throw new Error("Schema is missing a method literal");
20237
20496
  }
20238
- let methodValue;
20239
- if (isZ4Schema(methodSchema)) {
20240
- const v4Schema = methodSchema;
20241
- const v4Def = v4Schema._zod?.def;
20242
- methodValue = v4Def?.value ?? v4Schema.value;
20243
- } else {
20244
- const v3Schema = methodSchema;
20245
- const legacyDef = v3Schema._def;
20246
- methodValue = legacyDef?.value ?? v3Schema.value;
20247
- }
20497
+ const methodValue = getLiteralValue(methodSchema);
20248
20498
  if (typeof methodValue !== "string") {
20249
20499
  throw new Error("Schema method literal must be a string");
20250
20500
  }
@@ -20520,7 +20770,7 @@ class Server extends Protocol {
20520
20770
  }
20521
20771
  }
20522
20772
 
20523
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
20773
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
20524
20774
  var COMPLETABLE_SYMBOL = Symbol.for("mcp.completable");
20525
20775
  function isCompletable(schema) {
20526
20776
  return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
@@ -20534,7 +20784,7 @@ var McpZodTypeKind;
20534
20784
  McpZodTypeKind2["Completable"] = "McpCompletable";
20535
20785
  })(McpZodTypeKind || (McpZodTypeKind = {}));
20536
20786
 
20537
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
20787
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
20538
20788
  var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
20539
20789
  function validateToolName(name) {
20540
20790
  const warnings = [];
@@ -20592,7 +20842,7 @@ function validateAndWarnToolName(name) {
20592
20842
  return result.isValid;
20593
20843
  }
20594
20844
 
20595
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
20845
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
20596
20846
  class ExperimentalMcpServerTasks {
20597
20847
  constructor(_mcpServer) {
20598
20848
  this._mcpServer = _mcpServer;
@@ -20606,7 +20856,7 @@ class ExperimentalMcpServerTasks {
20606
20856
  return mcpServerInternal._createRegisteredTool(name, config2.title, config2.description, config2.inputSchema, config2.outputSchema, config2.annotations, execution, config2._meta, handler);
20607
20857
  }
20608
20858
  }
20609
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
20859
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
20610
20860
  class McpServer {
20611
20861
  constructor(serverInfo, options) {
20612
20862
  this._registeredResources = {};
@@ -21190,6 +21440,9 @@ class McpServer {
21190
21440
  annotations = rest.shift();
21191
21441
  }
21192
21442
  } else if (typeof firstArg === "object" && firstArg !== null) {
21443
+ if (Object.values(firstArg).some((v) => typeof v === "object" && v !== null)) {
21444
+ throw new Error(`Tool ${name} expected a Zod schema or ToolAnnotations, but received an unrecognized object`);
21445
+ }
21193
21446
  annotations = rest.shift();
21194
21447
  }
21195
21448
  }
@@ -21282,6 +21535,9 @@ function getZodSchemaObject(schema) {
21282
21535
  if (isZodRawShapeCompat(schema)) {
21283
21536
  return objectFromShape(schema);
21284
21537
  }
21538
+ if (!isZodSchemaInstance(schema)) {
21539
+ throw new Error("inputSchema must be a Zod schema or raw shape, received an unrecognized object");
21540
+ }
21285
21541
  return schema;
21286
21542
  }
21287
21543
  function promptArgumentsFromSchema(schema) {
@@ -21326,12 +21582,22 @@ var EMPTY_COMPLETION_RESULT = {
21326
21582
  }
21327
21583
  };
21328
21584
 
21329
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
21585
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
21330
21586
  import process2 from "process";
21331
21587
 
21332
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
21588
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
21589
+ var STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
21590
+
21333
21591
  class ReadBuffer {
21592
+ constructor(options) {
21593
+ this._maxBufferSize = options?.maxBufferSize ?? STDIO_DEFAULT_MAX_BUFFER_SIZE;
21594
+ }
21334
21595
  append(chunk) {
21596
+ const newSize = (this._buffer?.length ?? 0) + chunk.length;
21597
+ if (newSize > this._maxBufferSize) {
21598
+ this.clear();
21599
+ throw new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);
21600
+ }
21335
21601
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
21336
21602
  }
21337
21603
  readMessage() {
@@ -21359,20 +21625,25 @@ function serializeMessage(message) {
21359
21625
  `;
21360
21626
  }
21361
21627
 
21362
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
21628
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
21363
21629
  class StdioServerTransport {
21364
- constructor(_stdin = process2.stdin, _stdout = process2.stdout) {
21630
+ constructor(_stdin = process2.stdin, _stdout = process2.stdout, options) {
21365
21631
  this._stdin = _stdin;
21366
21632
  this._stdout = _stdout;
21367
- this._readBuffer = new ReadBuffer;
21368
21633
  this._started = false;
21369
21634
  this._ondata = (chunk) => {
21370
- this._readBuffer.append(chunk);
21371
- this.processReadBuffer();
21635
+ try {
21636
+ this._readBuffer.append(chunk);
21637
+ this.processReadBuffer();
21638
+ } catch (error2) {
21639
+ this.onerror?.(error2);
21640
+ this.close().catch(() => {});
21641
+ }
21372
21642
  };
21373
21643
  this._onerror = (error2) => {
21374
21644
  this.onerror?.(error2);
21375
21645
  };
21646
+ this._readBuffer = new ReadBuffer({ maxBufferSize: options?.maxBufferSize });
21376
21647
  }
21377
21648
  async start() {
21378
21649
  if (this._started) {
@@ -23111,13 +23382,24 @@ init_database();
23111
23382
  // src/lib/vault.ts
23112
23383
  init_database();
23113
23384
  import { existsSync as existsSync4, readFileSync as readFileSync2, writeFileSync, mkdirSync as mkdirSync3, unlinkSync } from "fs";
23114
- import { join as join3 } from "path";
23385
+ import { join as join4 } from "path";
23115
23386
  import { createCipheriv, createDecipheriv, randomBytes, pbkdf2Sync, createHash as createHash2 } from "crypto";
23116
- var VAULT_DIR = getDataDir();
23117
- var VAULT_CONFIG = join3(VAULT_DIR, "vault.json");
23118
- var VAULT_SESSION = join3(VAULT_DIR, ".vault-session");
23119
- var DOCUMENTS_DIR = join3(VAULT_DIR, "documents");
23120
23387
  var SESSION_TTL_MS = 30 * 60 * 1000;
23388
+ function getVaultDir() {
23389
+ return getDataDir();
23390
+ }
23391
+ function getVaultConfigPath() {
23392
+ return join4(getDataDir(), "vault.json");
23393
+ }
23394
+ function getVaultSessionPath() {
23395
+ return join4(getStateDir(), ".vault-session");
23396
+ }
23397
+ function getDocumentsDir() {
23398
+ const dir = join4(getDataDir(), "documents");
23399
+ if (!existsSync4(dir))
23400
+ mkdirSync3(dir, { recursive: true });
23401
+ return dir;
23402
+ }
23121
23403
  var _derivedKey = null;
23122
23404
  function deriveKey(passphrase, salt) {
23123
23405
  return pbkdf2Sync(passphrase, salt, 1e5, 32, "sha512");
@@ -23127,16 +23409,17 @@ function saveSession(key) {
23127
23409
  key: key.toString("hex"),
23128
23410
  expires_at: new Date(Date.now() + SESSION_TTL_MS).toISOString()
23129
23411
  };
23130
- writeFileSync(VAULT_SESSION, JSON.stringify(session), { mode: 384 });
23412
+ writeFileSync(getVaultSessionPath(), JSON.stringify(session), { mode: 384 });
23131
23413
  }
23132
23414
  function loadSession() {
23133
- if (!existsSync4(VAULT_SESSION))
23415
+ const sessionPath = getVaultSessionPath();
23416
+ if (!existsSync4(sessionPath))
23134
23417
  return null;
23135
23418
  try {
23136
- const session = JSON.parse(readFileSync2(VAULT_SESSION, "utf-8"));
23419
+ const session = JSON.parse(readFileSync2(sessionPath, "utf-8"));
23137
23420
  if (new Date(session.expires_at).getTime() < Date.now()) {
23138
23421
  try {
23139
- unlinkSync(VAULT_SESSION);
23422
+ unlinkSync(sessionPath);
23140
23423
  } catch {}
23141
23424
  return null;
23142
23425
  }
@@ -23147,30 +23430,30 @@ function loadSession() {
23147
23430
  }
23148
23431
  function clearSession() {
23149
23432
  try {
23150
- if (existsSync4(VAULT_SESSION))
23151
- unlinkSync(VAULT_SESSION);
23433
+ if (existsSync4(getVaultSessionPath()))
23434
+ unlinkSync(getVaultSessionPath());
23152
23435
  } catch {}
23153
23436
  }
23154
23437
  function initVault(passphrase) {
23155
- if (!existsSync4(VAULT_DIR))
23156
- mkdirSync3(VAULT_DIR, { recursive: true });
23157
- if (!existsSync4(DOCUMENTS_DIR))
23158
- mkdirSync3(DOCUMENTS_DIR, { recursive: true });
23438
+ const vaultDir = getVaultDir();
23439
+ if (!existsSync4(vaultDir))
23440
+ mkdirSync3(vaultDir, { recursive: true });
23441
+ mkdirSync3(getDocumentsDir(), { recursive: true });
23159
23442
  const salt = randomBytes(32);
23160
23443
  const key = deriveKey(passphrase, salt);
23161
23444
  const keyHash = createHash2("sha256").update(key).digest("hex");
23162
23445
  const config2 = { salt: salt.toString("hex"), key_hash: keyHash, created_at: new Date().toISOString() };
23163
- writeFileSync(VAULT_CONFIG, JSON.stringify(config2, null, 2));
23446
+ writeFileSync(getVaultConfigPath(), JSON.stringify(config2, null, 2));
23164
23447
  _derivedKey = key;
23165
23448
  saveSession(key);
23166
23449
  }
23167
23450
  function isVaultInitialized() {
23168
- return existsSync4(VAULT_CONFIG);
23451
+ return existsSync4(getVaultConfigPath());
23169
23452
  }
23170
23453
  function unlockVault(passphrase) {
23171
- if (!existsSync4(VAULT_CONFIG))
23454
+ if (!existsSync4(getVaultConfigPath()))
23172
23455
  throw new Error("Vault not initialized. Run 'contacts vault init' first.");
23173
- const config2 = JSON.parse(readFileSync2(VAULT_CONFIG, "utf-8"));
23456
+ const config2 = JSON.parse(readFileSync2(getVaultConfigPath(), "utf-8"));
23174
23457
  const salt = Buffer.from(config2.salt, "hex");
23175
23458
  const key = deriveKey(passphrase, salt);
23176
23459
  const keyHash = createHash2("sha256").update(key).digest("hex");
@@ -23225,10 +23508,11 @@ function decrypt(ciphertext, iv) {
23225
23508
  return decrypted;
23226
23509
  }
23227
23510
  function storeFile(sourcePath, entityId) {
23228
- if (!existsSync4(DOCUMENTS_DIR))
23229
- mkdirSync3(DOCUMENTS_DIR, { recursive: true });
23511
+ const documentsDir = getDocumentsDir();
23512
+ if (!existsSync4(documentsDir))
23513
+ mkdirSync3(documentsDir, { recursive: true });
23230
23514
  const ext = sourcePath.split(".").pop() || "bin";
23231
- const destPath = join3(DOCUMENTS_DIR, `${entityId}.${ext}`);
23515
+ const destPath = join4(documentsDir, `${entityId}.${ext}`);
23232
23516
  const data = readFileSync2(sourcePath);
23233
23517
  writeFileSync(destPath, data);
23234
23518
  return destPath;
@@ -24143,12 +24427,16 @@ async function assembleContext(contactIds, format = "meeting_prep", db) {
24143
24427
  // src/lib/images.ts
24144
24428
  init_database();
24145
24429
  import { existsSync as existsSync6, mkdirSync as mkdirSync4, copyFileSync as copyFileSync2, unlinkSync as unlinkSync3, readdirSync as readdirSync2, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from "fs";
24146
- import { join as join4, extname, basename } from "path";
24147
- var IMAGES_DIR = join4(getDataDir(), "images");
24430
+ import { join as join5, extname, basename } from "path";
24431
+ var IMAGES_DIR = join5(getDataDir(), "images");
24148
24432
  function ensureImagesDir() {
24149
24433
  if (!existsSync6(IMAGES_DIR))
24150
24434
  mkdirSync4(IMAGES_DIR, { recursive: true });
24151
24435
  }
24436
+ function getImagesDir() {
24437
+ ensureImagesDir();
24438
+ return IMAGES_DIR;
24439
+ }
24152
24440
  function saveImage(entityId, source, options) {
24153
24441
  ensureImagesDir();
24154
24442
  deleteImage(entityId);
@@ -24157,14 +24445,14 @@ function saveImage(entityId, source, options) {
24157
24445
  const ext2 = base64Match[1] === "jpeg" ? "jpg" : base64Match[1];
24158
24446
  const data = Buffer.from(base64Match[2], "base64");
24159
24447
  const filename2 = `${entityId}.${ext2}`;
24160
- writeFileSync2(join4(IMAGES_DIR, filename2), data);
24448
+ writeFileSync2(join5(IMAGES_DIR, filename2), data);
24161
24449
  return filename2;
24162
24450
  }
24163
24451
  if (!existsSync6(source) && /^[A-Za-z0-9+/=\n\r]+$/.test(source.trim()) && source.length > 100) {
24164
24452
  const ext2 = options?.format || "jpg";
24165
24453
  const data = Buffer.from(source.trim(), "base64");
24166
24454
  const filename2 = `${entityId}.${ext2}`;
24167
- writeFileSync2(join4(IMAGES_DIR, filename2), data);
24455
+ writeFileSync2(join5(IMAGES_DIR, filename2), data);
24168
24456
  return filename2;
24169
24457
  }
24170
24458
  if (!existsSync6(source)) {
@@ -24176,14 +24464,14 @@ function saveImage(entityId, source, options) {
24176
24464
  throw new Error(`Unsupported image format: ${ext}. Supported: ${validExts.join(", ")}`);
24177
24465
  }
24178
24466
  const filename = `${entityId}.${ext === "jpeg" ? "jpg" : ext}`;
24179
- copyFileSync2(source, join4(IMAGES_DIR, filename));
24467
+ copyFileSync2(source, join5(IMAGES_DIR, filename));
24180
24468
  return filename;
24181
24469
  }
24182
24470
  function getImagePath(entityId) {
24183
24471
  ensureImagesDir();
24184
24472
  const files = readdirSync2(IMAGES_DIR);
24185
24473
  const match = files.find((f) => f.startsWith(`${entityId}.`));
24186
- return match ? join4(IMAGES_DIR, match) : null;
24474
+ return match ? join5(IMAGES_DIR, match) : null;
24187
24475
  }
24188
24476
  function getImageAsBase64(entityId) {
24189
24477
  const path = getImagePath(entityId);
@@ -24200,7 +24488,7 @@ function deleteImage(entityId) {
24200
24488
  let deleted = false;
24201
24489
  for (const f of files) {
24202
24490
  if (f.startsWith(`${entityId}.`)) {
24203
- unlinkSync3(join4(IMAGES_DIR, f));
24491
+ unlinkSync3(join5(IMAGES_DIR, f));
24204
24492
  deleted = true;
24205
24493
  }
24206
24494
  }
@@ -24212,7 +24500,7 @@ function listImages() {
24212
24500
  return files.map((f) => ({
24213
24501
  entity_id: basename(f, extname(f)),
24214
24502
  filename: f,
24215
- path: join4(IMAGES_DIR, f)
24503
+ path: join5(IMAGES_DIR, f)
24216
24504
  }));
24217
24505
  }
24218
24506
 
@@ -27753,6 +28041,7 @@ Only include fields that are actually visible in the document. Return valid JSON
27753
28041
  }
27754
28042
 
27755
28043
  // src/mcp/handlers/advanced.ts
28044
+ import { join as join6 } from "path";
27756
28045
  var json3 = (v) => ({
27757
28046
  content: [{ type: "text", text: JSON.stringify(v, null, 2) }]
27758
28047
  });
@@ -27914,8 +28203,9 @@ var advancedHandlers = {
27914
28203
  const { contact_id, image, format } = a;
27915
28204
  await store.getContact(contact_id);
27916
28205
  const filename = await store.saveImage(contact_id, image, { format });
27917
- await store.updateContact(contact_id, { avatar_url: `~/.hasna/contacts/images/${filename}` });
27918
- return json3({ ok: true, contact_id, filename, avatar_url: `~/.hasna/contacts/images/${filename}` });
28206
+ const avatarUrl = join6(getImagesDir(), filename);
28207
+ await store.updateContact(contact_id, { avatar_url: avatarUrl });
28208
+ return json3({ ok: true, contact_id, filename, avatar_url: avatarUrl });
27919
28209
  },
27920
28210
  get_contact_photo: async (a) => {
27921
28211
  const { contact_id } = a;
@@ -27937,8 +28227,9 @@ var advancedHandlers = {
27937
28227
  const { company_id, image, format } = a;
27938
28228
  await store.getCompany(company_id);
27939
28229
  const filename = await store.saveImage(company_id, image, { format });
27940
- await store.updateCompany(company_id, { logo_url: `~/.hasna/contacts/images/${filename}` });
27941
- return json3({ ok: true, company_id, filename, logo_url: `~/.hasna/contacts/images/${filename}` });
28230
+ const logoUrl = join6(getImagesDir(), filename);
28231
+ await store.updateCompany(company_id, { logo_url: logoUrl });
28232
+ return json3({ ok: true, company_id, filename, logo_url: logoUrl });
27942
28233
  },
27943
28234
  get_company_logo: async (a) => {
27944
28235
  const { company_id } = a;
@@ -29709,10 +30000,10 @@ var TOOL_DEFINITIONS = [
29709
30000
  { name: "get_deal_team", description: "Get the full buying committee for a deal with contact names and roles.", inputSchema: { type: "object", properties: { deal_id: { type: "string" } }, required: ["deal_id"] } },
29710
30001
  { name: "get_coverage_gaps", description: "Identify coverage gaps in a company account \u2014 missing economic buyer, technical evaluator, or org chart relationships.", inputSchema: { type: "object", properties: { company_id: { type: "string" } }, required: ["company_id"] } },
29711
30002
  { name: "get_recent_contact_events", description: "Polling fallback for change events \u2014 returns recent activity log entries, optionally filtered by event type or date.", inputSchema: { type: "object", properties: { since: { type: "string", description: "ISO 8601 datetime \u2014 only events after this date" }, event_types: { type: "array", items: { type: "string" } } } } },
29712
- { name: "set_contact_photo", description: "Set a contact's profile photo. Provide either a local file path or base64-encoded image data (with or without data URI prefix). Stores image in ~/.hasna/contacts/images/ and updates avatar_url. Supported formats: jpg, png, gif, webp, svg, avif.", inputSchema: { type: "object", properties: { contact_id: { type: "string" }, image: { type: "string", description: "File path (e.g. /tmp/photo.jpg) OR base64 data (e.g. data:image/png;base64,...) OR raw base64 string" }, format: { type: "string", description: "Image format hint when using raw base64 (jpg, png, webp). Not needed for file paths or data URIs." } }, required: ["contact_id", "image"] } },
30003
+ { name: "set_contact_photo", description: "Set a contact's profile photo. Provide either a local file path or base64-encoded image data (with or without data URI prefix). Stores image in the XDG data root images dir and updates avatar_url. Supported formats: jpg, png, gif, webp, svg, avif.", inputSchema: { type: "object", properties: { contact_id: { type: "string" }, image: { type: "string", description: "File path (e.g. /tmp/photo.jpg) OR base64 data (e.g. data:image/png;base64,...) OR raw base64 string" }, format: { type: "string", description: "Image format hint when using raw base64 (jpg, png, webp). Not needed for file paths or data URIs." } }, required: ["contact_id", "image"] } },
29713
30004
  { name: "get_contact_photo", description: "Get a contact's profile photo as base64 data URI. Returns null if no photo is set.", inputSchema: { type: "object", properties: { contact_id: { type: "string" } }, required: ["contact_id"] } },
29714
30005
  { name: "delete_contact_photo", description: "Remove a contact's profile photo.", inputSchema: { type: "object", properties: { contact_id: { type: "string" } }, required: ["contact_id"] } },
29715
- { name: "set_company_logo", description: "Set a company's logo image. Provide either a local file path or base64-encoded image data. Stores image in ~/.hasna/contacts/images/ and updates logo_url.", inputSchema: { type: "object", properties: { company_id: { type: "string" }, image: { type: "string", description: "File path or base64 data" }, format: { type: "string", description: "Image format hint for raw base64" } }, required: ["company_id", "image"] } },
30006
+ { name: "set_company_logo", description: "Set a company's logo image. Provide either a local file path or base64-encoded image data. Stores image in the XDG data root images dir and updates logo_url.", inputSchema: { type: "object", properties: { company_id: { type: "string" }, image: { type: "string", description: "File path or base64 data" }, format: { type: "string", description: "Image format hint for raw base64" } }, required: ["company_id", "image"] } },
29716
30007
  { name: "get_company_logo", description: "Get a company's logo as base64 data URI.", inputSchema: { type: "object", properties: { company_id: { type: "string" } }, required: ["company_id"] } },
29717
30008
  { name: "delete_company_logo", description: "Remove a company's logo image.", inputSchema: { type: "object", properties: { company_id: { type: "string" } }, required: ["company_id"] } },
29718
30009
  { name: "set_sensitivity", description: "Set a contact's sensitivity level (normal, confidential, restricted). Restricted contacts are hidden from list/search unless explicitly requested.", inputSchema: { type: "object", properties: { contact_id: { type: "string" }, sensitivity: { type: "string", enum: ["normal", "confidential", "restricted"] } }, required: ["contact_id", "sensitivity"] } },
@@ -29720,7 +30011,7 @@ var TOOL_DEFINITIONS = [
29720
30011
  { name: "vault_unlock", description: "Unlock the vault for this session with a passphrase.", inputSchema: { type: "object", properties: { passphrase: { type: "string" } }, required: ["passphrase"] } },
29721
30012
  { name: "vault_lock", description: "Lock the vault, clearing the encryption key from memory.", inputSchema: { type: "object", properties: {} } },
29722
30013
  { name: "vault_status", description: "Check vault initialization and lock status.", inputSchema: { type: "object", properties: {} } },
29723
- { name: "add_document", description: "Store a document for a contact (passport, tax_id, medical_record, etc.). Text values are encrypted; file attachments are stored plain so agents can read them. Vault must be unlocked.", inputSchema: { type: "object", properties: { contact_id: { type: "string" }, doc_type: { type: "string", enum: [...DOCUMENT_TYPES] }, label: { type: "string" }, value: { type: "string", description: "Plaintext value (will be encrypted in DB)" }, file_path: { type: "string", description: "File to attach \u2014 stored PLAIN in ~/.hasna/contacts/documents/ for agent access" }, metadata: { type: "object" }, expires_at: { type: "string" } }, required: ["contact_id", "doc_type", "value"] } },
30014
+ { name: "add_document", description: "Store a document for a contact (passport, tax_id, medical_record, etc.). Text values are encrypted; file attachments are stored plain so agents can read them. Vault must be unlocked.", inputSchema: { type: "object", properties: { contact_id: { type: "string" }, doc_type: { type: "string", enum: [...DOCUMENT_TYPES] }, label: { type: "string" }, value: { type: "string", description: "Plaintext value (will be encrypted in DB)" }, file_path: { type: "string", description: "File to attach \u2014 stored PLAIN in the XDG data root documents dir for agent access" }, metadata: { type: "object" }, expires_at: { type: "string" } }, required: ["contact_id", "doc_type", "value"] } },
29724
30015
  { name: "list_documents", description: "List documents for a contact (metadata only \u2014 no decryption needed). Returns file_path for attachments so agents can read them directly.", inputSchema: { type: "object", properties: { contact_id: { type: "string" } }, required: ["contact_id"] } },
29725
30016
  { name: "get_document", description: "Get a document with decrypted value and file_path. Vault must be unlocked for the text value; file is always accessible.", inputSchema: { type: "object", properties: { document_id: { type: "string" } }, required: ["document_id"] } },
29726
30017
  { name: "get_document_file", description: "Get the plain file path for a document attachment. Agents can read this file directly \u2014 it is NOT encrypted. Returns null if no file attached.", inputSchema: { type: "object", properties: { document_id: { type: "string" } }, required: ["document_id"] } },
@@ -29827,17 +30118,54 @@ function registerContactsStorageTools(server) {
29827
30118
  });
29828
30119
  }
29829
30120
 
29830
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js
30121
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js
30122
+ var import_content_type = __toESM(require_content_type(), 1);
30123
+ function mediaTypeEssence(header) {
30124
+ if (!header) {
30125
+ return;
30126
+ }
30127
+ try {
30128
+ return import_content_type.default.parse(header).type;
30129
+ } catch {
30130
+ const essence = (header.split(";", 1)[0] ?? "").trim().toLowerCase();
30131
+ if (essence === "" || header.slice(essence.length).includes(",")) {
30132
+ return;
30133
+ }
30134
+ return essence;
30135
+ }
30136
+ }
30137
+ function isJsonContentType(header) {
30138
+ if (header === "application/json") {
30139
+ return true;
30140
+ }
30141
+ return mediaTypeEssence(header) === "application/json";
30142
+ }
30143
+
30144
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js
30145
+ var DEFAULT_SSE_KEEP_ALIVE_MS = 15000;
30146
+ var MAX_TIMER_DELAY_MS = 2 ** 31 - 1;
30147
+ function armSseKeepAlive(intervalMs, onTick) {
30148
+ if (!Number.isFinite(intervalMs) || intervalMs < 1) {
30149
+ return;
30150
+ }
30151
+ const timer = setInterval(onTick, Math.min(intervalMs, MAX_TIMER_DELAY_MS));
30152
+ timer.unref?.();
30153
+ return timer;
30154
+ }
30155
+
30156
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.30.0_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js
29831
30157
  class WebStandardStreamableHTTPServerTransport {
29832
30158
  constructor(options = {}) {
29833
30159
  this._started = false;
29834
30160
  this._hasHandledRequest = false;
29835
30161
  this._streamMapping = new Map;
29836
30162
  this._requestToStreamMapping = new Map;
30163
+ this._resumableStreams = new Set;
29837
30164
  this._requestResponseMap = new Map;
29838
30165
  this._initialized = false;
29839
30166
  this._enableJsonResponse = false;
29840
30167
  this._standaloneSseStreamId = "_GET_stream";
30168
+ this._closed = false;
29841
30169
  this.sessionIdGenerator = options.sessionIdGenerator;
29842
30170
  this._enableJsonResponse = options.enableJsonResponse ?? false;
29843
30171
  this._eventStore = options.eventStore;
@@ -29847,6 +30175,22 @@ class WebStandardStreamableHTTPServerTransport {
29847
30175
  this._allowedOrigins = options.allowedOrigins;
29848
30176
  this._enableDnsRebindingProtection = options.enableDnsRebindingProtection ?? false;
29849
30177
  this._retryInterval = options.retryInterval;
30178
+ this._keepAliveMs = options.keepAliveMs ?? DEFAULT_SSE_KEEP_ALIVE_MS;
30179
+ }
30180
+ startKeepAlive(controller, encoder) {
30181
+ if (this._closed)
30182
+ return;
30183
+ const timer = armSseKeepAlive(this._keepAliveMs, () => {
30184
+ try {
30185
+ controller.enqueue(encoder.encode(`: keepalive
30186
+
30187
+ `));
30188
+ } catch {
30189
+ if (timer !== undefined)
30190
+ clearInterval(timer);
30191
+ }
30192
+ });
30193
+ return timer;
29850
30194
  }
29851
30195
  async start() {
29852
30196
  if (this._started) {
@@ -29894,6 +30238,9 @@ class WebStandardStreamableHTTPServerTransport {
29894
30238
  return;
29895
30239
  }
29896
30240
  async handleRequest(req, options) {
30241
+ if (this._closed) {
30242
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
30243
+ }
29897
30244
  if (!this.sessionIdGenerator && this._hasHandledRequest) {
29898
30245
  throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");
29899
30246
  }
@@ -29933,6 +30280,7 @@ data:
29933
30280
  `;
29934
30281
  }
29935
30282
  controller.enqueue(encoder.encode(primingEvent));
30283
+ this._resumableStreams.add(streamId);
29936
30284
  }
29937
30285
  async handleGetRequest(req) {
29938
30286
  const acceptHeader = req.headers.get("accept");
@@ -29960,18 +30308,25 @@ data:
29960
30308
  }
29961
30309
  const encoder = new TextEncoder;
29962
30310
  let streamController;
30311
+ let keepAliveTimer = undefined;
29963
30312
  const readable = new ReadableStream({
29964
30313
  start: (controller) => {
29965
30314
  streamController = controller;
29966
30315
  },
29967
30316
  cancel: () => {
29968
- this._streamMapping.delete(this._standaloneSseStreamId);
30317
+ if (keepAliveTimer !== undefined) {
30318
+ clearInterval(keepAliveTimer);
30319
+ }
30320
+ if (this._streamMapping.get(this._standaloneSseStreamId)?.controller === streamController) {
30321
+ this._streamMapping.delete(this._standaloneSseStreamId);
30322
+ }
29969
30323
  }
29970
30324
  });
29971
30325
  const headers = {
29972
30326
  "Content-Type": "text/event-stream",
29973
30327
  "Cache-Control": "no-cache, no-transform",
29974
- Connection: "keep-alive"
30328
+ Connection: "keep-alive",
30329
+ "X-Accel-Buffering": "no"
29975
30330
  };
29976
30331
  if (this.sessionId !== undefined) {
29977
30332
  headers["mcp-session-id"] = this.sessionId;
@@ -29980,12 +30335,16 @@ data:
29980
30335
  controller: streamController,
29981
30336
  encoder,
29982
30337
  cleanup: () => {
30338
+ if (keepAliveTimer !== undefined) {
30339
+ clearInterval(keepAliveTimer);
30340
+ }
29983
30341
  this._streamMapping.delete(this._standaloneSseStreamId);
29984
30342
  try {
29985
30343
  streamController.close();
29986
30344
  } catch {}
29987
30345
  }
29988
30346
  });
30347
+ keepAliveTimer = this.startKeepAlive(streamController, encoder);
29989
30348
  return new Response(readable, { headers });
29990
30349
  }
29991
30350
  async replayEvents(lastEventId) {
@@ -30009,20 +30368,33 @@ data:
30009
30368
  const headers = {
30010
30369
  "Content-Type": "text/event-stream",
30011
30370
  "Cache-Control": "no-cache, no-transform",
30012
- Connection: "keep-alive"
30371
+ Connection: "keep-alive",
30372
+ "X-Accel-Buffering": "no"
30013
30373
  };
30014
30374
  if (this.sessionId !== undefined) {
30015
30375
  headers["mcp-session-id"] = this.sessionId;
30016
30376
  }
30017
30377
  const encoder = new TextEncoder;
30018
30378
  let streamController;
30379
+ let keepAliveTimer = undefined;
30380
+ let replayedStreamId = undefined;
30381
+ let cancelled = false;
30019
30382
  const readable = new ReadableStream({
30020
30383
  start: (controller) => {
30021
30384
  streamController = controller;
30022
30385
  },
30023
- cancel: () => {}
30386
+ cancel: () => {
30387
+ cancelled = true;
30388
+ if (keepAliveTimer !== undefined) {
30389
+ clearInterval(keepAliveTimer);
30390
+ }
30391
+ if (replayedStreamId !== undefined && this._streamMapping.get(replayedStreamId)?.controller === streamController) {
30392
+ this._streamMapping.delete(replayedStreamId);
30393
+ }
30394
+ }
30024
30395
  });
30025
- const replayedStreamId = await this._eventStore.replayEventsAfter(lastEventId, {
30396
+ const replayedEventIds = new Set;
30397
+ replayedStreamId = await this._eventStore.replayEventsAfter(lastEventId, {
30026
30398
  send: async (eventId, message) => {
30027
30399
  const success = this.writeSSEEvent(streamController, encoder, message, eventId);
30028
30400
  if (!success) {
@@ -30030,19 +30402,34 @@ data:
30030
30402
  try {
30031
30403
  streamController.close();
30032
30404
  } catch {}
30405
+ } else {
30406
+ replayedEventIds.add(eventId);
30033
30407
  }
30034
30408
  }
30035
30409
  });
30410
+ if (this._closed || cancelled) {
30411
+ try {
30412
+ streamController.close();
30413
+ } catch {}
30414
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
30415
+ }
30416
+ this._streamMapping.get(replayedStreamId)?.cleanup();
30036
30417
  this._streamMapping.set(replayedStreamId, {
30037
30418
  controller: streamController,
30038
30419
  encoder,
30420
+ replayedEventIds,
30039
30421
  cleanup: () => {
30422
+ if (keepAliveTimer !== undefined) {
30423
+ clearInterval(keepAliveTimer);
30424
+ }
30040
30425
  this._streamMapping.delete(replayedStreamId);
30041
30426
  try {
30042
30427
  streamController.close();
30043
30428
  } catch {}
30044
30429
  }
30045
30430
  });
30431
+ this._resumableStreams.add(replayedStreamId);
30432
+ keepAliveTimer = this.startKeepAlive(streamController, encoder);
30046
30433
  return new Response(readable, { headers });
30047
30434
  } catch (error2) {
30048
30435
  this.onerror?.(error2);
@@ -30092,7 +30479,7 @@ data:
30092
30479
  return this.createJsonErrorResponse(406, -32000, "Not Acceptable: Client must accept both application/json and text/event-stream");
30093
30480
  }
30094
30481
  const ct = req.headers.get("content-type");
30095
- if (!ct || !ct.includes("application/json")) {
30482
+ if (!isJsonContentType(ct)) {
30096
30483
  this.onerror?.(new Error("Unsupported Media Type: Content-Type must be application/json"));
30097
30484
  return this.createJsonErrorResponse(415, -32000, "Unsupported Media Type: Content-Type must be application/json");
30098
30485
  }
@@ -30122,6 +30509,9 @@ data:
30122
30509
  this.onerror?.(new Error("Parse error: Invalid JSON-RPC message"));
30123
30510
  return this.createJsonErrorResponse(400, -32700, "Parse error: Invalid JSON-RPC message");
30124
30511
  }
30512
+ if (this._closed) {
30513
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
30514
+ }
30125
30515
  const isInitializationRequest = messages.some(isInitializeRequest);
30126
30516
  if (isInitializationRequest) {
30127
30517
  if (this._initialized && this.sessionId !== undefined) {
@@ -30148,6 +30538,9 @@ data:
30148
30538
  return protocolError;
30149
30539
  }
30150
30540
  }
30541
+ if (this._closed) {
30542
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
30543
+ }
30151
30544
  const hasRequests = messages.some(isJSONRPCRequest);
30152
30545
  if (!hasRequests) {
30153
30546
  for (const message of messages) {
@@ -30178,18 +30571,25 @@ data:
30178
30571
  }
30179
30572
  const encoder = new TextEncoder;
30180
30573
  let streamController;
30574
+ let keepAliveTimer = undefined;
30181
30575
  const readable = new ReadableStream({
30182
30576
  start: (controller) => {
30183
30577
  streamController = controller;
30184
30578
  },
30185
30579
  cancel: () => {
30186
- this._streamMapping.delete(streamId);
30580
+ if (keepAliveTimer !== undefined) {
30581
+ clearInterval(keepAliveTimer);
30582
+ }
30583
+ if (this._streamMapping.get(streamId)?.controller === streamController) {
30584
+ this._streamMapping.delete(streamId);
30585
+ }
30187
30586
  }
30188
30587
  });
30189
30588
  const headers = {
30190
30589
  "Content-Type": "text/event-stream",
30191
- "Cache-Control": "no-cache",
30192
- Connection: "keep-alive"
30590
+ "Cache-Control": "no-cache, no-transform",
30591
+ Connection: "keep-alive",
30592
+ "X-Accel-Buffering": "no"
30193
30593
  };
30194
30594
  if (this.sessionId !== undefined) {
30195
30595
  headers["mcp-session-id"] = this.sessionId;
@@ -30200,6 +30600,9 @@ data:
30200
30600
  controller: streamController,
30201
30601
  encoder,
30202
30602
  cleanup: () => {
30603
+ if (keepAliveTimer !== undefined) {
30604
+ clearInterval(keepAliveTimer);
30605
+ }
30203
30606
  this._streamMapping.delete(streamId);
30204
30607
  try {
30205
30608
  streamController.close();
@@ -30209,19 +30612,33 @@ data:
30209
30612
  this._requestToStreamMapping.set(message.id, streamId);
30210
30613
  }
30211
30614
  }
30212
- await this.writePrimingEvent(streamController, encoder, streamId, clientProtocolVersion);
30213
- for (const message of messages) {
30214
- let closeSSEStream;
30215
- let closeStandaloneSSEStream;
30216
- if (isJSONRPCRequest(message) && this._eventStore && clientProtocolVersion >= "2025-11-25") {
30217
- closeSSEStream = () => {
30218
- this.closeSSEStream(message.id);
30219
- };
30220
- closeStandaloneSSEStream = () => {
30221
- this.closeStandaloneSSEStream();
30222
- };
30615
+ try {
30616
+ await this.writePrimingEvent(streamController, encoder, streamId, clientProtocolVersion);
30617
+ for (const message of messages) {
30618
+ let closeSSEStream;
30619
+ let closeStandaloneSSEStream;
30620
+ if (isJSONRPCRequest(message) && this._eventStore && clientProtocolVersion >= "2025-11-25") {
30621
+ closeSSEStream = () => {
30622
+ this.closeSSEStream(message.id);
30623
+ };
30624
+ closeStandaloneSSEStream = () => {
30625
+ this.closeStandaloneSSEStream();
30626
+ };
30627
+ }
30628
+ this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo, closeSSEStream, closeStandaloneSSEStream });
30629
+ }
30630
+ } catch (error2) {
30631
+ this._streamMapping.get(streamId)?.cleanup();
30632
+ this._resumableStreams.delete(streamId);
30633
+ for (const message of messages) {
30634
+ if (isJSONRPCRequest(message)) {
30635
+ this._requestToStreamMapping.delete(message.id);
30636
+ }
30223
30637
  }
30224
- this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo, closeSSEStream, closeStandaloneSSEStream });
30638
+ throw error2;
30639
+ }
30640
+ if (this._streamMapping.get(streamId)?.controller === streamController) {
30641
+ keepAliveTimer = this.startKeepAlive(streamController, encoder);
30225
30642
  }
30226
30643
  return new Response(readable, { status: 200, headers });
30227
30644
  } catch (error2) {
@@ -30238,9 +30655,12 @@ data:
30238
30655
  if (protocolError) {
30239
30656
  return protocolError;
30240
30657
  }
30241
- await Promise.resolve(this._onsessionclosed?.(this.sessionId));
30242
- await this.close();
30243
- return new Response(null, { status: 200 });
30658
+ try {
30659
+ await Promise.resolve(this._onsessionclosed?.(this.sessionId));
30660
+ return new Response(null, { status: 200 });
30661
+ } finally {
30662
+ await this.close();
30663
+ }
30244
30664
  }
30245
30665
  validateSession(req) {
30246
30666
  if (this.sessionIdGenerator === undefined) {
@@ -30270,11 +30690,16 @@ data:
30270
30690
  return;
30271
30691
  }
30272
30692
  async close() {
30693
+ if (this._closed) {
30694
+ return;
30695
+ }
30696
+ this._closed = true;
30273
30697
  this._streamMapping.forEach(({ cleanup }) => {
30274
30698
  cleanup();
30275
30699
  });
30276
30700
  this._streamMapping.clear();
30277
30701
  this._requestResponseMap.clear();
30702
+ this._resumableStreams.clear();
30278
30703
  this.onclose?.();
30279
30704
  }
30280
30705
  closeSSEStream(requestId) {
@@ -30309,7 +30734,7 @@ data:
30309
30734
  if (standaloneSse === undefined) {
30310
30735
  return;
30311
30736
  }
30312
- if (standaloneSse.controller && standaloneSse.encoder) {
30737
+ if (standaloneSse.controller && standaloneSse.encoder && (eventId === undefined || !standaloneSse.replayedEventIds?.has(eventId))) {
30313
30738
  this.writeSSEEvent(standaloneSse.controller, standaloneSse.encoder, message, eventId);
30314
30739
  }
30315
30740
  return;
@@ -30318,13 +30743,19 @@ data:
30318
30743
  if (!streamId) {
30319
30744
  throw new Error(`No connection established for request ID: ${String(requestId)}`);
30320
30745
  }
30321
- const stream = this._streamMapping.get(streamId);
30322
- if (!this._enableJsonResponse && stream?.controller && stream?.encoder) {
30746
+ let stream = this._streamMapping.get(streamId);
30747
+ if (!this._enableJsonResponse) {
30323
30748
  let eventId;
30324
30749
  if (this._eventStore) {
30325
30750
  eventId = await this._eventStore.storeEvent(streamId, message);
30751
+ stream = this._streamMapping.get(streamId);
30752
+ }
30753
+ if (stream?.controller && stream?.encoder && (eventId === undefined || !stream.replayedEventIds?.has(eventId))) {
30754
+ const written = this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
30755
+ if (written && eventId !== undefined) {
30756
+ this._resumableStreams.add(streamId);
30757
+ }
30326
30758
  }
30327
- this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
30328
30759
  }
30329
30760
  if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
30330
30761
  this._requestResponseMap.set(requestId, message);
@@ -30332,6 +30763,25 @@ data:
30332
30763
  const allResponsesReady = relatedIds.every((id) => this._requestResponseMap.has(id));
30333
30764
  if (allResponsesReady) {
30334
30765
  if (!stream) {
30766
+ if (this._closed) {
30767
+ for (const id of relatedIds) {
30768
+ this._requestResponseMap.delete(id);
30769
+ this._requestToStreamMapping.delete(id);
30770
+ }
30771
+ return;
30772
+ }
30773
+ if (!this._enableJsonResponse && this._eventStore && this._resumableStreams.has(streamId)) {
30774
+ for (const id of relatedIds) {
30775
+ this._requestResponseMap.delete(id);
30776
+ this._requestToStreamMapping.delete(id);
30777
+ }
30778
+ this._resumableStreams.delete(streamId);
30779
+ return;
30780
+ }
30781
+ for (const id of relatedIds) {
30782
+ this._requestResponseMap.delete(id);
30783
+ this._requestToStreamMapping.delete(id);
30784
+ }
30335
30785
  throw new Error(`No connection established for request ID: ${String(requestId)}`);
30336
30786
  }
30337
30787
  if (this._enableJsonResponse && stream.resolveJson) {
@@ -30354,6 +30804,7 @@ data:
30354
30804
  this._requestResponseMap.delete(id);
30355
30805
  this._requestToStreamMapping.delete(id);
30356
30806
  }
30807
+ this._resumableStreams.delete(streamId);
30357
30808
  }
30358
30809
  }
30359
30810
  }
@@ -30410,7 +30861,7 @@ function startMcpHttpServer(options) {
30410
30861
  // src/mcp/index.ts
30411
30862
  function getServerVersion() {
30412
30863
  try {
30413
- const packageJsonPath = join5(import.meta.dir, "..", "..", "package.json");
30864
+ const packageJsonPath = join7(import.meta.dir, "..", "..", "package.json");
30414
30865
  const pkg2 = JSON.parse(readFileSync5(packageJsonPath, "utf8"));
30415
30866
  return pkg2.version ?? "0.0.0";
30416
30867
  } catch {