@hasna/skills 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/bin/index.js +2210 -728
- package/bin/mcp.js +1828 -378
- package/bin/migrate.js +1 -1
- package/bin/server.js +226 -226
- package/bin/worker.js +189 -189
- package/dist/admin-contract.js +8 -8
- package/dist/index.js +168 -168
- package/dist/lib/execution-secrets.d.ts +40 -0
- package/dist/lib/selected-run.d.ts +19 -0
- package/dist/sdk/index.d.ts +2 -0
- package/dist/sdk/index.js +38969 -25185
- package/package.json +1 -1
package/bin/mcp.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
|
-
//
|
|
50
|
+
// node_modules/zod/v4/core/util.js
|
|
51
51
|
var exports_util = {};
|
|
52
52
|
__export(exports_util, {
|
|
53
53
|
unwrapMessage: () => unwrapMessage,
|
|
@@ -880,7 +880,7 @@ var init_util = __esm(() => {
|
|
|
880
880
|
};
|
|
881
881
|
});
|
|
882
882
|
|
|
883
|
-
//
|
|
883
|
+
// node_modules/zod/v4/core/core.js
|
|
884
884
|
function newError(Definition) {
|
|
885
885
|
const E = _E;
|
|
886
886
|
if (E) {
|
|
@@ -1006,7 +1006,7 @@ var init_core = __esm(() => {
|
|
|
1006
1006
|
globalConfig = globalThis.__zod_globalConfig;
|
|
1007
1007
|
});
|
|
1008
1008
|
|
|
1009
|
-
//
|
|
1009
|
+
// node_modules/zod/v4/core/errors.js
|
|
1010
1010
|
function _getMessage() {
|
|
1011
1011
|
const internals = this._zod;
|
|
1012
1012
|
internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2));
|
|
@@ -1207,7 +1207,7 @@ var init_errors = __esm(() => {
|
|
|
1207
1207
|
});
|
|
1208
1208
|
});
|
|
1209
1209
|
|
|
1210
|
-
//
|
|
1210
|
+
// node_modules/zod/v4/core/parse.js
|
|
1211
1211
|
function finalizeParams(callee, params) {
|
|
1212
1212
|
return { callee: params?.callee ?? callee, Err: params?.Err };
|
|
1213
1213
|
}
|
|
@@ -1342,7 +1342,7 @@ var init_parse = __esm(() => {
|
|
|
1342
1342
|
safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
|
|
1343
1343
|
});
|
|
1344
1344
|
|
|
1345
|
-
//
|
|
1345
|
+
// node_modules/zod/v4/core/regexes.js
|
|
1346
1346
|
var exports_regexes = {};
|
|
1347
1347
|
__export(exports_regexes, {
|
|
1348
1348
|
xid: () => xid,
|
|
@@ -1507,7 +1507,7 @@ var init_regexes = __esm(() => {
|
|
|
1507
1507
|
sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
|
|
1508
1508
|
});
|
|
1509
1509
|
|
|
1510
|
-
//
|
|
1510
|
+
// node_modules/zod/v4/core/checks.js
|
|
1511
1511
|
function handleCheckPropertyResult(result, payload, property) {
|
|
1512
1512
|
if (result.issues.length) {
|
|
1513
1513
|
payload.issues.push(...prefixIssues(property, result.issues));
|
|
@@ -2051,7 +2051,7 @@ var init_checks = __esm(() => {
|
|
|
2051
2051
|
});
|
|
2052
2052
|
});
|
|
2053
2053
|
|
|
2054
|
-
//
|
|
2054
|
+
// node_modules/zod/v4/core/doc.js
|
|
2055
2055
|
class Doc {
|
|
2056
2056
|
constructor(args = [], closed = {}) {
|
|
2057
2057
|
this.content = [];
|
|
@@ -2090,7 +2090,7 @@ ${content.join(`
|
|
|
2090
2090
|
}
|
|
2091
2091
|
}
|
|
2092
2092
|
|
|
2093
|
-
//
|
|
2093
|
+
// node_modules/zod/v4/core/versions.js
|
|
2094
2094
|
var version;
|
|
2095
2095
|
var init_versions = __esm(() => {
|
|
2096
2096
|
version = {
|
|
@@ -2100,7 +2100,7 @@ var init_versions = __esm(() => {
|
|
|
2100
2100
|
};
|
|
2101
2101
|
});
|
|
2102
2102
|
|
|
2103
|
-
//
|
|
2103
|
+
// node_modules/zod/v4/core/schemas.js
|
|
2104
2104
|
function standardProps(inst) {
|
|
2105
2105
|
return {
|
|
2106
2106
|
validate: (value) => {
|
|
@@ -4360,7 +4360,7 @@ var init_schemas = __esm(() => {
|
|
|
4360
4360
|
});
|
|
4361
4361
|
});
|
|
4362
4362
|
|
|
4363
|
-
//
|
|
4363
|
+
// node_modules/zod/v4/core/memoizer.js
|
|
4364
4364
|
function cloneIssues(issues) {
|
|
4365
4365
|
return issues.map((iss) => iss.path ? { ...iss, path: iss.path.slice() } : { ...iss });
|
|
4366
4366
|
}
|
|
@@ -4598,7 +4598,7 @@ var init_memoizer = __esm(() => {
|
|
|
4598
4598
|
};
|
|
4599
4599
|
});
|
|
4600
4600
|
|
|
4601
|
-
//
|
|
4601
|
+
// node_modules/zod/v4/locales/ar.js
|
|
4602
4602
|
function ar_default() {
|
|
4603
4603
|
return {
|
|
4604
4604
|
localeError: error()
|
|
@@ -4711,7 +4711,7 @@ var init_ar = __esm(() => {
|
|
|
4711
4711
|
init_util();
|
|
4712
4712
|
});
|
|
4713
4713
|
|
|
4714
|
-
//
|
|
4714
|
+
// node_modules/zod/v4/locales/az.js
|
|
4715
4715
|
function az_default() {
|
|
4716
4716
|
return {
|
|
4717
4717
|
localeError: error2()
|
|
@@ -4823,7 +4823,7 @@ var init_az = __esm(() => {
|
|
|
4823
4823
|
init_util();
|
|
4824
4824
|
});
|
|
4825
4825
|
|
|
4826
|
-
//
|
|
4826
|
+
// node_modules/zod/v4/locales/be.js
|
|
4827
4827
|
function getBelarusianPlural(count, one, few, many) {
|
|
4828
4828
|
const absCount = Math.abs(count);
|
|
4829
4829
|
const lastDigit = absCount % 10;
|
|
@@ -4993,7 +4993,7 @@ var init_be = __esm(() => {
|
|
|
4993
4993
|
init_util();
|
|
4994
4994
|
});
|
|
4995
4995
|
|
|
4996
|
-
//
|
|
4996
|
+
// node_modules/zod/v4/locales/bg.js
|
|
4997
4997
|
function bg_default() {
|
|
4998
4998
|
return {
|
|
4999
4999
|
localeError: error4()
|
|
@@ -5120,7 +5120,7 @@ var init_bg = __esm(() => {
|
|
|
5120
5120
|
init_util();
|
|
5121
5121
|
});
|
|
5122
5122
|
|
|
5123
|
-
//
|
|
5123
|
+
// node_modules/zod/v4/locales/bn.js
|
|
5124
5124
|
function bn_default() {
|
|
5125
5125
|
return {
|
|
5126
5126
|
localeError: error5()
|
|
@@ -5235,7 +5235,7 @@ var init_bn = __esm(() => {
|
|
|
5235
5235
|
init_util();
|
|
5236
5236
|
});
|
|
5237
5237
|
|
|
5238
|
-
//
|
|
5238
|
+
// node_modules/zod/v4/locales/ca.js
|
|
5239
5239
|
function ca_default() {
|
|
5240
5240
|
return {
|
|
5241
5241
|
localeError: error6()
|
|
@@ -5349,7 +5349,7 @@ var init_ca = __esm(() => {
|
|
|
5349
5349
|
init_util();
|
|
5350
5350
|
});
|
|
5351
5351
|
|
|
5352
|
-
//
|
|
5352
|
+
// node_modules/zod/v4/locales/ckb.js
|
|
5353
5353
|
function ckb_default() {
|
|
5354
5354
|
return {
|
|
5355
5355
|
localeError: error7()
|
|
@@ -5483,7 +5483,7 @@ var init_ckb = __esm(() => {
|
|
|
5483
5483
|
init_util();
|
|
5484
5484
|
});
|
|
5485
5485
|
|
|
5486
|
-
//
|
|
5486
|
+
// node_modules/zod/v4/locales/cs.js
|
|
5487
5487
|
function cs_default() {
|
|
5488
5488
|
return {
|
|
5489
5489
|
localeError: error8()
|
|
@@ -5601,7 +5601,7 @@ var init_cs = __esm(() => {
|
|
|
5601
5601
|
init_util();
|
|
5602
5602
|
});
|
|
5603
5603
|
|
|
5604
|
-
//
|
|
5604
|
+
// node_modules/zod/v4/locales/da.js
|
|
5605
5605
|
function da_default() {
|
|
5606
5606
|
return {
|
|
5607
5607
|
localeError: error9()
|
|
@@ -5723,7 +5723,7 @@ var init_da = __esm(() => {
|
|
|
5723
5723
|
init_util();
|
|
5724
5724
|
});
|
|
5725
5725
|
|
|
5726
|
-
//
|
|
5726
|
+
// node_modules/zod/v4/locales/de.js
|
|
5727
5727
|
function de_default() {
|
|
5728
5728
|
return {
|
|
5729
5729
|
localeError: error10()
|
|
@@ -5838,7 +5838,7 @@ var init_de = __esm(() => {
|
|
|
5838
5838
|
init_util();
|
|
5839
5839
|
});
|
|
5840
5840
|
|
|
5841
|
-
//
|
|
5841
|
+
// node_modules/zod/v4/locales/el.js
|
|
5842
5842
|
function el_default() {
|
|
5843
5843
|
return {
|
|
5844
5844
|
localeError: error11()
|
|
@@ -5952,7 +5952,7 @@ var init_el = __esm(() => {
|
|
|
5952
5952
|
init_util();
|
|
5953
5953
|
});
|
|
5954
5954
|
|
|
5955
|
-
//
|
|
5955
|
+
// node_modules/zod/v4/locales/en.js
|
|
5956
5956
|
function en_default() {
|
|
5957
5957
|
return {
|
|
5958
5958
|
localeError: error12()
|
|
@@ -6076,7 +6076,7 @@ var init_en = __esm(() => {
|
|
|
6076
6076
|
init_util();
|
|
6077
6077
|
});
|
|
6078
6078
|
|
|
6079
|
-
//
|
|
6079
|
+
// node_modules/zod/v4/locales/eo.js
|
|
6080
6080
|
function eo_default() {
|
|
6081
6081
|
return {
|
|
6082
6082
|
localeError: error13()
|
|
@@ -6192,7 +6192,7 @@ var init_eo = __esm(() => {
|
|
|
6192
6192
|
init_util();
|
|
6193
6193
|
});
|
|
6194
6194
|
|
|
6195
|
-
//
|
|
6195
|
+
// node_modules/zod/v4/locales/es.js
|
|
6196
6196
|
function es_default() {
|
|
6197
6197
|
return {
|
|
6198
6198
|
localeError: error14()
|
|
@@ -6330,7 +6330,7 @@ var init_es = __esm(() => {
|
|
|
6330
6330
|
init_util();
|
|
6331
6331
|
});
|
|
6332
6332
|
|
|
6333
|
-
//
|
|
6333
|
+
// node_modules/zod/v4/locales/fa.js
|
|
6334
6334
|
function fa_default() {
|
|
6335
6335
|
return {
|
|
6336
6336
|
localeError: error15()
|
|
@@ -6451,7 +6451,7 @@ var init_fa = __esm(() => {
|
|
|
6451
6451
|
init_util();
|
|
6452
6452
|
});
|
|
6453
6453
|
|
|
6454
|
-
//
|
|
6454
|
+
// node_modules/zod/v4/locales/fi.js
|
|
6455
6455
|
function fi_default() {
|
|
6456
6456
|
return {
|
|
6457
6457
|
localeError: error16()
|
|
@@ -6570,7 +6570,7 @@ var init_fi = __esm(() => {
|
|
|
6570
6570
|
init_util();
|
|
6571
6571
|
});
|
|
6572
6572
|
|
|
6573
|
-
//
|
|
6573
|
+
// node_modules/zod/v4/locales/fr.js
|
|
6574
6574
|
function fr_default() {
|
|
6575
6575
|
return {
|
|
6576
6576
|
localeError: error17()
|
|
@@ -6701,7 +6701,7 @@ var init_fr = __esm(() => {
|
|
|
6701
6701
|
init_util();
|
|
6702
6702
|
});
|
|
6703
6703
|
|
|
6704
|
-
//
|
|
6704
|
+
// node_modules/zod/v4/locales/fr-CA.js
|
|
6705
6705
|
function fr_CA_default() {
|
|
6706
6706
|
return {
|
|
6707
6707
|
localeError: error18()
|
|
@@ -6815,7 +6815,7 @@ var init_fr_CA = __esm(() => {
|
|
|
6815
6815
|
init_util();
|
|
6816
6816
|
});
|
|
6817
6817
|
|
|
6818
|
-
//
|
|
6818
|
+
// node_modules/zod/v4/locales/gu.js
|
|
6819
6819
|
function gu_default() {
|
|
6820
6820
|
return {
|
|
6821
6821
|
localeError: error19()
|
|
@@ -6930,7 +6930,7 @@ var init_gu = __esm(() => {
|
|
|
6930
6930
|
init_util();
|
|
6931
6931
|
});
|
|
6932
6932
|
|
|
6933
|
-
//
|
|
6933
|
+
// node_modules/zod/v4/locales/he.js
|
|
6934
6934
|
function he_default() {
|
|
6935
6935
|
return {
|
|
6936
6936
|
localeError: error20()
|
|
@@ -7132,7 +7132,7 @@ var init_he = __esm(() => {
|
|
|
7132
7132
|
init_util();
|
|
7133
7133
|
});
|
|
7134
7134
|
|
|
7135
|
-
//
|
|
7135
|
+
// node_modules/zod/v4/locales/hi.js
|
|
7136
7136
|
function hi_default() {
|
|
7137
7137
|
return {
|
|
7138
7138
|
localeError: error21()
|
|
@@ -7245,7 +7245,7 @@ var init_hi = __esm(() => {
|
|
|
7245
7245
|
init_util();
|
|
7246
7246
|
});
|
|
7247
7247
|
|
|
7248
|
-
//
|
|
7248
|
+
// node_modules/zod/v4/locales/hr.js
|
|
7249
7249
|
function hr_default() {
|
|
7250
7250
|
return {
|
|
7251
7251
|
localeError: error22()
|
|
@@ -7373,7 +7373,7 @@ var init_hr = __esm(() => {
|
|
|
7373
7373
|
init_util();
|
|
7374
7374
|
});
|
|
7375
7375
|
|
|
7376
|
-
//
|
|
7376
|
+
// node_modules/zod/v4/locales/hu.js
|
|
7377
7377
|
function hu_default() {
|
|
7378
7378
|
return {
|
|
7379
7379
|
localeError: error23()
|
|
@@ -7488,7 +7488,7 @@ var init_hu = __esm(() => {
|
|
|
7488
7488
|
init_util();
|
|
7489
7489
|
});
|
|
7490
7490
|
|
|
7491
|
-
//
|
|
7491
|
+
// node_modules/zod/v4/locales/hy.js
|
|
7492
7492
|
function getArmenianPlural(count, one, many) {
|
|
7493
7493
|
return Math.abs(count) === 1 ? one : many;
|
|
7494
7494
|
}
|
|
@@ -7648,7 +7648,7 @@ var init_hy = __esm(() => {
|
|
|
7648
7648
|
init_util();
|
|
7649
7649
|
});
|
|
7650
7650
|
|
|
7651
|
-
//
|
|
7651
|
+
// node_modules/zod/v4/locales/id.js
|
|
7652
7652
|
function id_default() {
|
|
7653
7653
|
return {
|
|
7654
7654
|
localeError: error25()
|
|
@@ -7761,7 +7761,7 @@ var init_id = __esm(() => {
|
|
|
7761
7761
|
init_util();
|
|
7762
7762
|
});
|
|
7763
7763
|
|
|
7764
|
-
//
|
|
7764
|
+
// node_modules/zod/v4/locales/is.js
|
|
7765
7765
|
function is_default() {
|
|
7766
7766
|
return {
|
|
7767
7767
|
localeError: error26()
|
|
@@ -7877,7 +7877,7 @@ var init_is = __esm(() => {
|
|
|
7877
7877
|
init_util();
|
|
7878
7878
|
});
|
|
7879
7879
|
|
|
7880
|
-
//
|
|
7880
|
+
// node_modules/zod/v4/locales/it.js
|
|
7881
7881
|
function it_default() {
|
|
7882
7882
|
return {
|
|
7883
7883
|
localeError: error27()
|
|
@@ -7992,7 +7992,7 @@ var init_it = __esm(() => {
|
|
|
7992
7992
|
init_util();
|
|
7993
7993
|
});
|
|
7994
7994
|
|
|
7995
|
-
//
|
|
7995
|
+
// node_modules/zod/v4/locales/ja.js
|
|
7996
7996
|
function ja_default() {
|
|
7997
7997
|
return {
|
|
7998
7998
|
localeError: error28()
|
|
@@ -8106,7 +8106,7 @@ var init_ja = __esm(() => {
|
|
|
8106
8106
|
init_util();
|
|
8107
8107
|
});
|
|
8108
8108
|
|
|
8109
|
-
//
|
|
8109
|
+
// node_modules/zod/v4/locales/ka.js
|
|
8110
8110
|
function ka_default() {
|
|
8111
8111
|
return {
|
|
8112
8112
|
localeError: error29()
|
|
@@ -8225,7 +8225,7 @@ var init_ka = __esm(() => {
|
|
|
8225
8225
|
init_util();
|
|
8226
8226
|
});
|
|
8227
8227
|
|
|
8228
|
-
//
|
|
8228
|
+
// node_modules/zod/v4/locales/km.js
|
|
8229
8229
|
function km_default() {
|
|
8230
8230
|
return {
|
|
8231
8231
|
localeError: error30()
|
|
@@ -8342,7 +8342,7 @@ var init_km = __esm(() => {
|
|
|
8342
8342
|
init_util();
|
|
8343
8343
|
});
|
|
8344
8344
|
|
|
8345
|
-
//
|
|
8345
|
+
// node_modules/zod/v4/locales/kh.js
|
|
8346
8346
|
function kh_default() {
|
|
8347
8347
|
return km_default();
|
|
8348
8348
|
}
|
|
@@ -8350,7 +8350,7 @@ var init_kh = __esm(() => {
|
|
|
8350
8350
|
init_km();
|
|
8351
8351
|
});
|
|
8352
8352
|
|
|
8353
|
-
//
|
|
8353
|
+
// node_modules/zod/v4/locales/kn.js
|
|
8354
8354
|
function kn_default() {
|
|
8355
8355
|
return {
|
|
8356
8356
|
localeError: error31()
|
|
@@ -8465,7 +8465,7 @@ var init_kn = __esm(() => {
|
|
|
8465
8465
|
init_util();
|
|
8466
8466
|
});
|
|
8467
8467
|
|
|
8468
|
-
//
|
|
8468
|
+
// node_modules/zod/v4/locales/ko.js
|
|
8469
8469
|
function ko_default() {
|
|
8470
8470
|
return {
|
|
8471
8471
|
localeError: error32()
|
|
@@ -8583,7 +8583,7 @@ var init_ko = __esm(() => {
|
|
|
8583
8583
|
init_util();
|
|
8584
8584
|
});
|
|
8585
8585
|
|
|
8586
|
-
//
|
|
8586
|
+
// node_modules/zod/v4/locales/lt.js
|
|
8587
8587
|
function getUnitTypeFromNumber(number2) {
|
|
8588
8588
|
const abs = Math.abs(number2);
|
|
8589
8589
|
const last = abs % 10;
|
|
@@ -8791,7 +8791,7 @@ var init_lt = __esm(() => {
|
|
|
8791
8791
|
init_util();
|
|
8792
8792
|
});
|
|
8793
8793
|
|
|
8794
|
-
//
|
|
8794
|
+
// node_modules/zod/v4/locales/mk.js
|
|
8795
8795
|
function mk_default() {
|
|
8796
8796
|
return {
|
|
8797
8797
|
localeError: error34()
|
|
@@ -8907,7 +8907,7 @@ var init_mk = __esm(() => {
|
|
|
8907
8907
|
init_util();
|
|
8908
8908
|
});
|
|
8909
8909
|
|
|
8910
|
-
//
|
|
8910
|
+
// node_modules/zod/v4/locales/ms.js
|
|
8911
8911
|
function ms_default() {
|
|
8912
8912
|
return {
|
|
8913
8913
|
localeError: error35()
|
|
@@ -9021,7 +9021,7 @@ var init_ms = __esm(() => {
|
|
|
9021
9021
|
init_util();
|
|
9022
9022
|
});
|
|
9023
9023
|
|
|
9024
|
-
//
|
|
9024
|
+
// node_modules/zod/v4/locales/ne.js
|
|
9025
9025
|
function ne_default() {
|
|
9026
9026
|
return {
|
|
9027
9027
|
localeError: error36()
|
|
@@ -9134,7 +9134,7 @@ var init_ne = __esm(() => {
|
|
|
9134
9134
|
init_util();
|
|
9135
9135
|
});
|
|
9136
9136
|
|
|
9137
|
-
//
|
|
9137
|
+
// node_modules/zod/v4/locales/nl.js
|
|
9138
9138
|
function nl_default() {
|
|
9139
9139
|
return {
|
|
9140
9140
|
localeError: error37()
|
|
@@ -9251,7 +9251,7 @@ var init_nl = __esm(() => {
|
|
|
9251
9251
|
init_util();
|
|
9252
9252
|
});
|
|
9253
9253
|
|
|
9254
|
-
//
|
|
9254
|
+
// node_modules/zod/v4/locales/nn.js
|
|
9255
9255
|
function nn_default() {
|
|
9256
9256
|
return {
|
|
9257
9257
|
localeError: error38()
|
|
@@ -9366,7 +9366,7 @@ var init_nn = __esm(() => {
|
|
|
9366
9366
|
init_util();
|
|
9367
9367
|
});
|
|
9368
9368
|
|
|
9369
|
-
//
|
|
9369
|
+
// node_modules/zod/v4/locales/no.js
|
|
9370
9370
|
function no_default() {
|
|
9371
9371
|
return {
|
|
9372
9372
|
localeError: error39()
|
|
@@ -9481,7 +9481,7 @@ var init_no = __esm(() => {
|
|
|
9481
9481
|
init_util();
|
|
9482
9482
|
});
|
|
9483
9483
|
|
|
9484
|
-
//
|
|
9484
|
+
// node_modules/zod/v4/locales/ota.js
|
|
9485
9485
|
function ota_default() {
|
|
9486
9486
|
return {
|
|
9487
9487
|
localeError: error40()
|
|
@@ -9597,7 +9597,7 @@ var init_ota = __esm(() => {
|
|
|
9597
9597
|
init_util();
|
|
9598
9598
|
});
|
|
9599
9599
|
|
|
9600
|
-
//
|
|
9600
|
+
// node_modules/zod/v4/locales/ps.js
|
|
9601
9601
|
function ps_default() {
|
|
9602
9602
|
return {
|
|
9603
9603
|
localeError: error41()
|
|
@@ -9718,7 +9718,7 @@ var init_ps = __esm(() => {
|
|
|
9718
9718
|
init_util();
|
|
9719
9719
|
});
|
|
9720
9720
|
|
|
9721
|
-
//
|
|
9721
|
+
// node_modules/zod/v4/locales/pl.js
|
|
9722
9722
|
function pl_default() {
|
|
9723
9723
|
return {
|
|
9724
9724
|
localeError: error42()
|
|
@@ -9834,7 +9834,7 @@ var init_pl = __esm(() => {
|
|
|
9834
9834
|
init_util();
|
|
9835
9835
|
});
|
|
9836
9836
|
|
|
9837
|
-
//
|
|
9837
|
+
// node_modules/zod/v4/locales/pt.js
|
|
9838
9838
|
function pt_default() {
|
|
9839
9839
|
return {
|
|
9840
9840
|
localeError: error43()
|
|
@@ -9978,7 +9978,7 @@ var init_pt = __esm(() => {
|
|
|
9978
9978
|
init_util();
|
|
9979
9979
|
});
|
|
9980
9980
|
|
|
9981
|
-
//
|
|
9981
|
+
// node_modules/zod/v4/locales/pt-BR.js
|
|
9982
9982
|
function pt_BR_default() {
|
|
9983
9983
|
return {
|
|
9984
9984
|
localeError: error44()
|
|
@@ -10123,7 +10123,7 @@ var init_pt_BR = __esm(() => {
|
|
|
10123
10123
|
init_util();
|
|
10124
10124
|
});
|
|
10125
10125
|
|
|
10126
|
-
//
|
|
10126
|
+
// node_modules/zod/v4/locales/ro.js
|
|
10127
10127
|
function ro_default() {
|
|
10128
10128
|
return {
|
|
10129
10129
|
localeError: error45()
|
|
@@ -10247,7 +10247,7 @@ var init_ro = __esm(() => {
|
|
|
10247
10247
|
init_util();
|
|
10248
10248
|
});
|
|
10249
10249
|
|
|
10250
|
-
//
|
|
10250
|
+
// node_modules/zod/v4/locales/ru.js
|
|
10251
10251
|
function getRussianPlural(count, one, few, many) {
|
|
10252
10252
|
const absCount = Math.abs(count);
|
|
10253
10253
|
const lastDigit = absCount % 10;
|
|
@@ -10417,7 +10417,7 @@ var init_ru = __esm(() => {
|
|
|
10417
10417
|
init_util();
|
|
10418
10418
|
});
|
|
10419
10419
|
|
|
10420
|
-
//
|
|
10420
|
+
// node_modules/zod/v4/locales/sk.js
|
|
10421
10421
|
function sk_default() {
|
|
10422
10422
|
return {
|
|
10423
10423
|
localeError: error47()
|
|
@@ -10535,7 +10535,7 @@ var init_sk = __esm(() => {
|
|
|
10535
10535
|
init_util();
|
|
10536
10536
|
});
|
|
10537
10537
|
|
|
10538
|
-
//
|
|
10538
|
+
// node_modules/zod/v4/locales/sl.js
|
|
10539
10539
|
function sl_default() {
|
|
10540
10540
|
return {
|
|
10541
10541
|
localeError: error48()
|
|
@@ -10651,7 +10651,7 @@ var init_sl = __esm(() => {
|
|
|
10651
10651
|
init_util();
|
|
10652
10652
|
});
|
|
10653
10653
|
|
|
10654
|
-
//
|
|
10654
|
+
// node_modules/zod/v4/locales/sv.js
|
|
10655
10655
|
function sv_default() {
|
|
10656
10656
|
return {
|
|
10657
10657
|
localeError: error49()
|
|
@@ -10768,7 +10768,7 @@ var init_sv = __esm(() => {
|
|
|
10768
10768
|
init_util();
|
|
10769
10769
|
});
|
|
10770
10770
|
|
|
10771
|
-
//
|
|
10771
|
+
// node_modules/zod/v4/locales/ta.js
|
|
10772
10772
|
function ta_default() {
|
|
10773
10773
|
return {
|
|
10774
10774
|
localeError: error50()
|
|
@@ -10885,7 +10885,7 @@ var init_ta = __esm(() => {
|
|
|
10885
10885
|
init_util();
|
|
10886
10886
|
});
|
|
10887
10887
|
|
|
10888
|
-
//
|
|
10888
|
+
// node_modules/zod/v4/locales/th.js
|
|
10889
10889
|
function th_default() {
|
|
10890
10890
|
return {
|
|
10891
10891
|
localeError: error51()
|
|
@@ -11002,7 +11002,7 @@ var init_th = __esm(() => {
|
|
|
11002
11002
|
init_util();
|
|
11003
11003
|
});
|
|
11004
11004
|
|
|
11005
|
-
//
|
|
11005
|
+
// node_modules/zod/v4/locales/tk.js
|
|
11006
11006
|
function tk_default() {
|
|
11007
11007
|
return {
|
|
11008
11008
|
localeError: error52()
|
|
@@ -11111,7 +11111,7 @@ var init_tk = __esm(() => {
|
|
|
11111
11111
|
init_util();
|
|
11112
11112
|
});
|
|
11113
11113
|
|
|
11114
|
-
//
|
|
11114
|
+
// node_modules/zod/v4/locales/tr.js
|
|
11115
11115
|
function tr_default() {
|
|
11116
11116
|
return {
|
|
11117
11117
|
localeError: error53()
|
|
@@ -11223,7 +11223,7 @@ var init_tr = __esm(() => {
|
|
|
11223
11223
|
init_util();
|
|
11224
11224
|
});
|
|
11225
11225
|
|
|
11226
|
-
//
|
|
11226
|
+
// node_modules/zod/v4/locales/uk.js
|
|
11227
11227
|
function uk_default() {
|
|
11228
11228
|
return {
|
|
11229
11229
|
localeError: error54()
|
|
@@ -11338,7 +11338,7 @@ var init_uk = __esm(() => {
|
|
|
11338
11338
|
init_util();
|
|
11339
11339
|
});
|
|
11340
11340
|
|
|
11341
|
-
//
|
|
11341
|
+
// node_modules/zod/v4/locales/ua.js
|
|
11342
11342
|
function ua_default() {
|
|
11343
11343
|
return uk_default();
|
|
11344
11344
|
}
|
|
@@ -11346,7 +11346,7 @@ var init_ua = __esm(() => {
|
|
|
11346
11346
|
init_uk();
|
|
11347
11347
|
});
|
|
11348
11348
|
|
|
11349
|
-
//
|
|
11349
|
+
// node_modules/zod/v4/locales/ur.js
|
|
11350
11350
|
function ur_default() {
|
|
11351
11351
|
return {
|
|
11352
11352
|
localeError: error55()
|
|
@@ -11463,7 +11463,7 @@ var init_ur = __esm(() => {
|
|
|
11463
11463
|
init_util();
|
|
11464
11464
|
});
|
|
11465
11465
|
|
|
11466
|
-
//
|
|
11466
|
+
// node_modules/zod/v4/locales/uz.js
|
|
11467
11467
|
function uz_default() {
|
|
11468
11468
|
return {
|
|
11469
11469
|
localeError: error56()
|
|
@@ -11578,7 +11578,7 @@ var init_uz = __esm(() => {
|
|
|
11578
11578
|
init_util();
|
|
11579
11579
|
});
|
|
11580
11580
|
|
|
11581
|
-
//
|
|
11581
|
+
// node_modules/zod/v4/locales/vi.js
|
|
11582
11582
|
function vi_default() {
|
|
11583
11583
|
return {
|
|
11584
11584
|
localeError: error57()
|
|
@@ -11693,7 +11693,7 @@ var init_vi = __esm(() => {
|
|
|
11693
11693
|
init_util();
|
|
11694
11694
|
});
|
|
11695
11695
|
|
|
11696
|
-
//
|
|
11696
|
+
// node_modules/zod/v4/locales/zh-CN.js
|
|
11697
11697
|
function zh_CN_default() {
|
|
11698
11698
|
return {
|
|
11699
11699
|
localeError: error58()
|
|
@@ -11809,7 +11809,7 @@ var init_zh_CN = __esm(() => {
|
|
|
11809
11809
|
init_util();
|
|
11810
11810
|
});
|
|
11811
11811
|
|
|
11812
|
-
//
|
|
11812
|
+
// node_modules/zod/v4/locales/zh-TW.js
|
|
11813
11813
|
function zh_TW_default() {
|
|
11814
11814
|
return {
|
|
11815
11815
|
localeError: error59()
|
|
@@ -11923,7 +11923,7 @@ var init_zh_TW = __esm(() => {
|
|
|
11923
11923
|
init_util();
|
|
11924
11924
|
});
|
|
11925
11925
|
|
|
11926
|
-
//
|
|
11926
|
+
// node_modules/zod/v4/locales/yo.js
|
|
11927
11927
|
function yo_default() {
|
|
11928
11928
|
return {
|
|
11929
11929
|
localeError: error60()
|
|
@@ -12037,7 +12037,7 @@ var init_yo = __esm(() => {
|
|
|
12037
12037
|
init_util();
|
|
12038
12038
|
});
|
|
12039
12039
|
|
|
12040
|
-
//
|
|
12040
|
+
// node_modules/zod/v4/locales/index.js
|
|
12041
12041
|
var exports_locales = {};
|
|
12042
12042
|
__export(exports_locales, {
|
|
12043
12043
|
zhTW: () => zh_TW_default,
|
|
@@ -12168,7 +12168,7 @@ var init_locales = __esm(() => {
|
|
|
12168
12168
|
init_yo();
|
|
12169
12169
|
});
|
|
12170
12170
|
|
|
12171
|
-
//
|
|
12171
|
+
// node_modules/zod/v4/core/registries.js
|
|
12172
12172
|
class $ZodRegistry {
|
|
12173
12173
|
constructor() {
|
|
12174
12174
|
this._map = new WeakMap;
|
|
@@ -12220,7 +12220,7 @@ var init_registries = __esm(() => {
|
|
|
12220
12220
|
globalRegistry = globalThis.__zod_globalRegistry;
|
|
12221
12221
|
});
|
|
12222
12222
|
|
|
12223
|
-
//
|
|
12223
|
+
// node_modules/zod/v4/core/compile.js
|
|
12224
12224
|
function compileValidator(schema, parser) {
|
|
12225
12225
|
try {
|
|
12226
12226
|
return compileFn(schema, { assertOnly: true });
|
|
@@ -13766,7 +13766,7 @@ var init_compile = __esm(() => {
|
|
|
13766
13766
|
]);
|
|
13767
13767
|
});
|
|
13768
13768
|
|
|
13769
|
-
//
|
|
13769
|
+
// node_modules/zod/v4/core/api.js
|
|
13770
13770
|
function _string(Class2, params) {
|
|
13771
13771
|
return new Class2({
|
|
13772
13772
|
type: "string",
|
|
@@ -14709,7 +14709,7 @@ var init_api = __esm(() => {
|
|
|
14709
14709
|
};
|
|
14710
14710
|
});
|
|
14711
14711
|
|
|
14712
|
-
//
|
|
14712
|
+
// node_modules/zod/v4/core/to-json-schema.js
|
|
14713
14713
|
function assignProps(target, ...sources) {
|
|
14714
14714
|
for (const source of sources) {
|
|
14715
14715
|
for (const key of Reflect.ownKeys(source)) {
|
|
@@ -15237,7 +15237,7 @@ var init_to_json_schema = __esm(() => {
|
|
|
15237
15237
|
UNION_KEYS = ["oneOf", "anyOf"];
|
|
15238
15238
|
});
|
|
15239
15239
|
|
|
15240
|
-
//
|
|
15240
|
+
// node_modules/zod/v4/core/json-schema-processors.js
|
|
15241
15241
|
function inputOptin(schema) {
|
|
15242
15242
|
const def = schema._zod.def;
|
|
15243
15243
|
if (def.type === "pipe" && def.in._zod.traits.has("$ZodTransform")) {
|
|
@@ -15858,7 +15858,7 @@ var init_json_schema_processors = __esm(() => {
|
|
|
15858
15858
|
};
|
|
15859
15859
|
});
|
|
15860
15860
|
|
|
15861
|
-
//
|
|
15861
|
+
// node_modules/zod/v4/core/json-schema-generator.js
|
|
15862
15862
|
class JSONSchemaGenerator {
|
|
15863
15863
|
get metadataRegistry() {
|
|
15864
15864
|
return this.ctx.metadataRegistry;
|
|
@@ -15924,11 +15924,11 @@ var init_json_schema_generator = __esm(() => {
|
|
|
15924
15924
|
init_to_json_schema();
|
|
15925
15925
|
});
|
|
15926
15926
|
|
|
15927
|
-
//
|
|
15927
|
+
// node_modules/zod/v4/core/json-schema.js
|
|
15928
15928
|
var exports_json_schema = {};
|
|
15929
15929
|
var init_json_schema = () => {};
|
|
15930
15930
|
|
|
15931
|
-
//
|
|
15931
|
+
// node_modules/zod/v4/core/index.js
|
|
15932
15932
|
var exports_core2 = {};
|
|
15933
15933
|
__export(exports_core2, {
|
|
15934
15934
|
version: () => version,
|
|
@@ -16255,7 +16255,7 @@ var init_core2 = __esm(() => {
|
|
|
16255
16255
|
init_to_json_schema();
|
|
16256
16256
|
});
|
|
16257
16257
|
|
|
16258
|
-
//
|
|
16258
|
+
// node_modules/zod/v4/classic/checks.js
|
|
16259
16259
|
var exports_checks2 = {};
|
|
16260
16260
|
__export(exports_checks2, {
|
|
16261
16261
|
uppercase: () => _uppercase,
|
|
@@ -16293,7 +16293,7 @@ var init_checks2 = __esm(() => {
|
|
|
16293
16293
|
init_core2();
|
|
16294
16294
|
});
|
|
16295
16295
|
|
|
16296
|
-
//
|
|
16296
|
+
// node_modules/zod/v4/classic/errors.js
|
|
16297
16297
|
function _lazyMethod(proto, key, make) {
|
|
16298
16298
|
Object.defineProperty(proto, key, {
|
|
16299
16299
|
configurable: true,
|
|
@@ -16344,7 +16344,7 @@ var init_errors2 = __esm(() => {
|
|
|
16344
16344
|
});
|
|
16345
16345
|
});
|
|
16346
16346
|
|
|
16347
|
-
//
|
|
16347
|
+
// node_modules/zod/v4/classic/parse.js
|
|
16348
16348
|
var parse3, parseAsync2, safeParse2, safeParseAsync2, encode2, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2;
|
|
16349
16349
|
var init_parse2 = __esm(() => {
|
|
16350
16350
|
init_core2();
|
|
@@ -16364,7 +16364,7 @@ var init_parse2 = __esm(() => {
|
|
|
16364
16364
|
safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
16365
16365
|
});
|
|
16366
16366
|
|
|
16367
|
-
//
|
|
16367
|
+
// node_modules/zod/v4/classic/schemas.js
|
|
16368
16368
|
var exports_schemas2 = {};
|
|
16369
16369
|
__export(exports_schemas2, {
|
|
16370
16370
|
xor: () => xor,
|
|
@@ -17953,7 +17953,7 @@ var init_schemas2 = __esm(() => {
|
|
|
17953
17953
|
meta2 = meta;
|
|
17954
17954
|
});
|
|
17955
17955
|
|
|
17956
|
-
//
|
|
17956
|
+
// node_modules/zod/v4/classic/compat.js
|
|
17957
17957
|
function setErrorMap(map2) {
|
|
17958
17958
|
config({
|
|
17959
17959
|
customError: map2
|
|
@@ -17981,7 +17981,7 @@ var init_compat = __esm(() => {
|
|
|
17981
17981
|
(function(ZodFirstPartyTypeKind2) {})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
|
|
17982
17982
|
});
|
|
17983
17983
|
|
|
17984
|
-
//
|
|
17984
|
+
// node_modules/zod/v4/classic/iso.js
|
|
17985
17985
|
var exports_iso = {};
|
|
17986
17986
|
__export(exports_iso, {
|
|
17987
17987
|
time: () => time2,
|
|
@@ -18011,7 +18011,7 @@ var init_iso = __esm(() => {
|
|
|
18011
18011
|
init_schemas2();
|
|
18012
18012
|
});
|
|
18013
18013
|
|
|
18014
|
-
//
|
|
18014
|
+
// node_modules/zod/v4/classic/from-json-schema.js
|
|
18015
18015
|
function detectVersion(schema, defaultTarget) {
|
|
18016
18016
|
const $schema = schema.$schema;
|
|
18017
18017
|
if ($schema === "https://json-schema.org/draft/2020-12/schema") {
|
|
@@ -18547,7 +18547,7 @@ var init_from_json_schema = __esm(() => {
|
|
|
18547
18547
|
fullTime = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;
|
|
18548
18548
|
});
|
|
18549
18549
|
|
|
18550
|
-
//
|
|
18550
|
+
// node_modules/zod/v4/core/visit.js
|
|
18551
18551
|
function visit(schema, fnOrHandlers) {
|
|
18552
18552
|
const fn = typeof fnOrHandlers === "function" ? fnOrHandlers : (node2, rewritten) => {
|
|
18553
18553
|
const h = fnOrHandlers[node2._zod.def.type];
|
|
@@ -18704,7 +18704,7 @@ var init_visit = __esm(() => {
|
|
|
18704
18704
|
RESOLVING = Symbol("z.visit/resolving");
|
|
18705
18705
|
});
|
|
18706
18706
|
|
|
18707
|
-
//
|
|
18707
|
+
// node_modules/zod/v4/classic/deep-partial.js
|
|
18708
18708
|
function deepPartial(schema) {
|
|
18709
18709
|
return visit(schema, {
|
|
18710
18710
|
object: (s) => s.partial(),
|
|
@@ -18719,7 +18719,7 @@ var init_deep_partial = __esm(() => {
|
|
|
18719
18719
|
init_schemas2();
|
|
18720
18720
|
});
|
|
18721
18721
|
|
|
18722
|
-
//
|
|
18722
|
+
// node_modules/zod/v4/classic/in-out.js
|
|
18723
18723
|
function withChecks(side, checks2) {
|
|
18724
18724
|
if (!checks2?.length)
|
|
18725
18725
|
return side;
|
|
@@ -18751,7 +18751,7 @@ var init_in_out = __esm(() => {
|
|
|
18751
18751
|
init_schemas2();
|
|
18752
18752
|
});
|
|
18753
18753
|
|
|
18754
|
-
//
|
|
18754
|
+
// node_modules/zod/v4/classic/coerce.js
|
|
18755
18755
|
var exports_coerce = {};
|
|
18756
18756
|
__export(exports_coerce, {
|
|
18757
18757
|
string: () => string3,
|
|
@@ -18780,7 +18780,7 @@ var init_coerce = __esm(() => {
|
|
|
18780
18780
|
init_schemas2();
|
|
18781
18781
|
});
|
|
18782
18782
|
|
|
18783
|
-
//
|
|
18783
|
+
// node_modules/zod/v4/classic/external.js
|
|
18784
18784
|
var exports_external = {};
|
|
18785
18785
|
__export(exports_external, {
|
|
18786
18786
|
xor: () => xor,
|
|
@@ -19054,18 +19054,18 @@ var init_external = __esm(() => {
|
|
|
19054
19054
|
init_compat();
|
|
19055
19055
|
});
|
|
19056
19056
|
|
|
19057
|
-
//
|
|
19057
|
+
// node_modules/zod/v4/classic/index.js
|
|
19058
19058
|
var init_classic = __esm(() => {
|
|
19059
19059
|
init_external();
|
|
19060
19060
|
init_external();
|
|
19061
19061
|
});
|
|
19062
19062
|
|
|
19063
|
-
//
|
|
19063
|
+
// node_modules/zod/v4/index.js
|
|
19064
19064
|
var init_v4 = __esm(() => {
|
|
19065
19065
|
init_classic();
|
|
19066
19066
|
});
|
|
19067
19067
|
|
|
19068
|
-
//
|
|
19068
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
|
|
19069
19069
|
function assertCompleteRequestPrompt(request) {
|
|
19070
19070
|
if (request.params.ref.type !== "ref/prompt") {
|
|
19071
19071
|
throw new TypeError(`Expected CompleteRequestPrompt, but got ${request.params.ref.type}`);
|
|
@@ -19903,7 +19903,7 @@ var init_types = __esm(() => {
|
|
|
19903
19903
|
};
|
|
19904
19904
|
});
|
|
19905
19905
|
|
|
19906
|
-
//
|
|
19906
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
|
|
19907
19907
|
class ReadBuffer {
|
|
19908
19908
|
constructor(options) {
|
|
19909
19909
|
this._maxBufferSize = options?.maxBufferSize ?? STDIO_DEFAULT_MAX_BUFFER_SIZE;
|
|
@@ -19946,7 +19946,7 @@ var init_stdio = __esm(() => {
|
|
|
19946
19946
|
STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
|
|
19947
19947
|
});
|
|
19948
19948
|
|
|
19949
|
-
//
|
|
19949
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
19950
19950
|
import process3 from "process";
|
|
19951
19951
|
|
|
19952
19952
|
class StdioServerTransport {
|
|
@@ -20019,7 +20019,7 @@ var package_default;
|
|
|
20019
20019
|
var init_package = __esm(() => {
|
|
20020
20020
|
package_default = {
|
|
20021
20021
|
name: "@hasna/skills",
|
|
20022
|
-
version: "0.8.
|
|
20022
|
+
version: "0.8.2",
|
|
20023
20023
|
description: "Skills library for AI coding agents",
|
|
20024
20024
|
type: "module",
|
|
20025
20025
|
bin: {
|
|
@@ -20147,7 +20147,7 @@ var init_package = __esm(() => {
|
|
|
20147
20147
|
};
|
|
20148
20148
|
});
|
|
20149
20149
|
|
|
20150
|
-
//
|
|
20150
|
+
// node_modules/@hasna/contracts/dist/client/transport.js
|
|
20151
20151
|
import { isIP } from "net";
|
|
20152
20152
|
import { spawnSync } from "child_process";
|
|
20153
20153
|
import { closeSync as closeSync2, fstatSync as fstatSync2, openSync as openSync2, readFileSync as readFileSync2 } from "fs";
|
|
@@ -21388,7 +21388,7 @@ var init_fleet_credentials = __esm(() => {
|
|
|
21388
21388
|
};
|
|
21389
21389
|
});
|
|
21390
21390
|
|
|
21391
|
-
//
|
|
21391
|
+
// node_modules/zod/v3/helpers/util.js
|
|
21392
21392
|
var util, objectUtil, ZodParsedType, getParsedType2 = (data) => {
|
|
21393
21393
|
const t2 = typeof data;
|
|
21394
21394
|
switch (t2) {
|
|
@@ -21519,7 +21519,7 @@ var init_util2 = __esm(() => {
|
|
|
21519
21519
|
]);
|
|
21520
21520
|
});
|
|
21521
21521
|
|
|
21522
|
-
//
|
|
21522
|
+
// node_modules/zod/v3/ZodError.js
|
|
21523
21523
|
var ZodIssueCode2, ZodError2;
|
|
21524
21524
|
var init_ZodError = __esm(() => {
|
|
21525
21525
|
init_util2();
|
|
@@ -21652,7 +21652,7 @@ var init_ZodError = __esm(() => {
|
|
|
21652
21652
|
};
|
|
21653
21653
|
});
|
|
21654
21654
|
|
|
21655
|
-
//
|
|
21655
|
+
// node_modules/zod/v3/locales/en.js
|
|
21656
21656
|
var errorMap = (issue2, _ctx) => {
|
|
21657
21657
|
let message;
|
|
21658
21658
|
switch (issue2.code) {
|
|
@@ -21759,7 +21759,7 @@ var init_en2 = __esm(() => {
|
|
|
21759
21759
|
en_default2 = errorMap;
|
|
21760
21760
|
});
|
|
21761
21761
|
|
|
21762
|
-
//
|
|
21762
|
+
// node_modules/zod/v3/errors.js
|
|
21763
21763
|
function getErrorMap2() {
|
|
21764
21764
|
return overrideErrorMap;
|
|
21765
21765
|
}
|
|
@@ -21769,7 +21769,7 @@ var init_errors3 = __esm(() => {
|
|
|
21769
21769
|
overrideErrorMap = en_default2;
|
|
21770
21770
|
});
|
|
21771
21771
|
|
|
21772
|
-
//
|
|
21772
|
+
// node_modules/zod/v3/helpers/parseUtil.js
|
|
21773
21773
|
function addIssueToContext(ctx, issueData) {
|
|
21774
21774
|
const overrideMap = getErrorMap2();
|
|
21775
21775
|
const issue2 = makeIssue({
|
|
@@ -21873,10 +21873,10 @@ var init_parseUtil = __esm(() => {
|
|
|
21873
21873
|
});
|
|
21874
21874
|
});
|
|
21875
21875
|
|
|
21876
|
-
//
|
|
21876
|
+
// node_modules/zod/v3/helpers/typeAliases.js
|
|
21877
21877
|
var init_typeAliases = () => {};
|
|
21878
21878
|
|
|
21879
|
-
//
|
|
21879
|
+
// node_modules/zod/v3/helpers/errorUtil.js
|
|
21880
21880
|
var errorUtil;
|
|
21881
21881
|
var init_errorUtil = __esm(() => {
|
|
21882
21882
|
(function(errorUtil2) {
|
|
@@ -21885,7 +21885,7 @@ var init_errorUtil = __esm(() => {
|
|
|
21885
21885
|
})(errorUtil || (errorUtil = {}));
|
|
21886
21886
|
});
|
|
21887
21887
|
|
|
21888
|
-
//
|
|
21888
|
+
// node_modules/zod/v3/types.js
|
|
21889
21889
|
class ParseInputLazyPath {
|
|
21890
21890
|
constructor(parent, value, path, key) {
|
|
21891
21891
|
this._cachedPath = [];
|
|
@@ -25200,7 +25200,7 @@ var init_types2 = __esm(() => {
|
|
|
25200
25200
|
pipelineType = ZodPipeline.create;
|
|
25201
25201
|
});
|
|
25202
25202
|
|
|
25203
|
-
//
|
|
25203
|
+
// node_modules/zod/v3/external.js
|
|
25204
25204
|
var init_external2 = __esm(() => {
|
|
25205
25205
|
init_errors3();
|
|
25206
25206
|
init_parseUtil();
|
|
@@ -25210,17 +25210,17 @@ var init_external2 = __esm(() => {
|
|
|
25210
25210
|
init_ZodError();
|
|
25211
25211
|
});
|
|
25212
25212
|
|
|
25213
|
-
//
|
|
25213
|
+
// node_modules/zod/v3/index.js
|
|
25214
25214
|
var init_v3 = __esm(() => {
|
|
25215
25215
|
init_external2();
|
|
25216
25216
|
});
|
|
25217
25217
|
|
|
25218
|
-
//
|
|
25218
|
+
// node_modules/zod/v4/mini/parse.js
|
|
25219
25219
|
var init_parse3 = __esm(() => {
|
|
25220
25220
|
init_core2();
|
|
25221
25221
|
});
|
|
25222
25222
|
|
|
25223
|
-
//
|
|
25223
|
+
// node_modules/zod/v4/mini/schemas.js
|
|
25224
25224
|
function object2(shape, params) {
|
|
25225
25225
|
const def = {
|
|
25226
25226
|
type: "object",
|
|
@@ -25290,16 +25290,16 @@ var init_schemas3 = __esm(() => {
|
|
|
25290
25290
|
});
|
|
25291
25291
|
});
|
|
25292
25292
|
|
|
25293
|
-
//
|
|
25293
|
+
// node_modules/zod/v4/mini/checks.js
|
|
25294
25294
|
var init_checks3 = () => {};
|
|
25295
25295
|
|
|
25296
|
-
//
|
|
25296
|
+
// node_modules/zod/v4/mini/iso.js
|
|
25297
25297
|
var init_iso2 = () => {};
|
|
25298
25298
|
|
|
25299
|
-
//
|
|
25299
|
+
// node_modules/zod/v4/mini/coerce.js
|
|
25300
25300
|
var init_coerce2 = () => {};
|
|
25301
25301
|
|
|
25302
|
-
//
|
|
25302
|
+
// node_modules/zod/v4/mini/external.js
|
|
25303
25303
|
var init_external3 = __esm(() => {
|
|
25304
25304
|
init_core2();
|
|
25305
25305
|
init_json_schema_processors();
|
|
@@ -25311,12 +25311,12 @@ var init_external3 = __esm(() => {
|
|
|
25311
25311
|
init_checks3();
|
|
25312
25312
|
});
|
|
25313
25313
|
|
|
25314
|
-
//
|
|
25314
|
+
// node_modules/zod/v4-mini/index.js
|
|
25315
25315
|
var init_v4_mini = __esm(() => {
|
|
25316
25316
|
init_external3();
|
|
25317
25317
|
});
|
|
25318
25318
|
|
|
25319
|
-
//
|
|
25319
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
|
|
25320
25320
|
function isZ4Schema(s) {
|
|
25321
25321
|
const schema = s;
|
|
25322
25322
|
return !!schema._zod;
|
|
@@ -25481,12 +25481,12 @@ var init_zod_compat = __esm(() => {
|
|
|
25481
25481
|
init_v4_mini();
|
|
25482
25482
|
});
|
|
25483
25483
|
|
|
25484
|
-
//
|
|
25484
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
|
|
25485
25485
|
function isTerminal(status) {
|
|
25486
25486
|
return status === "completed" || status === "failed" || status === "cancelled";
|
|
25487
25487
|
}
|
|
25488
25488
|
|
|
25489
|
-
//
|
|
25489
|
+
// node_modules/zod-to-json-schema/dist/esm/Options.js
|
|
25490
25490
|
var ignoreOverride, defaultOptions, getDefaultOptions = (options) => typeof options === "string" ? {
|
|
25491
25491
|
...defaultOptions,
|
|
25492
25492
|
name: options
|
|
@@ -25522,7 +25522,7 @@ var init_Options = __esm(() => {
|
|
|
25522
25522
|
};
|
|
25523
25523
|
});
|
|
25524
25524
|
|
|
25525
|
-
//
|
|
25525
|
+
// node_modules/zod-to-json-schema/dist/esm/Refs.js
|
|
25526
25526
|
var getRefs = (options) => {
|
|
25527
25527
|
const _options = getDefaultOptions(options);
|
|
25528
25528
|
const currentPath = _options.name !== undefined ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
|
|
@@ -25545,7 +25545,7 @@ var init_Refs = __esm(() => {
|
|
|
25545
25545
|
init_Options();
|
|
25546
25546
|
});
|
|
25547
25547
|
|
|
25548
|
-
//
|
|
25548
|
+
// node_modules/zod-to-json-schema/dist/esm/errorMessages.js
|
|
25549
25549
|
function addErrorMessage(res, key, errorMessage, refs) {
|
|
25550
25550
|
if (!refs?.errorMessages)
|
|
25551
25551
|
return;
|
|
@@ -25561,7 +25561,7 @@ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
|
|
|
25561
25561
|
addErrorMessage(res, key, errorMessage, refs);
|
|
25562
25562
|
}
|
|
25563
25563
|
|
|
25564
|
-
//
|
|
25564
|
+
// node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
|
|
25565
25565
|
var getRelativePath = (pathA, pathB) => {
|
|
25566
25566
|
let i = 0;
|
|
25567
25567
|
for (;i < pathA.length && i < pathB.length; i++) {
|
|
@@ -25571,7 +25571,7 @@ var getRelativePath = (pathA, pathB) => {
|
|
|
25571
25571
|
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
|
|
25572
25572
|
};
|
|
25573
25573
|
|
|
25574
|
-
//
|
|
25574
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/any.js
|
|
25575
25575
|
function parseAnyDef(refs) {
|
|
25576
25576
|
if (refs.target !== "openAi") {
|
|
25577
25577
|
return {};
|
|
@@ -25588,7 +25588,7 @@ function parseAnyDef(refs) {
|
|
|
25588
25588
|
}
|
|
25589
25589
|
var init_any = () => {};
|
|
25590
25590
|
|
|
25591
|
-
//
|
|
25591
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/array.js
|
|
25592
25592
|
function parseArrayDef(def, refs) {
|
|
25593
25593
|
const res = {
|
|
25594
25594
|
type: "array"
|
|
@@ -25616,7 +25616,7 @@ var init_array = __esm(() => {
|
|
|
25616
25616
|
init_parseDef();
|
|
25617
25617
|
});
|
|
25618
25618
|
|
|
25619
|
-
//
|
|
25619
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
|
|
25620
25620
|
function parseBigintDef(def, refs) {
|
|
25621
25621
|
const res = {
|
|
25622
25622
|
type: "integer",
|
|
@@ -25663,14 +25663,14 @@ function parseBigintDef(def, refs) {
|
|
|
25663
25663
|
}
|
|
25664
25664
|
var init_bigint = () => {};
|
|
25665
25665
|
|
|
25666
|
-
//
|
|
25666
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
|
|
25667
25667
|
function parseBooleanDef() {
|
|
25668
25668
|
return {
|
|
25669
25669
|
type: "boolean"
|
|
25670
25670
|
};
|
|
25671
25671
|
}
|
|
25672
25672
|
|
|
25673
|
-
//
|
|
25673
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
|
|
25674
25674
|
function parseBrandedDef(_def, refs) {
|
|
25675
25675
|
return parseDef(_def.type._def, refs);
|
|
25676
25676
|
}
|
|
@@ -25678,7 +25678,7 @@ var init_branded = __esm(() => {
|
|
|
25678
25678
|
init_parseDef();
|
|
25679
25679
|
});
|
|
25680
25680
|
|
|
25681
|
-
//
|
|
25681
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
|
|
25682
25682
|
var parseCatchDef = (def, refs) => {
|
|
25683
25683
|
return parseDef(def.innerType._def, refs);
|
|
25684
25684
|
};
|
|
@@ -25686,7 +25686,7 @@ var init_catch = __esm(() => {
|
|
|
25686
25686
|
init_parseDef();
|
|
25687
25687
|
});
|
|
25688
25688
|
|
|
25689
|
-
//
|
|
25689
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/date.js
|
|
25690
25690
|
function parseDateDef(def, refs, overrideDateStrategy) {
|
|
25691
25691
|
const strategy = overrideDateStrategy ?? refs.dateStrategy;
|
|
25692
25692
|
if (Array.isArray(strategy)) {
|
|
@@ -25732,7 +25732,7 @@ var integerDateParser = (def, refs) => {
|
|
|
25732
25732
|
};
|
|
25733
25733
|
var init_date = () => {};
|
|
25734
25734
|
|
|
25735
|
-
//
|
|
25735
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/default.js
|
|
25736
25736
|
function parseDefaultDef(_def, refs) {
|
|
25737
25737
|
return {
|
|
25738
25738
|
...parseDef(_def.innerType._def, refs),
|
|
@@ -25743,7 +25743,7 @@ var init_default = __esm(() => {
|
|
|
25743
25743
|
init_parseDef();
|
|
25744
25744
|
});
|
|
25745
25745
|
|
|
25746
|
-
//
|
|
25746
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
|
|
25747
25747
|
function parseEffectsDef(_def, refs) {
|
|
25748
25748
|
return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
|
|
25749
25749
|
}
|
|
@@ -25752,7 +25752,7 @@ var init_effects = __esm(() => {
|
|
|
25752
25752
|
init_any();
|
|
25753
25753
|
});
|
|
25754
25754
|
|
|
25755
|
-
//
|
|
25755
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
|
|
25756
25756
|
function parseEnumDef(def) {
|
|
25757
25757
|
return {
|
|
25758
25758
|
type: "string",
|
|
@@ -25760,7 +25760,7 @@ function parseEnumDef(def) {
|
|
|
25760
25760
|
};
|
|
25761
25761
|
}
|
|
25762
25762
|
|
|
25763
|
-
//
|
|
25763
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
|
|
25764
25764
|
function parseIntersectionDef(def, refs) {
|
|
25765
25765
|
const allOf = [
|
|
25766
25766
|
parseDef(def.left._def, {
|
|
@@ -25805,7 +25805,7 @@ var init_intersection = __esm(() => {
|
|
|
25805
25805
|
init_parseDef();
|
|
25806
25806
|
});
|
|
25807
25807
|
|
|
25808
|
-
//
|
|
25808
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
|
|
25809
25809
|
function parseLiteralDef(def, refs) {
|
|
25810
25810
|
const parsedType2 = typeof def.value;
|
|
25811
25811
|
if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") {
|
|
@@ -25825,7 +25825,7 @@ function parseLiteralDef(def, refs) {
|
|
|
25825
25825
|
};
|
|
25826
25826
|
}
|
|
25827
25827
|
|
|
25828
|
-
//
|
|
25828
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/string.js
|
|
25829
25829
|
function parseStringDef(def, refs) {
|
|
25830
25830
|
const res = {
|
|
25831
25831
|
type: "string"
|
|
@@ -26124,7 +26124,7 @@ var init_string = __esm(() => {
|
|
|
26124
26124
|
ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
|
|
26125
26125
|
});
|
|
26126
26126
|
|
|
26127
|
-
//
|
|
26127
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/record.js
|
|
26128
26128
|
function parseRecordDef(def, refs) {
|
|
26129
26129
|
if (refs.target === "openAi") {
|
|
26130
26130
|
console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
|
|
@@ -26183,7 +26183,7 @@ var init_record = __esm(() => {
|
|
|
26183
26183
|
init_any();
|
|
26184
26184
|
});
|
|
26185
26185
|
|
|
26186
|
-
//
|
|
26186
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/map.js
|
|
26187
26187
|
function parseMapDef(def, refs) {
|
|
26188
26188
|
if (refs.mapStrategy === "record") {
|
|
26189
26189
|
return parseRecordDef(def, refs);
|
|
@@ -26213,7 +26213,7 @@ var init_map = __esm(() => {
|
|
|
26213
26213
|
init_any();
|
|
26214
26214
|
});
|
|
26215
26215
|
|
|
26216
|
-
//
|
|
26216
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
|
|
26217
26217
|
function parseNativeEnumDef(def) {
|
|
26218
26218
|
const object3 = def.values;
|
|
26219
26219
|
const actualKeys = Object.keys(def.values).filter((key) => {
|
|
@@ -26227,7 +26227,7 @@ function parseNativeEnumDef(def) {
|
|
|
26227
26227
|
};
|
|
26228
26228
|
}
|
|
26229
26229
|
|
|
26230
|
-
//
|
|
26230
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/never.js
|
|
26231
26231
|
function parseNeverDef(refs) {
|
|
26232
26232
|
return refs.target === "openAi" ? undefined : {
|
|
26233
26233
|
not: parseAnyDef({
|
|
@@ -26240,7 +26240,7 @@ var init_never = __esm(() => {
|
|
|
26240
26240
|
init_any();
|
|
26241
26241
|
});
|
|
26242
26242
|
|
|
26243
|
-
//
|
|
26243
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/null.js
|
|
26244
26244
|
function parseNullDef(refs) {
|
|
26245
26245
|
return refs.target === "openApi3" ? {
|
|
26246
26246
|
enum: ["null"],
|
|
@@ -26250,7 +26250,7 @@ function parseNullDef(refs) {
|
|
|
26250
26250
|
};
|
|
26251
26251
|
}
|
|
26252
26252
|
|
|
26253
|
-
//
|
|
26253
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/union.js
|
|
26254
26254
|
function parseUnionDef(def, refs) {
|
|
26255
26255
|
if (refs.target === "openApi3")
|
|
26256
26256
|
return asAnyOf(def, refs);
|
|
@@ -26321,7 +26321,7 @@ var init_union = __esm(() => {
|
|
|
26321
26321
|
};
|
|
26322
26322
|
});
|
|
26323
26323
|
|
|
26324
|
-
//
|
|
26324
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
|
|
26325
26325
|
function parseNullableDef(def, refs) {
|
|
26326
26326
|
if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
|
|
26327
26327
|
if (refs.target === "openApi3") {
|
|
@@ -26357,7 +26357,7 @@ var init_nullable = __esm(() => {
|
|
|
26357
26357
|
init_union();
|
|
26358
26358
|
});
|
|
26359
26359
|
|
|
26360
|
-
//
|
|
26360
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/number.js
|
|
26361
26361
|
function parseNumberDef(def, refs) {
|
|
26362
26362
|
const res = {
|
|
26363
26363
|
type: "number"
|
|
@@ -26407,7 +26407,7 @@ function parseNumberDef(def, refs) {
|
|
|
26407
26407
|
}
|
|
26408
26408
|
var init_number = () => {};
|
|
26409
26409
|
|
|
26410
|
-
//
|
|
26410
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/object.js
|
|
26411
26411
|
function parseObjectDef(def, refs) {
|
|
26412
26412
|
const forceOptionalIntoNullable = refs.target === "openAi";
|
|
26413
26413
|
const result = {
|
|
@@ -26480,7 +26480,7 @@ var init_object = __esm(() => {
|
|
|
26480
26480
|
init_parseDef();
|
|
26481
26481
|
});
|
|
26482
26482
|
|
|
26483
|
-
//
|
|
26483
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
|
|
26484
26484
|
var parseOptionalDef = (def, refs) => {
|
|
26485
26485
|
if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
|
|
26486
26486
|
return parseDef(def.innerType._def, refs);
|
|
@@ -26503,7 +26503,7 @@ var init_optional = __esm(() => {
|
|
|
26503
26503
|
init_any();
|
|
26504
26504
|
});
|
|
26505
26505
|
|
|
26506
|
-
//
|
|
26506
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
|
|
26507
26507
|
var parsePipelineDef = (def, refs) => {
|
|
26508
26508
|
if (refs.pipeStrategy === "input") {
|
|
26509
26509
|
return parseDef(def.in._def, refs);
|
|
@@ -26526,7 +26526,7 @@ var init_pipeline = __esm(() => {
|
|
|
26526
26526
|
init_parseDef();
|
|
26527
26527
|
});
|
|
26528
26528
|
|
|
26529
|
-
//
|
|
26529
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
|
|
26530
26530
|
function parsePromiseDef(def, refs) {
|
|
26531
26531
|
return parseDef(def.type._def, refs);
|
|
26532
26532
|
}
|
|
@@ -26534,7 +26534,7 @@ var init_promise = __esm(() => {
|
|
|
26534
26534
|
init_parseDef();
|
|
26535
26535
|
});
|
|
26536
26536
|
|
|
26537
|
-
//
|
|
26537
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/set.js
|
|
26538
26538
|
function parseSetDef(def, refs) {
|
|
26539
26539
|
const items = parseDef(def.valueType._def, {
|
|
26540
26540
|
...refs,
|
|
@@ -26557,7 +26557,7 @@ var init_set = __esm(() => {
|
|
|
26557
26557
|
init_parseDef();
|
|
26558
26558
|
});
|
|
26559
26559
|
|
|
26560
|
-
//
|
|
26560
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
|
|
26561
26561
|
function parseTupleDef(def, refs) {
|
|
26562
26562
|
if (def.rest) {
|
|
26563
26563
|
return {
|
|
@@ -26588,7 +26588,7 @@ var init_tuple = __esm(() => {
|
|
|
26588
26588
|
init_parseDef();
|
|
26589
26589
|
});
|
|
26590
26590
|
|
|
26591
|
-
//
|
|
26591
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
|
|
26592
26592
|
function parseUndefinedDef(refs) {
|
|
26593
26593
|
return {
|
|
26594
26594
|
not: parseAnyDef(refs)
|
|
@@ -26598,7 +26598,7 @@ var init_undefined = __esm(() => {
|
|
|
26598
26598
|
init_any();
|
|
26599
26599
|
});
|
|
26600
26600
|
|
|
26601
|
-
//
|
|
26601
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
|
|
26602
26602
|
function parseUnknownDef(refs) {
|
|
26603
26603
|
return parseAnyDef(refs);
|
|
26604
26604
|
}
|
|
@@ -26606,7 +26606,7 @@ var init_unknown = __esm(() => {
|
|
|
26606
26606
|
init_any();
|
|
26607
26607
|
});
|
|
26608
26608
|
|
|
26609
|
-
//
|
|
26609
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
|
|
26610
26610
|
var parseReadonlyDef = (def, refs) => {
|
|
26611
26611
|
return parseDef(def.innerType._def, refs);
|
|
26612
26612
|
};
|
|
@@ -26614,7 +26614,7 @@ var init_readonly = __esm(() => {
|
|
|
26614
26614
|
init_parseDef();
|
|
26615
26615
|
});
|
|
26616
26616
|
|
|
26617
|
-
//
|
|
26617
|
+
// node_modules/zod-to-json-schema/dist/esm/selectParser.js
|
|
26618
26618
|
var selectParser = (def, typeName, refs) => {
|
|
26619
26619
|
switch (typeName) {
|
|
26620
26620
|
case ZodFirstPartyTypeKind2.ZodString:
|
|
@@ -26720,7 +26720,7 @@ var init_selectParser = __esm(() => {
|
|
|
26720
26720
|
init_readonly();
|
|
26721
26721
|
});
|
|
26722
26722
|
|
|
26723
|
-
//
|
|
26723
|
+
// node_modules/zod-to-json-schema/dist/esm/parseDef.js
|
|
26724
26724
|
function parseDef(def, refs, forceResolution = false) {
|
|
26725
26725
|
const seenItem = refs.seen.get(def);
|
|
26726
26726
|
if (refs.override) {
|
|
@@ -26780,10 +26780,10 @@ var init_parseDef = __esm(() => {
|
|
|
26780
26780
|
init_any();
|
|
26781
26781
|
});
|
|
26782
26782
|
|
|
26783
|
-
//
|
|
26783
|
+
// node_modules/zod-to-json-schema/dist/esm/parseTypes.js
|
|
26784
26784
|
var init_parseTypes = () => {};
|
|
26785
26785
|
|
|
26786
|
-
//
|
|
26786
|
+
// node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
|
|
26787
26787
|
var zodToJsonSchema = (schema, options) => {
|
|
26788
26788
|
const refs = getRefs(options);
|
|
26789
26789
|
let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
|
|
@@ -26849,7 +26849,7 @@ var init_zodToJsonSchema = __esm(() => {
|
|
|
26849
26849
|
init_any();
|
|
26850
26850
|
});
|
|
26851
26851
|
|
|
26852
|
-
//
|
|
26852
|
+
// node_modules/zod-to-json-schema/dist/esm/index.js
|
|
26853
26853
|
var init_esm = __esm(() => {
|
|
26854
26854
|
init_zodToJsonSchema();
|
|
26855
26855
|
init_Options();
|
|
@@ -26885,7 +26885,7 @@ var init_esm = __esm(() => {
|
|
|
26885
26885
|
init_zodToJsonSchema();
|
|
26886
26886
|
});
|
|
26887
26887
|
|
|
26888
|
-
//
|
|
26888
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
|
|
26889
26889
|
function mapMiniTarget(t2) {
|
|
26890
26890
|
if (!t2)
|
|
26891
26891
|
return "draft-7";
|
|
@@ -26932,7 +26932,7 @@ var init_zod_json_schema_compat = __esm(() => {
|
|
|
26932
26932
|
init_esm();
|
|
26933
26933
|
});
|
|
26934
26934
|
|
|
26935
|
-
//
|
|
26935
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
|
|
26936
26936
|
class Protocol {
|
|
26937
26937
|
constructor(_options) {
|
|
26938
26938
|
this._options = _options;
|
|
@@ -27777,7 +27777,7 @@ var init_protocol = __esm(() => {
|
|
|
27777
27777
|
init_zod_json_schema_compat();
|
|
27778
27778
|
});
|
|
27779
27779
|
|
|
27780
|
-
//
|
|
27780
|
+
// node_modules/ajv/dist/compile/codegen/code.js
|
|
27781
27781
|
var require_code = __commonJS((exports) => {
|
|
27782
27782
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27783
27783
|
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;
|
|
@@ -27931,7 +27931,7 @@ var require_code = __commonJS((exports) => {
|
|
|
27931
27931
|
exports.regexpCode = regexpCode;
|
|
27932
27932
|
});
|
|
27933
27933
|
|
|
27934
|
-
//
|
|
27934
|
+
// node_modules/ajv/dist/compile/codegen/scope.js
|
|
27935
27935
|
var require_scope = __commonJS((exports) => {
|
|
27936
27936
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27937
27937
|
exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = undefined;
|
|
@@ -28077,7 +28077,7 @@ var require_scope = __commonJS((exports) => {
|
|
|
28077
28077
|
exports.ValueScope = ValueScope;
|
|
28078
28078
|
});
|
|
28079
28079
|
|
|
28080
|
-
//
|
|
28080
|
+
// node_modules/ajv/dist/compile/codegen/index.js
|
|
28081
28081
|
var require_codegen = __commonJS((exports) => {
|
|
28082
28082
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28083
28083
|
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;
|
|
@@ -28787,7 +28787,7 @@ var require_codegen = __commonJS((exports) => {
|
|
|
28787
28787
|
}
|
|
28788
28788
|
});
|
|
28789
28789
|
|
|
28790
|
-
//
|
|
28790
|
+
// node_modules/ajv/dist/compile/util.js
|
|
28791
28791
|
var require_util = __commonJS((exports) => {
|
|
28792
28792
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28793
28793
|
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;
|
|
@@ -28951,7 +28951,7 @@ var require_util = __commonJS((exports) => {
|
|
|
28951
28951
|
exports.checkStrictMode = checkStrictMode;
|
|
28952
28952
|
});
|
|
28953
28953
|
|
|
28954
|
-
//
|
|
28954
|
+
// node_modules/ajv/dist/compile/names.js
|
|
28955
28955
|
var require_names = __commonJS((exports) => {
|
|
28956
28956
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28957
28957
|
var codegen_1 = require_codegen();
|
|
@@ -28976,7 +28976,7 @@ var require_names = __commonJS((exports) => {
|
|
|
28976
28976
|
exports.default = names;
|
|
28977
28977
|
});
|
|
28978
28978
|
|
|
28979
|
-
//
|
|
28979
|
+
// node_modules/ajv/dist/compile/errors.js
|
|
28980
28980
|
var require_errors = __commonJS((exports) => {
|
|
28981
28981
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28982
28982
|
exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = undefined;
|
|
@@ -29094,7 +29094,7 @@ var require_errors = __commonJS((exports) => {
|
|
|
29094
29094
|
}
|
|
29095
29095
|
});
|
|
29096
29096
|
|
|
29097
|
-
//
|
|
29097
|
+
// node_modules/ajv/dist/compile/validate/boolSchema.js
|
|
29098
29098
|
var require_boolSchema = __commonJS((exports) => {
|
|
29099
29099
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29100
29100
|
exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = undefined;
|
|
@@ -29142,7 +29142,7 @@ var require_boolSchema = __commonJS((exports) => {
|
|
|
29142
29142
|
}
|
|
29143
29143
|
});
|
|
29144
29144
|
|
|
29145
|
-
//
|
|
29145
|
+
// node_modules/ajv/dist/compile/rules.js
|
|
29146
29146
|
var require_rules = __commonJS((exports) => {
|
|
29147
29147
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29148
29148
|
exports.getRules = exports.isJSONType = undefined;
|
|
@@ -29170,7 +29170,7 @@ var require_rules = __commonJS((exports) => {
|
|
|
29170
29170
|
exports.getRules = getRules;
|
|
29171
29171
|
});
|
|
29172
29172
|
|
|
29173
|
-
//
|
|
29173
|
+
// node_modules/ajv/dist/compile/validate/applicability.js
|
|
29174
29174
|
var require_applicability = __commonJS((exports) => {
|
|
29175
29175
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29176
29176
|
exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = undefined;
|
|
@@ -29190,7 +29190,7 @@ var require_applicability = __commonJS((exports) => {
|
|
|
29190
29190
|
exports.shouldUseRule = shouldUseRule;
|
|
29191
29191
|
});
|
|
29192
29192
|
|
|
29193
|
-
//
|
|
29193
|
+
// node_modules/ajv/dist/compile/validate/dataType.js
|
|
29194
29194
|
var require_dataType = __commonJS((exports) => {
|
|
29195
29195
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29196
29196
|
exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = undefined;
|
|
@@ -29371,7 +29371,7 @@ var require_dataType = __commonJS((exports) => {
|
|
|
29371
29371
|
}
|
|
29372
29372
|
});
|
|
29373
29373
|
|
|
29374
|
-
//
|
|
29374
|
+
// node_modules/ajv/dist/compile/validate/defaults.js
|
|
29375
29375
|
var require_defaults = __commonJS((exports) => {
|
|
29376
29376
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29377
29377
|
exports.assignDefaults = undefined;
|
|
@@ -29405,7 +29405,7 @@ var require_defaults = __commonJS((exports) => {
|
|
|
29405
29405
|
}
|
|
29406
29406
|
});
|
|
29407
29407
|
|
|
29408
|
-
//
|
|
29408
|
+
// node_modules/ajv/dist/vocabularies/code.js
|
|
29409
29409
|
var require_code2 = __commonJS((exports) => {
|
|
29410
29410
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29411
29411
|
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;
|
|
@@ -29534,7 +29534,7 @@ var require_code2 = __commonJS((exports) => {
|
|
|
29534
29534
|
exports.validateUnion = validateUnion;
|
|
29535
29535
|
});
|
|
29536
29536
|
|
|
29537
|
-
//
|
|
29537
|
+
// node_modules/ajv/dist/compile/validate/keyword.js
|
|
29538
29538
|
var require_keyword = __commonJS((exports) => {
|
|
29539
29539
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29540
29540
|
exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = undefined;
|
|
@@ -29649,7 +29649,7 @@ var require_keyword = __commonJS((exports) => {
|
|
|
29649
29649
|
exports.validateKeywordUsage = validateKeywordUsage;
|
|
29650
29650
|
});
|
|
29651
29651
|
|
|
29652
|
-
//
|
|
29652
|
+
// node_modules/ajv/dist/compile/validate/subschema.js
|
|
29653
29653
|
var require_subschema = __commonJS((exports) => {
|
|
29654
29654
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29655
29655
|
exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = undefined;
|
|
@@ -29729,7 +29729,7 @@ var require_subschema = __commonJS((exports) => {
|
|
|
29729
29729
|
exports.extendSubschemaMode = extendSubschemaMode;
|
|
29730
29730
|
});
|
|
29731
29731
|
|
|
29732
|
-
//
|
|
29732
|
+
// node_modules/fast-deep-equal/index.js
|
|
29733
29733
|
var require_fast_deep_equal = __commonJS((exports, module) => {
|
|
29734
29734
|
module.exports = function equal(a, b) {
|
|
29735
29735
|
if (a === b)
|
|
@@ -29771,7 +29771,7 @@ var require_fast_deep_equal = __commonJS((exports, module) => {
|
|
|
29771
29771
|
};
|
|
29772
29772
|
});
|
|
29773
29773
|
|
|
29774
|
-
//
|
|
29774
|
+
// node_modules/json-schema-traverse/index.js
|
|
29775
29775
|
var require_json_schema_traverse = __commonJS((exports, module) => {
|
|
29776
29776
|
var traverse = module.exports = function(schema, opts, cb) {
|
|
29777
29777
|
if (typeof opts == "function") {
|
|
@@ -29854,7 +29854,7 @@ var require_json_schema_traverse = __commonJS((exports, module) => {
|
|
|
29854
29854
|
}
|
|
29855
29855
|
});
|
|
29856
29856
|
|
|
29857
|
-
//
|
|
29857
|
+
// node_modules/ajv/dist/compile/resolve.js
|
|
29858
29858
|
var require_resolve = __commonJS((exports) => {
|
|
29859
29859
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29860
29860
|
exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = undefined;
|
|
@@ -30007,7 +30007,7 @@ var require_resolve = __commonJS((exports) => {
|
|
|
30007
30007
|
exports.getSchemaRefs = getSchemaRefs;
|
|
30008
30008
|
});
|
|
30009
30009
|
|
|
30010
|
-
//
|
|
30010
|
+
// node_modules/ajv/dist/compile/validate/index.js
|
|
30011
30011
|
var require_validate = __commonJS((exports) => {
|
|
30012
30012
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30013
30013
|
exports.getData = exports.KeywordCxt = exports.validateFunctionCode = undefined;
|
|
@@ -30512,7 +30512,7 @@ var require_validate = __commonJS((exports) => {
|
|
|
30512
30512
|
exports.getData = getData;
|
|
30513
30513
|
});
|
|
30514
30514
|
|
|
30515
|
-
//
|
|
30515
|
+
// node_modules/ajv/dist/runtime/validation_error.js
|
|
30516
30516
|
var require_validation_error = __commonJS((exports) => {
|
|
30517
30517
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30518
30518
|
|
|
@@ -30526,7 +30526,7 @@ var require_validation_error = __commonJS((exports) => {
|
|
|
30526
30526
|
exports.default = ValidationError;
|
|
30527
30527
|
});
|
|
30528
30528
|
|
|
30529
|
-
//
|
|
30529
|
+
// node_modules/ajv/dist/compile/ref_error.js
|
|
30530
30530
|
var require_ref_error = __commonJS((exports) => {
|
|
30531
30531
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30532
30532
|
var resolve_1 = require_resolve();
|
|
@@ -30541,7 +30541,7 @@ var require_ref_error = __commonJS((exports) => {
|
|
|
30541
30541
|
exports.default = MissingRefError;
|
|
30542
30542
|
});
|
|
30543
30543
|
|
|
30544
|
-
//
|
|
30544
|
+
// node_modules/ajv/dist/compile/index.js
|
|
30545
30545
|
var require_compile = __commonJS((exports) => {
|
|
30546
30546
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30547
30547
|
exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = undefined;
|
|
@@ -30762,7 +30762,7 @@ var require_compile = __commonJS((exports) => {
|
|
|
30762
30762
|
}
|
|
30763
30763
|
});
|
|
30764
30764
|
|
|
30765
|
-
//
|
|
30765
|
+
// node_modules/ajv/dist/refs/data.json
|
|
30766
30766
|
var require_data = __commonJS((exports, module) => {
|
|
30767
30767
|
module.exports = {
|
|
30768
30768
|
$id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
|
|
@@ -30779,7 +30779,7 @@ var require_data = __commonJS((exports, module) => {
|
|
|
30779
30779
|
};
|
|
30780
30780
|
});
|
|
30781
30781
|
|
|
30782
|
-
//
|
|
30782
|
+
// node_modules/fast-uri/lib/utils.js
|
|
30783
30783
|
var require_utils = __commonJS((exports, module) => {
|
|
30784
30784
|
var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
30785
30785
|
var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
@@ -31296,7 +31296,7 @@ var require_utils = __commonJS((exports, module) => {
|
|
|
31296
31296
|
};
|
|
31297
31297
|
});
|
|
31298
31298
|
|
|
31299
|
-
//
|
|
31299
|
+
// node_modules/fast-uri/lib/schemes.js
|
|
31300
31300
|
var require_schemes = __commonJS((exports, module) => {
|
|
31301
31301
|
var { isUUID } = require_utils();
|
|
31302
31302
|
var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
@@ -31471,7 +31471,7 @@ var require_schemes = __commonJS((exports, module) => {
|
|
|
31471
31471
|
};
|
|
31472
31472
|
});
|
|
31473
31473
|
|
|
31474
|
-
//
|
|
31474
|
+
// node_modules/fast-uri/index.js
|
|
31475
31475
|
var require_fast_uri = __commonJS((exports, module) => {
|
|
31476
31476
|
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
31477
31477
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
@@ -31873,7 +31873,7 @@ var require_fast_uri = __commonJS((exports, module) => {
|
|
|
31873
31873
|
module.exports.fastUri = fastUri;
|
|
31874
31874
|
});
|
|
31875
31875
|
|
|
31876
|
-
//
|
|
31876
|
+
// node_modules/ajv/dist/runtime/uri.js
|
|
31877
31877
|
var require_uri = __commonJS((exports) => {
|
|
31878
31878
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31879
31879
|
var uri = require_fast_uri();
|
|
@@ -31881,7 +31881,7 @@ var require_uri = __commonJS((exports) => {
|
|
|
31881
31881
|
exports.default = uri;
|
|
31882
31882
|
});
|
|
31883
31883
|
|
|
31884
|
-
//
|
|
31884
|
+
// node_modules/ajv/dist/core.js
|
|
31885
31885
|
var require_core = __commonJS((exports) => {
|
|
31886
31886
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31887
31887
|
exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = undefined;
|
|
@@ -32474,7 +32474,7 @@ var require_core = __commonJS((exports) => {
|
|
|
32474
32474
|
}
|
|
32475
32475
|
});
|
|
32476
32476
|
|
|
32477
|
-
//
|
|
32477
|
+
// node_modules/ajv/dist/vocabularies/core/id.js
|
|
32478
32478
|
var require_id = __commonJS((exports) => {
|
|
32479
32479
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32480
32480
|
var def = {
|
|
@@ -32486,7 +32486,7 @@ var require_id = __commonJS((exports) => {
|
|
|
32486
32486
|
exports.default = def;
|
|
32487
32487
|
});
|
|
32488
32488
|
|
|
32489
|
-
//
|
|
32489
|
+
// node_modules/ajv/dist/vocabularies/core/ref.js
|
|
32490
32490
|
var require_ref = __commonJS((exports) => {
|
|
32491
32491
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32492
32492
|
exports.callRef = exports.getValidate = undefined;
|
|
@@ -32605,7 +32605,7 @@ var require_ref = __commonJS((exports) => {
|
|
|
32605
32605
|
exports.default = def;
|
|
32606
32606
|
});
|
|
32607
32607
|
|
|
32608
|
-
//
|
|
32608
|
+
// node_modules/ajv/dist/vocabularies/core/index.js
|
|
32609
32609
|
var require_core2 = __commonJS((exports) => {
|
|
32610
32610
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32611
32611
|
var id_1 = require_id();
|
|
@@ -32623,7 +32623,7 @@ var require_core2 = __commonJS((exports) => {
|
|
|
32623
32623
|
exports.default = core2;
|
|
32624
32624
|
});
|
|
32625
32625
|
|
|
32626
|
-
//
|
|
32626
|
+
// node_modules/ajv/dist/vocabularies/validation/limitNumber.js
|
|
32627
32627
|
var require_limitNumber = __commonJS((exports) => {
|
|
32628
32628
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32629
32629
|
var codegen_1 = require_codegen();
|
|
@@ -32652,7 +32652,7 @@ var require_limitNumber = __commonJS((exports) => {
|
|
|
32652
32652
|
exports.default = def;
|
|
32653
32653
|
});
|
|
32654
32654
|
|
|
32655
|
-
//
|
|
32655
|
+
// node_modules/ajv/dist/vocabularies/validation/multipleOf.js
|
|
32656
32656
|
var require_multipleOf = __commonJS((exports) => {
|
|
32657
32657
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32658
32658
|
var codegen_1 = require_codegen();
|
|
@@ -32677,7 +32677,7 @@ var require_multipleOf = __commonJS((exports) => {
|
|
|
32677
32677
|
exports.default = def;
|
|
32678
32678
|
});
|
|
32679
32679
|
|
|
32680
|
-
//
|
|
32680
|
+
// node_modules/ajv/dist/runtime/ucs2length.js
|
|
32681
32681
|
var require_ucs2length = __commonJS((exports) => {
|
|
32682
32682
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32683
32683
|
function ucs2length(str) {
|
|
@@ -32700,7 +32700,7 @@ var require_ucs2length = __commonJS((exports) => {
|
|
|
32700
32700
|
ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
|
|
32701
32701
|
});
|
|
32702
32702
|
|
|
32703
|
-
//
|
|
32703
|
+
// node_modules/ajv/dist/vocabularies/validation/limitLength.js
|
|
32704
32704
|
var require_limitLength = __commonJS((exports) => {
|
|
32705
32705
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32706
32706
|
var codegen_1 = require_codegen();
|
|
@@ -32729,7 +32729,7 @@ var require_limitLength = __commonJS((exports) => {
|
|
|
32729
32729
|
exports.default = def;
|
|
32730
32730
|
});
|
|
32731
32731
|
|
|
32732
|
-
//
|
|
32732
|
+
// node_modules/ajv/dist/vocabularies/validation/pattern.js
|
|
32733
32733
|
var require_pattern = __commonJS((exports) => {
|
|
32734
32734
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32735
32735
|
var code_1 = require_code2();
|
|
@@ -32763,7 +32763,7 @@ var require_pattern = __commonJS((exports) => {
|
|
|
32763
32763
|
exports.default = def;
|
|
32764
32764
|
});
|
|
32765
32765
|
|
|
32766
|
-
//
|
|
32766
|
+
// node_modules/ajv/dist/vocabularies/validation/limitProperties.js
|
|
32767
32767
|
var require_limitProperties = __commonJS((exports) => {
|
|
32768
32768
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32769
32769
|
var codegen_1 = require_codegen();
|
|
@@ -32789,7 +32789,7 @@ var require_limitProperties = __commonJS((exports) => {
|
|
|
32789
32789
|
exports.default = def;
|
|
32790
32790
|
});
|
|
32791
32791
|
|
|
32792
|
-
//
|
|
32792
|
+
// node_modules/ajv/dist/vocabularies/validation/required.js
|
|
32793
32793
|
var require_required = __commonJS((exports) => {
|
|
32794
32794
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32795
32795
|
var code_1 = require_code2();
|
|
@@ -32868,7 +32868,7 @@ var require_required = __commonJS((exports) => {
|
|
|
32868
32868
|
exports.default = def;
|
|
32869
32869
|
});
|
|
32870
32870
|
|
|
32871
|
-
//
|
|
32871
|
+
// node_modules/ajv/dist/vocabularies/validation/limitItems.js
|
|
32872
32872
|
var require_limitItems = __commonJS((exports) => {
|
|
32873
32873
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32874
32874
|
var codegen_1 = require_codegen();
|
|
@@ -32894,7 +32894,7 @@ var require_limitItems = __commonJS((exports) => {
|
|
|
32894
32894
|
exports.default = def;
|
|
32895
32895
|
});
|
|
32896
32896
|
|
|
32897
|
-
//
|
|
32897
|
+
// node_modules/ajv/dist/runtime/equal.js
|
|
32898
32898
|
var require_equal = __commonJS((exports) => {
|
|
32899
32899
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32900
32900
|
var equal = require_fast_deep_equal();
|
|
@@ -32902,7 +32902,7 @@ var require_equal = __commonJS((exports) => {
|
|
|
32902
32902
|
exports.default = equal;
|
|
32903
32903
|
});
|
|
32904
32904
|
|
|
32905
|
-
//
|
|
32905
|
+
// node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
|
|
32906
32906
|
var require_uniqueItems = __commonJS((exports) => {
|
|
32907
32907
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32908
32908
|
var dataType_1 = require_dataType();
|
|
@@ -32966,7 +32966,7 @@ var require_uniqueItems = __commonJS((exports) => {
|
|
|
32966
32966
|
exports.default = def;
|
|
32967
32967
|
});
|
|
32968
32968
|
|
|
32969
|
-
//
|
|
32969
|
+
// node_modules/ajv/dist/vocabularies/validation/const.js
|
|
32970
32970
|
var require_const = __commonJS((exports) => {
|
|
32971
32971
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32972
32972
|
var codegen_1 = require_codegen();
|
|
@@ -32992,7 +32992,7 @@ var require_const = __commonJS((exports) => {
|
|
|
32992
32992
|
exports.default = def;
|
|
32993
32993
|
});
|
|
32994
32994
|
|
|
32995
|
-
//
|
|
32995
|
+
// node_modules/ajv/dist/vocabularies/validation/enum.js
|
|
32996
32996
|
var require_enum = __commonJS((exports) => {
|
|
32997
32997
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32998
32998
|
var codegen_1 = require_codegen();
|
|
@@ -33038,7 +33038,7 @@ var require_enum = __commonJS((exports) => {
|
|
|
33038
33038
|
exports.default = def;
|
|
33039
33039
|
});
|
|
33040
33040
|
|
|
33041
|
-
//
|
|
33041
|
+
// node_modules/ajv/dist/vocabularies/validation/index.js
|
|
33042
33042
|
var require_validation = __commonJS((exports) => {
|
|
33043
33043
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33044
33044
|
var limitNumber_1 = require_limitNumber();
|
|
@@ -33068,7 +33068,7 @@ var require_validation = __commonJS((exports) => {
|
|
|
33068
33068
|
exports.default = validation;
|
|
33069
33069
|
});
|
|
33070
33070
|
|
|
33071
|
-
//
|
|
33071
|
+
// node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
|
|
33072
33072
|
var require_additionalItems = __commonJS((exports) => {
|
|
33073
33073
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33074
33074
|
exports.validateAdditionalItems = undefined;
|
|
@@ -33118,7 +33118,7 @@ var require_additionalItems = __commonJS((exports) => {
|
|
|
33118
33118
|
exports.default = def;
|
|
33119
33119
|
});
|
|
33120
33120
|
|
|
33121
|
-
//
|
|
33121
|
+
// node_modules/ajv/dist/vocabularies/applicator/items.js
|
|
33122
33122
|
var require_items = __commonJS((exports) => {
|
|
33123
33123
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33124
33124
|
exports.validateTuple = undefined;
|
|
@@ -33172,7 +33172,7 @@ var require_items = __commonJS((exports) => {
|
|
|
33172
33172
|
exports.default = def;
|
|
33173
33173
|
});
|
|
33174
33174
|
|
|
33175
|
-
//
|
|
33175
|
+
// node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
|
|
33176
33176
|
var require_prefixItems = __commonJS((exports) => {
|
|
33177
33177
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33178
33178
|
var items_1 = require_items();
|
|
@@ -33186,7 +33186,7 @@ var require_prefixItems = __commonJS((exports) => {
|
|
|
33186
33186
|
exports.default = def;
|
|
33187
33187
|
});
|
|
33188
33188
|
|
|
33189
|
-
//
|
|
33189
|
+
// node_modules/ajv/dist/vocabularies/applicator/items2020.js
|
|
33190
33190
|
var require_items2020 = __commonJS((exports) => {
|
|
33191
33191
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33192
33192
|
var codegen_1 = require_codegen();
|
|
@@ -33218,7 +33218,7 @@ var require_items2020 = __commonJS((exports) => {
|
|
|
33218
33218
|
exports.default = def;
|
|
33219
33219
|
});
|
|
33220
33220
|
|
|
33221
|
-
//
|
|
33221
|
+
// node_modules/ajv/dist/vocabularies/applicator/contains.js
|
|
33222
33222
|
var require_contains = __commonJS((exports) => {
|
|
33223
33223
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33224
33224
|
var codegen_1 = require_codegen();
|
|
@@ -33309,7 +33309,7 @@ var require_contains = __commonJS((exports) => {
|
|
|
33309
33309
|
exports.default = def;
|
|
33310
33310
|
});
|
|
33311
33311
|
|
|
33312
|
-
//
|
|
33312
|
+
// node_modules/ajv/dist/vocabularies/applicator/dependencies.js
|
|
33313
33313
|
var require_dependencies = __commonJS((exports) => {
|
|
33314
33314
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33315
33315
|
exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = undefined;
|
|
@@ -33394,7 +33394,7 @@ var require_dependencies = __commonJS((exports) => {
|
|
|
33394
33394
|
exports.default = def;
|
|
33395
33395
|
});
|
|
33396
33396
|
|
|
33397
|
-
//
|
|
33397
|
+
// node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
|
|
33398
33398
|
var require_propertyNames = __commonJS((exports) => {
|
|
33399
33399
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33400
33400
|
var codegen_1 = require_codegen();
|
|
@@ -33434,7 +33434,7 @@ var require_propertyNames = __commonJS((exports) => {
|
|
|
33434
33434
|
exports.default = def;
|
|
33435
33435
|
});
|
|
33436
33436
|
|
|
33437
|
-
//
|
|
33437
|
+
// node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
|
|
33438
33438
|
var require_additionalProperties = __commonJS((exports) => {
|
|
33439
33439
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33440
33440
|
var code_1 = require_code2();
|
|
@@ -33537,7 +33537,7 @@ var require_additionalProperties = __commonJS((exports) => {
|
|
|
33537
33537
|
exports.default = def;
|
|
33538
33538
|
});
|
|
33539
33539
|
|
|
33540
|
-
//
|
|
33540
|
+
// node_modules/ajv/dist/vocabularies/applicator/properties.js
|
|
33541
33541
|
var require_properties = __commonJS((exports) => {
|
|
33542
33542
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33543
33543
|
var validate_1 = require_validate();
|
|
@@ -33592,7 +33592,7 @@ var require_properties = __commonJS((exports) => {
|
|
|
33592
33592
|
exports.default = def;
|
|
33593
33593
|
});
|
|
33594
33594
|
|
|
33595
|
-
//
|
|
33595
|
+
// node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
|
|
33596
33596
|
var require_patternProperties = __commonJS((exports) => {
|
|
33597
33597
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33598
33598
|
var code_1 = require_code2();
|
|
@@ -33663,7 +33663,7 @@ var require_patternProperties = __commonJS((exports) => {
|
|
|
33663
33663
|
exports.default = def;
|
|
33664
33664
|
});
|
|
33665
33665
|
|
|
33666
|
-
//
|
|
33666
|
+
// node_modules/ajv/dist/vocabularies/applicator/not.js
|
|
33667
33667
|
var require_not = __commonJS((exports) => {
|
|
33668
33668
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33669
33669
|
var util_1 = require_util();
|
|
@@ -33691,7 +33691,7 @@ var require_not = __commonJS((exports) => {
|
|
|
33691
33691
|
exports.default = def;
|
|
33692
33692
|
});
|
|
33693
33693
|
|
|
33694
|
-
//
|
|
33694
|
+
// node_modules/ajv/dist/vocabularies/applicator/anyOf.js
|
|
33695
33695
|
var require_anyOf = __commonJS((exports) => {
|
|
33696
33696
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33697
33697
|
var code_1 = require_code2();
|
|
@@ -33705,7 +33705,7 @@ var require_anyOf = __commonJS((exports) => {
|
|
|
33705
33705
|
exports.default = def;
|
|
33706
33706
|
});
|
|
33707
33707
|
|
|
33708
|
-
//
|
|
33708
|
+
// node_modules/ajv/dist/vocabularies/applicator/oneOf.js
|
|
33709
33709
|
var require_oneOf = __commonJS((exports) => {
|
|
33710
33710
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33711
33711
|
var codegen_1 = require_codegen();
|
|
@@ -33760,7 +33760,7 @@ var require_oneOf = __commonJS((exports) => {
|
|
|
33760
33760
|
exports.default = def;
|
|
33761
33761
|
});
|
|
33762
33762
|
|
|
33763
|
-
//
|
|
33763
|
+
// node_modules/ajv/dist/vocabularies/applicator/allOf.js
|
|
33764
33764
|
var require_allOf = __commonJS((exports) => {
|
|
33765
33765
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33766
33766
|
var util_1 = require_util();
|
|
@@ -33784,7 +33784,7 @@ var require_allOf = __commonJS((exports) => {
|
|
|
33784
33784
|
exports.default = def;
|
|
33785
33785
|
});
|
|
33786
33786
|
|
|
33787
|
-
//
|
|
33787
|
+
// node_modules/ajv/dist/vocabularies/applicator/if.js
|
|
33788
33788
|
var require_if = __commonJS((exports) => {
|
|
33789
33789
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33790
33790
|
var codegen_1 = require_codegen();
|
|
@@ -33850,7 +33850,7 @@ var require_if = __commonJS((exports) => {
|
|
|
33850
33850
|
exports.default = def;
|
|
33851
33851
|
});
|
|
33852
33852
|
|
|
33853
|
-
//
|
|
33853
|
+
// node_modules/ajv/dist/vocabularies/applicator/thenElse.js
|
|
33854
33854
|
var require_thenElse = __commonJS((exports) => {
|
|
33855
33855
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33856
33856
|
var util_1 = require_util();
|
|
@@ -33865,7 +33865,7 @@ var require_thenElse = __commonJS((exports) => {
|
|
|
33865
33865
|
exports.default = def;
|
|
33866
33866
|
});
|
|
33867
33867
|
|
|
33868
|
-
//
|
|
33868
|
+
// node_modules/ajv/dist/vocabularies/applicator/index.js
|
|
33869
33869
|
var require_applicator = __commonJS((exports) => {
|
|
33870
33870
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33871
33871
|
var additionalItems_1 = require_additionalItems();
|
|
@@ -33908,7 +33908,7 @@ var require_applicator = __commonJS((exports) => {
|
|
|
33908
33908
|
exports.default = getApplicator;
|
|
33909
33909
|
});
|
|
33910
33910
|
|
|
33911
|
-
//
|
|
33911
|
+
// node_modules/ajv/dist/vocabularies/format/format.js
|
|
33912
33912
|
var require_format = __commonJS((exports) => {
|
|
33913
33913
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33914
33914
|
var codegen_1 = require_codegen();
|
|
@@ -33995,7 +33995,7 @@ var require_format = __commonJS((exports) => {
|
|
|
33995
33995
|
exports.default = def;
|
|
33996
33996
|
});
|
|
33997
33997
|
|
|
33998
|
-
//
|
|
33998
|
+
// node_modules/ajv/dist/vocabularies/format/index.js
|
|
33999
33999
|
var require_format2 = __commonJS((exports) => {
|
|
34000
34000
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34001
34001
|
var format_1 = require_format();
|
|
@@ -34003,7 +34003,7 @@ var require_format2 = __commonJS((exports) => {
|
|
|
34003
34003
|
exports.default = format;
|
|
34004
34004
|
});
|
|
34005
34005
|
|
|
34006
|
-
//
|
|
34006
|
+
// node_modules/ajv/dist/vocabularies/metadata.js
|
|
34007
34007
|
var require_metadata = __commonJS((exports) => {
|
|
34008
34008
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34009
34009
|
exports.contentVocabulary = exports.metadataVocabulary = undefined;
|
|
@@ -34023,7 +34023,7 @@ var require_metadata = __commonJS((exports) => {
|
|
|
34023
34023
|
];
|
|
34024
34024
|
});
|
|
34025
34025
|
|
|
34026
|
-
//
|
|
34026
|
+
// node_modules/ajv/dist/vocabularies/draft7.js
|
|
34027
34027
|
var require_draft7 = __commonJS((exports) => {
|
|
34028
34028
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34029
34029
|
var core_1 = require_core2();
|
|
@@ -34042,7 +34042,7 @@ var require_draft7 = __commonJS((exports) => {
|
|
|
34042
34042
|
exports.default = draft7Vocabularies;
|
|
34043
34043
|
});
|
|
34044
34044
|
|
|
34045
|
-
//
|
|
34045
|
+
// node_modules/ajv/dist/vocabularies/discriminator/types.js
|
|
34046
34046
|
var require_types = __commonJS((exports) => {
|
|
34047
34047
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34048
34048
|
exports.DiscrError = undefined;
|
|
@@ -34053,7 +34053,7 @@ var require_types = __commonJS((exports) => {
|
|
|
34053
34053
|
})(DiscrError || (exports.DiscrError = DiscrError = {}));
|
|
34054
34054
|
});
|
|
34055
34055
|
|
|
34056
|
-
//
|
|
34056
|
+
// node_modules/ajv/dist/vocabularies/discriminator/index.js
|
|
34057
34057
|
var require_discriminator = __commonJS((exports) => {
|
|
34058
34058
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34059
34059
|
var codegen_1 = require_codegen();
|
|
@@ -34155,7 +34155,7 @@ var require_discriminator = __commonJS((exports) => {
|
|
|
34155
34155
|
exports.default = def;
|
|
34156
34156
|
});
|
|
34157
34157
|
|
|
34158
|
-
//
|
|
34158
|
+
// node_modules/ajv/dist/refs/json-schema-draft-07.json
|
|
34159
34159
|
var require_json_schema_draft_07 = __commonJS((exports, module) => {
|
|
34160
34160
|
module.exports = {
|
|
34161
34161
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
@@ -34310,7 +34310,7 @@ var require_json_schema_draft_07 = __commonJS((exports, module) => {
|
|
|
34310
34310
|
};
|
|
34311
34311
|
});
|
|
34312
34312
|
|
|
34313
|
-
//
|
|
34313
|
+
// node_modules/ajv/dist/ajv.js
|
|
34314
34314
|
var require_ajv = __commonJS((exports, module) => {
|
|
34315
34315
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34316
34316
|
exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = undefined;
|
|
@@ -34378,7 +34378,7 @@ var require_ajv = __commonJS((exports, module) => {
|
|
|
34378
34378
|
} });
|
|
34379
34379
|
});
|
|
34380
34380
|
|
|
34381
|
-
//
|
|
34381
|
+
// node_modules/ajv-formats/dist/formats.js
|
|
34382
34382
|
var require_formats = __commonJS((exports) => {
|
|
34383
34383
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34384
34384
|
exports.formatNames = exports.fastFormats = exports.fullFormats = undefined;
|
|
@@ -34555,7 +34555,7 @@ var require_formats = __commonJS((exports) => {
|
|
|
34555
34555
|
}
|
|
34556
34556
|
});
|
|
34557
34557
|
|
|
34558
|
-
//
|
|
34558
|
+
// node_modules/ajv-formats/dist/limit.js
|
|
34559
34559
|
var require_limit = __commonJS((exports) => {
|
|
34560
34560
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34561
34561
|
exports.formatLimitDefinition = undefined;
|
|
@@ -34624,7 +34624,7 @@ var require_limit = __commonJS((exports) => {
|
|
|
34624
34624
|
exports.default = formatLimitPlugin;
|
|
34625
34625
|
});
|
|
34626
34626
|
|
|
34627
|
-
//
|
|
34627
|
+
// node_modules/ajv-formats/dist/index.js
|
|
34628
34628
|
var require_dist = __commonJS((exports, module) => {
|
|
34629
34629
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34630
34630
|
var formats_1 = require_formats();
|
|
@@ -34663,7 +34663,7 @@ var require_dist = __commonJS((exports, module) => {
|
|
|
34663
34663
|
exports.default = formatsPlugin;
|
|
34664
34664
|
});
|
|
34665
34665
|
|
|
34666
|
-
//
|
|
34666
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
|
|
34667
34667
|
function createDefaultAjvInstance() {
|
|
34668
34668
|
const ajv = new import_ajv.default({
|
|
34669
34669
|
strict: false,
|
|
@@ -34706,7 +34706,7 @@ var init_ajv_provider = __esm(() => {
|
|
|
34706
34706
|
import_ajv_formats = __toESM(require_dist(), 1);
|
|
34707
34707
|
});
|
|
34708
34708
|
|
|
34709
|
-
//
|
|
34709
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
34710
34710
|
class ExperimentalServerTasks {
|
|
34711
34711
|
constructor(_server) {
|
|
34712
34712
|
this._server = _server;
|
|
@@ -34787,7 +34787,7 @@ var init_server = __esm(() => {
|
|
|
34787
34787
|
init_types();
|
|
34788
34788
|
});
|
|
34789
34789
|
|
|
34790
|
-
//
|
|
34790
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
|
|
34791
34791
|
function assertToolsCallTaskCapability(requests, method, entityName) {
|
|
34792
34792
|
if (!requests) {
|
|
34793
34793
|
throw new Error(`${entityName} does not support task creation (required for ${method})`);
|
|
@@ -34822,7 +34822,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
|
|
|
34822
34822
|
}
|
|
34823
34823
|
}
|
|
34824
34824
|
|
|
34825
|
-
//
|
|
34825
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
|
|
34826
34826
|
var Server;
|
|
34827
34827
|
var init_server2 = __esm(() => {
|
|
34828
34828
|
init_protocol();
|
|
@@ -35154,7 +35154,7 @@ var init_server2 = __esm(() => {
|
|
|
35154
35154
|
};
|
|
35155
35155
|
});
|
|
35156
35156
|
|
|
35157
|
-
//
|
|
35157
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
|
|
35158
35158
|
function isCompletable(schema) {
|
|
35159
35159
|
return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
|
|
35160
35160
|
}
|
|
@@ -35170,7 +35170,7 @@ var init_completable = __esm(() => {
|
|
|
35170
35170
|
})(McpZodTypeKind || (McpZodTypeKind = {}));
|
|
35171
35171
|
});
|
|
35172
35172
|
|
|
35173
|
-
//
|
|
35173
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js
|
|
35174
35174
|
class UriTemplate {
|
|
35175
35175
|
static isTemplate(str) {
|
|
35176
35176
|
return /\{[^}\s]+\}/.test(str);
|
|
@@ -35384,7 +35384,7 @@ class UriTemplate {
|
|
|
35384
35384
|
}
|
|
35385
35385
|
var MAX_TEMPLATE_LENGTH = 1e6, MAX_VARIABLE_LENGTH = 1e6, MAX_TEMPLATE_EXPRESSIONS = 1e4, MAX_REGEX_LENGTH = 1e6;
|
|
35386
35386
|
|
|
35387
|
-
//
|
|
35387
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
|
|
35388
35388
|
function validateToolName(name) {
|
|
35389
35389
|
const warnings = [];
|
|
35390
35390
|
if (name.length === 0) {
|
|
@@ -35445,7 +35445,7 @@ var init_toolNameValidation = __esm(() => {
|
|
|
35445
35445
|
TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
|
|
35446
35446
|
});
|
|
35447
35447
|
|
|
35448
|
-
//
|
|
35448
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
|
|
35449
35449
|
class ExperimentalMcpServerTasks {
|
|
35450
35450
|
constructor(_mcpServer) {
|
|
35451
35451
|
this._mcpServer = _mcpServer;
|
|
@@ -35460,13 +35460,13 @@ class ExperimentalMcpServerTasks {
|
|
|
35460
35460
|
}
|
|
35461
35461
|
}
|
|
35462
35462
|
|
|
35463
|
-
//
|
|
35463
|
+
// node_modules/zod/index.js
|
|
35464
35464
|
var init_zod = __esm(() => {
|
|
35465
35465
|
init_external();
|
|
35466
35466
|
init_external();
|
|
35467
35467
|
});
|
|
35468
35468
|
|
|
35469
|
-
//
|
|
35469
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
35470
35470
|
class McpServer {
|
|
35471
35471
|
constructor(serverInfo, options) {
|
|
35472
35472
|
this._registeredResources = {};
|
|
@@ -40315,7 +40315,7 @@ var init_agent_bridge = __esm(() => {
|
|
|
40315
40315
|
});
|
|
40316
40316
|
});
|
|
40317
40317
|
|
|
40318
|
-
//
|
|
40318
|
+
// node_modules/yaml/dist/nodes/identity.js
|
|
40319
40319
|
var require_identity = __commonJS((exports) => {
|
|
40320
40320
|
var ALIAS = Symbol.for("yaml.alias");
|
|
40321
40321
|
var DOC = Symbol.for("yaml.document");
|
|
@@ -40369,7 +40369,7 @@ var require_identity = __commonJS((exports) => {
|
|
|
40369
40369
|
exports.isSeq = isSeq;
|
|
40370
40370
|
});
|
|
40371
40371
|
|
|
40372
|
-
//
|
|
40372
|
+
// node_modules/yaml/dist/visit.js
|
|
40373
40373
|
var require_visit = __commonJS((exports) => {
|
|
40374
40374
|
var identity = require_identity();
|
|
40375
40375
|
var BREAK = Symbol("break visit");
|
|
@@ -40524,7 +40524,7 @@ var require_visit = __commonJS((exports) => {
|
|
|
40524
40524
|
exports.visitAsync = visitAsync;
|
|
40525
40525
|
});
|
|
40526
40526
|
|
|
40527
|
-
//
|
|
40527
|
+
// node_modules/yaml/dist/doc/directives.js
|
|
40528
40528
|
var require_directives = __commonJS((exports) => {
|
|
40529
40529
|
var identity = require_identity();
|
|
40530
40530
|
var visit2 = require_visit();
|
|
@@ -40676,7 +40676,7 @@ var require_directives = __commonJS((exports) => {
|
|
|
40676
40676
|
exports.Directives = Directives;
|
|
40677
40677
|
});
|
|
40678
40678
|
|
|
40679
|
-
//
|
|
40679
|
+
// node_modules/yaml/dist/doc/anchors.js
|
|
40680
40680
|
var require_anchors = __commonJS((exports) => {
|
|
40681
40681
|
var identity = require_identity();
|
|
40682
40682
|
var visit2 = require_visit();
|
|
@@ -40738,7 +40738,7 @@ var require_anchors = __commonJS((exports) => {
|
|
|
40738
40738
|
exports.findNewAnchor = findNewAnchor;
|
|
40739
40739
|
});
|
|
40740
40740
|
|
|
40741
|
-
//
|
|
40741
|
+
// node_modules/yaml/dist/doc/applyReviver.js
|
|
40742
40742
|
var require_applyReviver = __commonJS((exports) => {
|
|
40743
40743
|
function applyReviver(reviver, obj, key, val) {
|
|
40744
40744
|
if (val && typeof val === "object") {
|
|
@@ -40785,7 +40785,7 @@ var require_applyReviver = __commonJS((exports) => {
|
|
|
40785
40785
|
exports.applyReviver = applyReviver;
|
|
40786
40786
|
});
|
|
40787
40787
|
|
|
40788
|
-
//
|
|
40788
|
+
// node_modules/yaml/dist/nodes/toJS.js
|
|
40789
40789
|
var require_toJS = __commonJS((exports) => {
|
|
40790
40790
|
var identity = require_identity();
|
|
40791
40791
|
function toJS(value, arg, ctx) {
|
|
@@ -40812,7 +40812,7 @@ var require_toJS = __commonJS((exports) => {
|
|
|
40812
40812
|
exports.toJS = toJS;
|
|
40813
40813
|
});
|
|
40814
40814
|
|
|
40815
|
-
//
|
|
40815
|
+
// node_modules/yaml/dist/nodes/Node.js
|
|
40816
40816
|
var require_Node = __commonJS((exports) => {
|
|
40817
40817
|
var applyReviver = require_applyReviver();
|
|
40818
40818
|
var identity = require_identity();
|
|
@@ -40849,7 +40849,7 @@ var require_Node = __commonJS((exports) => {
|
|
|
40849
40849
|
exports.NodeBase = NodeBase;
|
|
40850
40850
|
});
|
|
40851
40851
|
|
|
40852
|
-
//
|
|
40852
|
+
// node_modules/yaml/dist/nodes/Alias.js
|
|
40853
40853
|
var require_Alias = __commonJS((exports) => {
|
|
40854
40854
|
var anchors = require_anchors();
|
|
40855
40855
|
var visit2 = require_visit();
|
|
@@ -40959,7 +40959,7 @@ var require_Alias = __commonJS((exports) => {
|
|
|
40959
40959
|
exports.Alias = Alias;
|
|
40960
40960
|
});
|
|
40961
40961
|
|
|
40962
|
-
//
|
|
40962
|
+
// node_modules/yaml/dist/nodes/Scalar.js
|
|
40963
40963
|
var require_Scalar = __commonJS((exports) => {
|
|
40964
40964
|
var identity = require_identity();
|
|
40965
40965
|
var Node = require_Node();
|
|
@@ -40987,7 +40987,7 @@ var require_Scalar = __commonJS((exports) => {
|
|
|
40987
40987
|
exports.isScalarValue = isScalarValue;
|
|
40988
40988
|
});
|
|
40989
40989
|
|
|
40990
|
-
//
|
|
40990
|
+
// node_modules/yaml/dist/doc/createNode.js
|
|
40991
40991
|
var require_createNode = __commonJS((exports) => {
|
|
40992
40992
|
var Alias = require_Alias();
|
|
40993
40993
|
var identity = require_identity();
|
|
@@ -41059,7 +41059,7 @@ var require_createNode = __commonJS((exports) => {
|
|
|
41059
41059
|
exports.createNode = createNode;
|
|
41060
41060
|
});
|
|
41061
41061
|
|
|
41062
|
-
//
|
|
41062
|
+
// node_modules/yaml/dist/nodes/Collection.js
|
|
41063
41063
|
var require_Collection = __commonJS((exports) => {
|
|
41064
41064
|
var createNode = require_createNode();
|
|
41065
41065
|
var identity = require_identity();
|
|
@@ -41174,7 +41174,7 @@ var require_Collection = __commonJS((exports) => {
|
|
|
41174
41174
|
exports.isEmptyPath = isEmptyPath;
|
|
41175
41175
|
});
|
|
41176
41176
|
|
|
41177
|
-
//
|
|
41177
|
+
// node_modules/yaml/dist/stringify/stringifyComment.js
|
|
41178
41178
|
var require_stringifyComment = __commonJS((exports) => {
|
|
41179
41179
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
41180
41180
|
function indentComment(comment, indent) {
|
|
@@ -41191,7 +41191,7 @@ var require_stringifyComment = __commonJS((exports) => {
|
|
|
41191
41191
|
exports.stringifyComment = stringifyComment;
|
|
41192
41192
|
});
|
|
41193
41193
|
|
|
41194
|
-
//
|
|
41194
|
+
// node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
41195
41195
|
var require_foldFlowLines = __commonJS((exports) => {
|
|
41196
41196
|
var FOLD_FLOW = "flow";
|
|
41197
41197
|
var FOLD_BLOCK = "block";
|
|
@@ -41328,7 +41328,7 @@ ${indent}${text2.slice(fold + 1, end2)}`;
|
|
|
41328
41328
|
exports.foldFlowLines = foldFlowLines;
|
|
41329
41329
|
});
|
|
41330
41330
|
|
|
41331
|
-
//
|
|
41331
|
+
// node_modules/yaml/dist/stringify/stringifyString.js
|
|
41332
41332
|
var require_stringifyString = __commonJS((exports) => {
|
|
41333
41333
|
var Scalar = require_Scalar();
|
|
41334
41334
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -41626,7 +41626,7 @@ ${indent}`);
|
|
|
41626
41626
|
exports.stringifyString = stringifyString;
|
|
41627
41627
|
});
|
|
41628
41628
|
|
|
41629
|
-
//
|
|
41629
|
+
// node_modules/yaml/dist/stringify/stringify.js
|
|
41630
41630
|
var require_stringify = __commonJS((exports) => {
|
|
41631
41631
|
var anchors = require_anchors();
|
|
41632
41632
|
var identity = require_identity();
|
|
@@ -41747,7 +41747,7 @@ ${ctx.indent}${str}`;
|
|
|
41747
41747
|
exports.stringify = stringify;
|
|
41748
41748
|
});
|
|
41749
41749
|
|
|
41750
|
-
//
|
|
41750
|
+
// node_modules/yaml/dist/stringify/stringifyPair.js
|
|
41751
41751
|
var require_stringifyPair = __commonJS((exports) => {
|
|
41752
41752
|
var identity = require_identity();
|
|
41753
41753
|
var Scalar = require_Scalar();
|
|
@@ -41883,7 +41883,7 @@ ${ctx.indent}`;
|
|
|
41883
41883
|
exports.stringifyPair = stringifyPair;
|
|
41884
41884
|
});
|
|
41885
41885
|
|
|
41886
|
-
//
|
|
41886
|
+
// node_modules/yaml/dist/log.js
|
|
41887
41887
|
var require_log = __commonJS((exports) => {
|
|
41888
41888
|
var node_process = __require("process");
|
|
41889
41889
|
function debug(logLevel, ...messages) {
|
|
@@ -41902,7 +41902,7 @@ var require_log = __commonJS((exports) => {
|
|
|
41902
41902
|
exports.warn = warn;
|
|
41903
41903
|
});
|
|
41904
41904
|
|
|
41905
|
-
//
|
|
41905
|
+
// node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
41906
41906
|
var require_merge = __commonJS((exports) => {
|
|
41907
41907
|
var identity = require_identity();
|
|
41908
41908
|
var Scalar = require_Scalar();
|
|
@@ -41959,7 +41959,7 @@ var require_merge = __commonJS((exports) => {
|
|
|
41959
41959
|
exports.merge = merge2;
|
|
41960
41960
|
});
|
|
41961
41961
|
|
|
41962
|
-
//
|
|
41962
|
+
// node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
41963
41963
|
var require_addPairToJSMap = __commonJS((exports) => {
|
|
41964
41964
|
var log = require_log();
|
|
41965
41965
|
var merge2 = require_merge();
|
|
@@ -42020,7 +42020,7 @@ var require_addPairToJSMap = __commonJS((exports) => {
|
|
|
42020
42020
|
exports.addPairToJSMap = addPairToJSMap;
|
|
42021
42021
|
});
|
|
42022
42022
|
|
|
42023
|
-
//
|
|
42023
|
+
// node_modules/yaml/dist/nodes/Pair.js
|
|
42024
42024
|
var require_Pair = __commonJS((exports) => {
|
|
42025
42025
|
var createNode = require_createNode();
|
|
42026
42026
|
var stringifyPair = require_stringifyPair();
|
|
@@ -42058,7 +42058,7 @@ var require_Pair = __commonJS((exports) => {
|
|
|
42058
42058
|
exports.createPair = createPair;
|
|
42059
42059
|
});
|
|
42060
42060
|
|
|
42061
|
-
//
|
|
42061
|
+
// node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
42062
42062
|
var require_stringifyCollection = __commonJS((exports) => {
|
|
42063
42063
|
var identity = require_identity();
|
|
42064
42064
|
var stringify = require_stringify();
|
|
@@ -42210,7 +42210,7 @@ ${indent}${end}`;
|
|
|
42210
42210
|
exports.stringifyCollection = stringifyCollection;
|
|
42211
42211
|
});
|
|
42212
42212
|
|
|
42213
|
-
//
|
|
42213
|
+
// node_modules/yaml/dist/nodes/YAMLMap.js
|
|
42214
42214
|
var require_YAMLMap = __commonJS((exports) => {
|
|
42215
42215
|
var stringifyCollection = require_stringifyCollection();
|
|
42216
42216
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -42337,7 +42337,7 @@ var require_YAMLMap = __commonJS((exports) => {
|
|
|
42337
42337
|
exports.findPair = findPair;
|
|
42338
42338
|
});
|
|
42339
42339
|
|
|
42340
|
-
//
|
|
42340
|
+
// node_modules/yaml/dist/schema/common/map.js
|
|
42341
42341
|
var require_map = __commonJS((exports) => {
|
|
42342
42342
|
var identity = require_identity();
|
|
42343
42343
|
var YAMLMap = require_YAMLMap();
|
|
@@ -42356,7 +42356,7 @@ var require_map = __commonJS((exports) => {
|
|
|
42356
42356
|
exports.map = map3;
|
|
42357
42357
|
});
|
|
42358
42358
|
|
|
42359
|
-
//
|
|
42359
|
+
// node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
42360
42360
|
var require_YAMLSeq = __commonJS((exports) => {
|
|
42361
42361
|
var createNode = require_createNode();
|
|
42362
42362
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -42449,7 +42449,7 @@ var require_YAMLSeq = __commonJS((exports) => {
|
|
|
42449
42449
|
exports.YAMLSeq = YAMLSeq;
|
|
42450
42450
|
});
|
|
42451
42451
|
|
|
42452
|
-
//
|
|
42452
|
+
// node_modules/yaml/dist/schema/common/seq.js
|
|
42453
42453
|
var require_seq = __commonJS((exports) => {
|
|
42454
42454
|
var identity = require_identity();
|
|
42455
42455
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -42468,7 +42468,7 @@ var require_seq = __commonJS((exports) => {
|
|
|
42468
42468
|
exports.seq = seq;
|
|
42469
42469
|
});
|
|
42470
42470
|
|
|
42471
|
-
//
|
|
42471
|
+
// node_modules/yaml/dist/schema/common/string.js
|
|
42472
42472
|
var require_string = __commonJS((exports) => {
|
|
42473
42473
|
var stringifyString = require_stringifyString();
|
|
42474
42474
|
var string5 = {
|
|
@@ -42484,7 +42484,7 @@ var require_string = __commonJS((exports) => {
|
|
|
42484
42484
|
exports.string = string5;
|
|
42485
42485
|
});
|
|
42486
42486
|
|
|
42487
|
-
//
|
|
42487
|
+
// node_modules/yaml/dist/schema/common/null.js
|
|
42488
42488
|
var require_null = __commonJS((exports) => {
|
|
42489
42489
|
var Scalar = require_Scalar();
|
|
42490
42490
|
var nullTag = {
|
|
@@ -42499,7 +42499,7 @@ var require_null = __commonJS((exports) => {
|
|
|
42499
42499
|
exports.nullTag = nullTag;
|
|
42500
42500
|
});
|
|
42501
42501
|
|
|
42502
|
-
//
|
|
42502
|
+
// node_modules/yaml/dist/schema/core/bool.js
|
|
42503
42503
|
var require_bool = __commonJS((exports) => {
|
|
42504
42504
|
var Scalar = require_Scalar();
|
|
42505
42505
|
var boolTag = {
|
|
@@ -42520,7 +42520,7 @@ var require_bool = __commonJS((exports) => {
|
|
|
42520
42520
|
exports.boolTag = boolTag;
|
|
42521
42521
|
});
|
|
42522
42522
|
|
|
42523
|
-
//
|
|
42523
|
+
// node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
42524
42524
|
var require_stringifyNumber = __commonJS((exports) => {
|
|
42525
42525
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
42526
42526
|
if (typeof value === "bigint")
|
|
@@ -42544,7 +42544,7 @@ var require_stringifyNumber = __commonJS((exports) => {
|
|
|
42544
42544
|
exports.stringifyNumber = stringifyNumber;
|
|
42545
42545
|
});
|
|
42546
42546
|
|
|
42547
|
-
//
|
|
42547
|
+
// node_modules/yaml/dist/schema/core/float.js
|
|
42548
42548
|
var require_float = __commonJS((exports) => {
|
|
42549
42549
|
var Scalar = require_Scalar();
|
|
42550
42550
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -42587,7 +42587,7 @@ var require_float = __commonJS((exports) => {
|
|
|
42587
42587
|
exports.floatNaN = floatNaN;
|
|
42588
42588
|
});
|
|
42589
42589
|
|
|
42590
|
-
//
|
|
42590
|
+
// node_modules/yaml/dist/schema/core/int.js
|
|
42591
42591
|
var require_int = __commonJS((exports) => {
|
|
42592
42592
|
var stringifyNumber = require_stringifyNumber();
|
|
42593
42593
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -42629,7 +42629,7 @@ var require_int = __commonJS((exports) => {
|
|
|
42629
42629
|
exports.intOct = intOct;
|
|
42630
42630
|
});
|
|
42631
42631
|
|
|
42632
|
-
//
|
|
42632
|
+
// node_modules/yaml/dist/schema/core/schema.js
|
|
42633
42633
|
var require_schema = __commonJS((exports) => {
|
|
42634
42634
|
var map3 = require_map();
|
|
42635
42635
|
var _null4 = require_null();
|
|
@@ -42654,7 +42654,7 @@ var require_schema = __commonJS((exports) => {
|
|
|
42654
42654
|
exports.schema = schema;
|
|
42655
42655
|
});
|
|
42656
42656
|
|
|
42657
|
-
//
|
|
42657
|
+
// node_modules/yaml/dist/schema/json/schema.js
|
|
42658
42658
|
var require_schema2 = __commonJS((exports) => {
|
|
42659
42659
|
var Scalar = require_Scalar();
|
|
42660
42660
|
var map3 = require_map();
|
|
@@ -42718,7 +42718,7 @@ var require_schema2 = __commonJS((exports) => {
|
|
|
42718
42718
|
exports.schema = schema;
|
|
42719
42719
|
});
|
|
42720
42720
|
|
|
42721
|
-
//
|
|
42721
|
+
// node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
42722
42722
|
var require_binary = __commonJS((exports) => {
|
|
42723
42723
|
var node_buffer = __require("buffer");
|
|
42724
42724
|
var Scalar = require_Scalar();
|
|
@@ -42773,7 +42773,7 @@ var require_binary = __commonJS((exports) => {
|
|
|
42773
42773
|
exports.binary = binary;
|
|
42774
42774
|
});
|
|
42775
42775
|
|
|
42776
|
-
//
|
|
42776
|
+
// node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
42777
42777
|
var require_pairs = __commonJS((exports) => {
|
|
42778
42778
|
var identity = require_identity();
|
|
42779
42779
|
var Pair = require_Pair();
|
|
@@ -42848,7 +42848,7 @@ ${cn.comment}` : item.comment;
|
|
|
42848
42848
|
exports.resolvePairs = resolvePairs;
|
|
42849
42849
|
});
|
|
42850
42850
|
|
|
42851
|
-
//
|
|
42851
|
+
// node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
42852
42852
|
var require_omap = __commonJS((exports) => {
|
|
42853
42853
|
var identity = require_identity();
|
|
42854
42854
|
var toJS = require_toJS();
|
|
@@ -42920,7 +42920,7 @@ var require_omap = __commonJS((exports) => {
|
|
|
42920
42920
|
exports.omap = omap;
|
|
42921
42921
|
});
|
|
42922
42922
|
|
|
42923
|
-
//
|
|
42923
|
+
// node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
42924
42924
|
var require_bool2 = __commonJS((exports) => {
|
|
42925
42925
|
var Scalar = require_Scalar();
|
|
42926
42926
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -42949,7 +42949,7 @@ var require_bool2 = __commonJS((exports) => {
|
|
|
42949
42949
|
exports.trueTag = trueTag;
|
|
42950
42950
|
});
|
|
42951
42951
|
|
|
42952
|
-
//
|
|
42952
|
+
// node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
42953
42953
|
var require_float2 = __commonJS((exports) => {
|
|
42954
42954
|
var Scalar = require_Scalar();
|
|
42955
42955
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -42995,7 +42995,7 @@ var require_float2 = __commonJS((exports) => {
|
|
|
42995
42995
|
exports.floatNaN = floatNaN;
|
|
42996
42996
|
});
|
|
42997
42997
|
|
|
42998
|
-
//
|
|
42998
|
+
// node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
42999
42999
|
var require_int2 = __commonJS((exports) => {
|
|
43000
43000
|
var stringifyNumber = require_stringifyNumber();
|
|
43001
43001
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -43071,7 +43071,7 @@ var require_int2 = __commonJS((exports) => {
|
|
|
43071
43071
|
exports.intOct = intOct;
|
|
43072
43072
|
});
|
|
43073
43073
|
|
|
43074
|
-
//
|
|
43074
|
+
// node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
43075
43075
|
var require_set = __commonJS((exports) => {
|
|
43076
43076
|
var identity = require_identity();
|
|
43077
43077
|
var Pair = require_Pair();
|
|
@@ -43154,7 +43154,7 @@ var require_set = __commonJS((exports) => {
|
|
|
43154
43154
|
exports.set = set3;
|
|
43155
43155
|
});
|
|
43156
43156
|
|
|
43157
|
-
//
|
|
43157
|
+
// node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
43158
43158
|
var require_timestamp = __commonJS((exports) => {
|
|
43159
43159
|
var stringifyNumber = require_stringifyNumber();
|
|
43160
43160
|
function parseSexagesimal(str, asBigInt) {
|
|
@@ -43236,7 +43236,7 @@ var require_timestamp = __commonJS((exports) => {
|
|
|
43236
43236
|
exports.timestamp = timestamp;
|
|
43237
43237
|
});
|
|
43238
43238
|
|
|
43239
|
-
//
|
|
43239
|
+
// node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
43240
43240
|
var require_schema3 = __commonJS((exports) => {
|
|
43241
43241
|
var map3 = require_map();
|
|
43242
43242
|
var _null4 = require_null();
|
|
@@ -43277,7 +43277,7 @@ var require_schema3 = __commonJS((exports) => {
|
|
|
43277
43277
|
exports.schema = schema;
|
|
43278
43278
|
});
|
|
43279
43279
|
|
|
43280
|
-
//
|
|
43280
|
+
// node_modules/yaml/dist/schema/tags.js
|
|
43281
43281
|
var require_tags = __commonJS((exports) => {
|
|
43282
43282
|
var map3 = require_map();
|
|
43283
43283
|
var _null4 = require_null();
|
|
@@ -43368,7 +43368,7 @@ var require_tags = __commonJS((exports) => {
|
|
|
43368
43368
|
exports.getTags = getTags;
|
|
43369
43369
|
});
|
|
43370
43370
|
|
|
43371
|
-
//
|
|
43371
|
+
// node_modules/yaml/dist/schema/Schema.js
|
|
43372
43372
|
var require_Schema = __commonJS((exports) => {
|
|
43373
43373
|
var identity = require_identity();
|
|
43374
43374
|
var map3 = require_map();
|
|
@@ -43398,7 +43398,7 @@ var require_Schema = __commonJS((exports) => {
|
|
|
43398
43398
|
exports.Schema = Schema;
|
|
43399
43399
|
});
|
|
43400
43400
|
|
|
43401
|
-
//
|
|
43401
|
+
// node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
43402
43402
|
var require_stringifyDocument = __commonJS((exports) => {
|
|
43403
43403
|
var identity = require_identity();
|
|
43404
43404
|
var stringify = require_stringify();
|
|
@@ -43478,7 +43478,7 @@ var require_stringifyDocument = __commonJS((exports) => {
|
|
|
43478
43478
|
exports.stringifyDocument = stringifyDocument;
|
|
43479
43479
|
});
|
|
43480
43480
|
|
|
43481
|
-
//
|
|
43481
|
+
// node_modules/yaml/dist/doc/Document.js
|
|
43482
43482
|
var require_Document = __commonJS((exports) => {
|
|
43483
43483
|
var Alias = require_Alias();
|
|
43484
43484
|
var Collection = require_Collection();
|
|
@@ -43713,7 +43713,7 @@ var require_Document = __commonJS((exports) => {
|
|
|
43713
43713
|
exports.Document = Document;
|
|
43714
43714
|
});
|
|
43715
43715
|
|
|
43716
|
-
//
|
|
43716
|
+
// node_modules/yaml/dist/errors.js
|
|
43717
43717
|
var require_errors2 = __commonJS((exports) => {
|
|
43718
43718
|
class YAMLError extends Error {
|
|
43719
43719
|
constructor(name, pos, code, message) {
|
|
@@ -43778,7 +43778,7 @@ ${pointer}
|
|
|
43778
43778
|
exports.prettifyError = prettifyError2;
|
|
43779
43779
|
});
|
|
43780
43780
|
|
|
43781
|
-
//
|
|
43781
|
+
// node_modules/yaml/dist/compose/resolve-props.js
|
|
43782
43782
|
var require_resolve_props = __commonJS((exports) => {
|
|
43783
43783
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
43784
43784
|
let spaceBefore = false;
|
|
@@ -43908,7 +43908,7 @@ var require_resolve_props = __commonJS((exports) => {
|
|
|
43908
43908
|
exports.resolveProps = resolveProps;
|
|
43909
43909
|
});
|
|
43910
43910
|
|
|
43911
|
-
//
|
|
43911
|
+
// node_modules/yaml/dist/compose/util-contains-newline.js
|
|
43912
43912
|
var require_util_contains_newline = __commonJS((exports) => {
|
|
43913
43913
|
function containsNewline(key) {
|
|
43914
43914
|
if (!key)
|
|
@@ -43948,7 +43948,7 @@ var require_util_contains_newline = __commonJS((exports) => {
|
|
|
43948
43948
|
exports.containsNewline = containsNewline;
|
|
43949
43949
|
});
|
|
43950
43950
|
|
|
43951
|
-
//
|
|
43951
|
+
// node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
43952
43952
|
var require_util_flow_indent_check = __commonJS((exports) => {
|
|
43953
43953
|
var utilContainsNewline = require_util_contains_newline();
|
|
43954
43954
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -43963,7 +43963,7 @@ var require_util_flow_indent_check = __commonJS((exports) => {
|
|
|
43963
43963
|
exports.flowIndentCheck = flowIndentCheck;
|
|
43964
43964
|
});
|
|
43965
43965
|
|
|
43966
|
-
//
|
|
43966
|
+
// node_modules/yaml/dist/compose/util-map-includes.js
|
|
43967
43967
|
var require_util_map_includes = __commonJS((exports) => {
|
|
43968
43968
|
var identity = require_identity();
|
|
43969
43969
|
function mapIncludes(ctx, items, search) {
|
|
@@ -43976,7 +43976,7 @@ var require_util_map_includes = __commonJS((exports) => {
|
|
|
43976
43976
|
exports.mapIncludes = mapIncludes;
|
|
43977
43977
|
});
|
|
43978
43978
|
|
|
43979
|
-
//
|
|
43979
|
+
// node_modules/yaml/dist/compose/resolve-block-map.js
|
|
43980
43980
|
var require_resolve_block_map = __commonJS((exports) => {
|
|
43981
43981
|
var Pair = require_Pair();
|
|
43982
43982
|
var YAMLMap = require_YAMLMap();
|
|
@@ -44083,7 +44083,7 @@ var require_resolve_block_map = __commonJS((exports) => {
|
|
|
44083
44083
|
exports.resolveBlockMap = resolveBlockMap;
|
|
44084
44084
|
});
|
|
44085
44085
|
|
|
44086
|
-
//
|
|
44086
|
+
// node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
44087
44087
|
var require_resolve_block_seq = __commonJS((exports) => {
|
|
44088
44088
|
var YAMLSeq = require_YAMLSeq();
|
|
44089
44089
|
var resolveProps = require_resolve_props();
|
|
@@ -44131,7 +44131,7 @@ var require_resolve_block_seq = __commonJS((exports) => {
|
|
|
44131
44131
|
exports.resolveBlockSeq = resolveBlockSeq;
|
|
44132
44132
|
});
|
|
44133
44133
|
|
|
44134
|
-
//
|
|
44134
|
+
// node_modules/yaml/dist/compose/resolve-end.js
|
|
44135
44135
|
var require_resolve_end = __commonJS((exports) => {
|
|
44136
44136
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
44137
44137
|
let comment = "";
|
|
@@ -44171,7 +44171,7 @@ var require_resolve_end = __commonJS((exports) => {
|
|
|
44171
44171
|
exports.resolveEnd = resolveEnd;
|
|
44172
44172
|
});
|
|
44173
44173
|
|
|
44174
|
-
//
|
|
44174
|
+
// node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
44175
44175
|
var require_resolve_flow_collection = __commonJS((exports) => {
|
|
44176
44176
|
var identity = require_identity();
|
|
44177
44177
|
var Pair = require_Pair();
|
|
@@ -44362,7 +44362,7 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
44362
44362
|
exports.resolveFlowCollection = resolveFlowCollection;
|
|
44363
44363
|
});
|
|
44364
44364
|
|
|
44365
|
-
//
|
|
44365
|
+
// node_modules/yaml/dist/compose/compose-collection.js
|
|
44366
44366
|
var require_compose_collection = __commonJS((exports) => {
|
|
44367
44367
|
var identity = require_identity();
|
|
44368
44368
|
var Scalar = require_Scalar();
|
|
@@ -44424,7 +44424,7 @@ var require_compose_collection = __commonJS((exports) => {
|
|
|
44424
44424
|
exports.composeCollection = composeCollection;
|
|
44425
44425
|
});
|
|
44426
44426
|
|
|
44427
|
-
//
|
|
44427
|
+
// node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
44428
44428
|
var require_resolve_block_scalar = __commonJS((exports) => {
|
|
44429
44429
|
var Scalar = require_Scalar();
|
|
44430
44430
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -44617,7 +44617,7 @@ var require_resolve_block_scalar = __commonJS((exports) => {
|
|
|
44617
44617
|
exports.resolveBlockScalar = resolveBlockScalar;
|
|
44618
44618
|
});
|
|
44619
44619
|
|
|
44620
|
-
//
|
|
44620
|
+
// node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
44621
44621
|
var require_resolve_flow_scalar = __commonJS((exports) => {
|
|
44622
44622
|
var Scalar = require_Scalar();
|
|
44623
44623
|
var resolveEnd = require_resolve_end();
|
|
@@ -44834,7 +44834,7 @@ var require_resolve_flow_scalar = __commonJS((exports) => {
|
|
|
44834
44834
|
exports.resolveFlowScalar = resolveFlowScalar;
|
|
44835
44835
|
});
|
|
44836
44836
|
|
|
44837
|
-
//
|
|
44837
|
+
// node_modules/yaml/dist/compose/compose-scalar.js
|
|
44838
44838
|
var require_compose_scalar = __commonJS((exports) => {
|
|
44839
44839
|
var identity = require_identity();
|
|
44840
44840
|
var Scalar = require_Scalar();
|
|
@@ -44912,7 +44912,7 @@ var require_compose_scalar = __commonJS((exports) => {
|
|
|
44912
44912
|
exports.composeScalar = composeScalar;
|
|
44913
44913
|
});
|
|
44914
44914
|
|
|
44915
|
-
//
|
|
44915
|
+
// node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
44916
44916
|
var require_util_empty_scalar_position = __commonJS((exports) => {
|
|
44917
44917
|
function emptyScalarPosition(offset, before, pos) {
|
|
44918
44918
|
if (before) {
|
|
@@ -44939,7 +44939,7 @@ var require_util_empty_scalar_position = __commonJS((exports) => {
|
|
|
44939
44939
|
exports.emptyScalarPosition = emptyScalarPosition;
|
|
44940
44940
|
});
|
|
44941
44941
|
|
|
44942
|
-
//
|
|
44942
|
+
// node_modules/yaml/dist/compose/compose-node.js
|
|
44943
44943
|
var require_compose_node = __commonJS((exports) => {
|
|
44944
44944
|
var Alias = require_Alias();
|
|
44945
44945
|
var identity = require_identity();
|
|
@@ -45042,7 +45042,7 @@ var require_compose_node = __commonJS((exports) => {
|
|
|
45042
45042
|
exports.composeNode = composeNode;
|
|
45043
45043
|
});
|
|
45044
45044
|
|
|
45045
|
-
//
|
|
45045
|
+
// node_modules/yaml/dist/compose/compose-doc.js
|
|
45046
45046
|
var require_compose_doc = __commonJS((exports) => {
|
|
45047
45047
|
var Document = require_Document();
|
|
45048
45048
|
var composeNode = require_compose_node();
|
|
@@ -45082,7 +45082,7 @@ var require_compose_doc = __commonJS((exports) => {
|
|
|
45082
45082
|
exports.composeDoc = composeDoc;
|
|
45083
45083
|
});
|
|
45084
45084
|
|
|
45085
|
-
//
|
|
45085
|
+
// node_modules/yaml/dist/compose/composer.js
|
|
45086
45086
|
var require_composer = __commonJS((exports) => {
|
|
45087
45087
|
var node_process = __require("process");
|
|
45088
45088
|
var directives = require_directives();
|
|
@@ -45273,7 +45273,7 @@ ${end.comment}` : end.comment;
|
|
|
45273
45273
|
exports.Composer = Composer;
|
|
45274
45274
|
});
|
|
45275
45275
|
|
|
45276
|
-
//
|
|
45276
|
+
// node_modules/yaml/dist/parse/cst-scalar.js
|
|
45277
45277
|
var require_cst_scalar = __commonJS((exports) => {
|
|
45278
45278
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
45279
45279
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -45463,7 +45463,7 @@ var require_cst_scalar = __commonJS((exports) => {
|
|
|
45463
45463
|
exports.setScalarValue = setScalarValue;
|
|
45464
45464
|
});
|
|
45465
45465
|
|
|
45466
|
-
//
|
|
45466
|
+
// node_modules/yaml/dist/parse/cst-stringify.js
|
|
45467
45467
|
var require_cst_stringify = __commonJS((exports) => {
|
|
45468
45468
|
var stringify = (cst) => ("type" in cst) ? stringifyToken(cst) : stringifyItem(cst);
|
|
45469
45469
|
function stringifyToken(token) {
|
|
@@ -45521,7 +45521,7 @@ var require_cst_stringify = __commonJS((exports) => {
|
|
|
45521
45521
|
exports.stringify = stringify;
|
|
45522
45522
|
});
|
|
45523
45523
|
|
|
45524
|
-
//
|
|
45524
|
+
// node_modules/yaml/dist/parse/cst-visit.js
|
|
45525
45525
|
var require_cst_visit = __commonJS((exports) => {
|
|
45526
45526
|
var BREAK = Symbol("break visit");
|
|
45527
45527
|
var SKIP = Symbol("skip children");
|
|
@@ -45580,7 +45580,7 @@ var require_cst_visit = __commonJS((exports) => {
|
|
|
45580
45580
|
exports.visit = visit2;
|
|
45581
45581
|
});
|
|
45582
45582
|
|
|
45583
|
-
//
|
|
45583
|
+
// node_modules/yaml/dist/parse/cst.js
|
|
45584
45584
|
var require_cst = __commonJS((exports) => {
|
|
45585
45585
|
var cstScalar = require_cst_scalar();
|
|
45586
45586
|
var cstStringify = require_cst_stringify();
|
|
@@ -45681,7 +45681,7 @@ var require_cst = __commonJS((exports) => {
|
|
|
45681
45681
|
exports.tokenType = tokenType;
|
|
45682
45682
|
});
|
|
45683
45683
|
|
|
45684
|
-
//
|
|
45684
|
+
// node_modules/yaml/dist/parse/lexer.js
|
|
45685
45685
|
var require_lexer = __commonJS((exports) => {
|
|
45686
45686
|
var cst = require_cst();
|
|
45687
45687
|
function isEmpty(ch) {
|
|
@@ -46278,7 +46278,7 @@ var require_lexer = __commonJS((exports) => {
|
|
|
46278
46278
|
exports.Lexer = Lexer;
|
|
46279
46279
|
});
|
|
46280
46280
|
|
|
46281
|
-
//
|
|
46281
|
+
// node_modules/yaml/dist/parse/line-counter.js
|
|
46282
46282
|
var require_line_counter = __commonJS((exports) => {
|
|
46283
46283
|
class LineCounter {
|
|
46284
46284
|
constructor() {
|
|
@@ -46306,7 +46306,7 @@ var require_line_counter = __commonJS((exports) => {
|
|
|
46306
46306
|
exports.LineCounter = LineCounter;
|
|
46307
46307
|
});
|
|
46308
46308
|
|
|
46309
|
-
//
|
|
46309
|
+
// node_modules/yaml/dist/parse/parser.js
|
|
46310
46310
|
var require_parser = __commonJS((exports) => {
|
|
46311
46311
|
var node_process = __require("process");
|
|
46312
46312
|
var cst = require_cst();
|
|
@@ -47162,7 +47162,7 @@ var require_parser = __commonJS((exports) => {
|
|
|
47162
47162
|
exports.Parser = Parser;
|
|
47163
47163
|
});
|
|
47164
47164
|
|
|
47165
|
-
//
|
|
47165
|
+
// node_modules/yaml/dist/public-api.js
|
|
47166
47166
|
var require_public_api = __commonJS((exports) => {
|
|
47167
47167
|
var composer = require_composer();
|
|
47168
47168
|
var Document = require_Document();
|
|
@@ -47256,7 +47256,7 @@ var require_public_api = __commonJS((exports) => {
|
|
|
47256
47256
|
exports.stringify = stringify;
|
|
47257
47257
|
});
|
|
47258
47258
|
|
|
47259
|
-
//
|
|
47259
|
+
// node_modules/yaml/dist/index.js
|
|
47260
47260
|
var composer, Document, Schema, errors4, Alias, identity, Pair, Scalar, YAMLMap, YAMLSeq, cst, lexer, lineCounter, parser, publicApi, visit2, $Composer, $Document, $Schema, $YAMLError, $YAMLParseError, $YAMLWarning, $Alias, $isAlias, $isCollection, $isDocument, $isMap, $isNode, $isPair, $isScalar, $isSeq, $Pair, $Scalar, $YAMLMap, $YAMLSeq, $Lexer, $LineCounter, $Parser, $parse, $parseAllDocuments, $parseDocument, $stringify, $visit, $visitAsync;
|
|
47261
47261
|
var init_dist = __esm(() => {
|
|
47262
47262
|
composer = require_composer();
|
|
@@ -53287,16 +53287,1434 @@ var init_run_routing = __esm(() => {
|
|
|
53287
53287
|
init_fleet_credentials();
|
|
53288
53288
|
});
|
|
53289
53289
|
|
|
53290
|
+
// node_modules/@hasna/secrets/dist/sdk.js
|
|
53291
|
+
import { isIP as isIP2 } from "net";
|
|
53292
|
+
import { spawnSync as spawnSync2 } from "child_process";
|
|
53293
|
+
import { closeSync as closeSync10, fstatSync as fstatSync10, openSync as openSync10, readFileSync as readFileSync18 } from "fs";
|
|
53294
|
+
import { O_NOFOLLOW as O_NOFOLLOW3, O_NONBLOCK as O_NONBLOCK3, O_RDONLY as O_RDONLY3 } from "constants";
|
|
53295
|
+
import { createRequire as createRequire2 } from "module";
|
|
53296
|
+
import { hostname as osHostname2 } from "os";
|
|
53297
|
+
import { isAbsolute as isAbsolute6, join as join22 } from "path";
|
|
53298
|
+
import { createRequire as createRequire22 } from "module";
|
|
53299
|
+
function envToken2(name) {
|
|
53300
|
+
return name.toUpperCase().replace(/-/g, "_");
|
|
53301
|
+
}
|
|
53302
|
+
function clientTransportEnvKeys2(name) {
|
|
53303
|
+
const envSegment = envToken2(name);
|
|
53304
|
+
return {
|
|
53305
|
+
apiUrlKeys: [`HASNA_${envSegment}_API_URL`, `${envSegment}_API_URL`],
|
|
53306
|
+
apiKeyKeys: [`HASNA_${envSegment}_API_KEY`, `${envSegment}_API_KEY`]
|
|
53307
|
+
};
|
|
53308
|
+
}
|
|
53309
|
+
function credentialOverrideEnvKey2(name) {
|
|
53310
|
+
return `HASNA_${envToken2(name)}_API_KEY_OVERRIDE`;
|
|
53311
|
+
}
|
|
53312
|
+
function credentialPointerEnvKey2(name) {
|
|
53313
|
+
return `HASNA_${envToken2(name)}_API_KEY_REF`;
|
|
53314
|
+
}
|
|
53315
|
+
function homeDir2(env) {
|
|
53316
|
+
const home = env.HOME?.trim();
|
|
53317
|
+
return home ? home : null;
|
|
53318
|
+
}
|
|
53319
|
+
function absoluteOverride2(env, key) {
|
|
53320
|
+
const value = env[key]?.trim();
|
|
53321
|
+
return value && isAbsolute6(value) ? value : null;
|
|
53322
|
+
}
|
|
53323
|
+
function hasnaHomeDir2(env) {
|
|
53324
|
+
const override = absoluteOverride2(env, HASNA_HOME_ENV_KEY2);
|
|
53325
|
+
if (override)
|
|
53326
|
+
return override;
|
|
53327
|
+
const home = homeDir2(env);
|
|
53328
|
+
return home ? join22(home, HASNA_HOME_DIR2) : null;
|
|
53329
|
+
}
|
|
53330
|
+
function appConfigDir2(name, env) {
|
|
53331
|
+
const configRoot = absoluteOverride2(env, HASNA_CONFIG_HOME_ENV_KEY2);
|
|
53332
|
+
if (configRoot)
|
|
53333
|
+
return join22(configRoot, name);
|
|
53334
|
+
const root = hasnaHomeDir2(env);
|
|
53335
|
+
return root ? join22(root, name, CONFIG_SUBDIR2) : null;
|
|
53336
|
+
}
|
|
53337
|
+
function credentialDiskSourceList2(name, env, profile = null) {
|
|
53338
|
+
if (!SAFE_APP_SLUG2.test(name))
|
|
53339
|
+
return [];
|
|
53340
|
+
const directory2 = appConfigDir2(name, env);
|
|
53341
|
+
if (!directory2)
|
|
53342
|
+
return [];
|
|
53343
|
+
const file2 = profile ? `${CREDENTIALS_FILE2}-${profile}` : CREDENTIALS_FILE2;
|
|
53344
|
+
return [{ path: join22(directory2, file2), tier: "disk" }];
|
|
53345
|
+
}
|
|
53346
|
+
function credentialDiskSources2(name, env) {
|
|
53347
|
+
return credentialDiskSourceList2(name, env, null).map((s) => s.path);
|
|
53348
|
+
}
|
|
53349
|
+
function profileDiskSources2(name, env, profile) {
|
|
53350
|
+
return credentialDiskSourceList2(name, env, profile).map((s) => s.path);
|
|
53351
|
+
}
|
|
53352
|
+
function parseEnvFile2(text3) {
|
|
53353
|
+
const values = new Map;
|
|
53354
|
+
const unusable = new Set;
|
|
53355
|
+
for (const rawLine of text3.split(/\r?\n/)) {
|
|
53356
|
+
const line = rawLine.trim();
|
|
53357
|
+
if (line.length === 0 || line.startsWith("#"))
|
|
53358
|
+
continue;
|
|
53359
|
+
const withoutExport = line.startsWith("export ") ? line.slice("export ".length).trim() : line;
|
|
53360
|
+
const equals = withoutExport.indexOf("=");
|
|
53361
|
+
if (equals <= 0)
|
|
53362
|
+
continue;
|
|
53363
|
+
const key = withoutExport.slice(0, equals).trim();
|
|
53364
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
|
|
53365
|
+
continue;
|
|
53366
|
+
let value = withoutExport.slice(equals + 1).trim();
|
|
53367
|
+
const quote = value[0];
|
|
53368
|
+
if (quote === '"' || quote === "'") {
|
|
53369
|
+
if (value.length < 2 || !value.endsWith(quote)) {
|
|
53370
|
+
unusable.add(key);
|
|
53371
|
+
continue;
|
|
53372
|
+
}
|
|
53373
|
+
value = value.slice(1, -1);
|
|
53374
|
+
}
|
|
53375
|
+
if (value.trim().length === 0) {
|
|
53376
|
+
unusable.add(key);
|
|
53377
|
+
continue;
|
|
53378
|
+
}
|
|
53379
|
+
if (values.has(key) && values.get(key) !== value)
|
|
53380
|
+
unusable.add(key);
|
|
53381
|
+
values.set(key, value);
|
|
53382
|
+
}
|
|
53383
|
+
return { values, unusable };
|
|
53384
|
+
}
|
|
53385
|
+
function configFileModeAllowed2(mode) {
|
|
53386
|
+
const permissions = mode & 4095;
|
|
53387
|
+
return permissions === 256 || permissions === 384;
|
|
53388
|
+
}
|
|
53389
|
+
function configFileReadsCoherent2(before, after) {
|
|
53390
|
+
return before.dev === after.dev && before.ino === after.ino && before.size === after.size && before.mtimeMs === after.mtimeMs && before.ctimeMs === after.ctimeMs;
|
|
53391
|
+
}
|
|
53392
|
+
function readAppConfigFile2(path) {
|
|
53393
|
+
const unsafe = (reason) => {
|
|
53394
|
+
throw new CredentialFileUnsafeError2(path, reason);
|
|
53395
|
+
};
|
|
53396
|
+
let fd = -1;
|
|
53397
|
+
try {
|
|
53398
|
+
fd = openSync10(path, O_RDONLY3 | O_NOFOLLOW3 | O_NONBLOCK3);
|
|
53399
|
+
} catch (error61) {
|
|
53400
|
+
const code2 = error61.code;
|
|
53401
|
+
if (code2 === "ENOENT" || code2 === "ENOTDIR")
|
|
53402
|
+
return null;
|
|
53403
|
+
if (code2 === "ELOOP")
|
|
53404
|
+
unsafe("the path is a symlink");
|
|
53405
|
+
unsafe(`the path could not be opened (${code2 ?? "unknown error"})`);
|
|
53406
|
+
}
|
|
53407
|
+
try {
|
|
53408
|
+
const before = fstatSync10(fd);
|
|
53409
|
+
if (!before.isFile())
|
|
53410
|
+
unsafe("the path is not a regular file");
|
|
53411
|
+
if (!configFileModeAllowed2(before.mode)) {
|
|
53412
|
+
unsafe(`permission mode ${(before.mode & 4095).toString(8).padStart(4, "0")} is not owner-only 0400 or 0600`);
|
|
53413
|
+
}
|
|
53414
|
+
const uid = process.getuid?.() ?? process.geteuid?.();
|
|
53415
|
+
if (uid !== undefined && before.uid !== uid)
|
|
53416
|
+
unsafe("the file is not owned by the current user");
|
|
53417
|
+
if (before.size > MAX_CREDENTIAL_FILE_BYTES2)
|
|
53418
|
+
unsafe("the file exceeds the size limit");
|
|
53419
|
+
const bytes = readFileSync18(fd);
|
|
53420
|
+
const after = fstatSync10(fd);
|
|
53421
|
+
if (!configFileReadsCoherent2(before, after)) {
|
|
53422
|
+
unsafe("the file changed while being read");
|
|
53423
|
+
}
|
|
53424
|
+
return parseEnvFile2(bytes.toString("utf8"));
|
|
53425
|
+
} finally {
|
|
53426
|
+
if (fd !== -1)
|
|
53427
|
+
closeSync10(fd);
|
|
53428
|
+
}
|
|
53429
|
+
}
|
|
53430
|
+
function readCredentialFile2(path, apiKeyKeys) {
|
|
53431
|
+
const parsed = readAppConfigFile2(path);
|
|
53432
|
+
if (!parsed)
|
|
53433
|
+
return null;
|
|
53434
|
+
for (const key of apiKeyKeys) {
|
|
53435
|
+
if (parsed.unusable.has(key)) {
|
|
53436
|
+
throw new CredentialFileUnsafeError2(path, `${key} is declared but blank or malformed`);
|
|
53437
|
+
}
|
|
53438
|
+
}
|
|
53439
|
+
const values = apiKeyKeys.map((key) => parsed.values.get(key)?.trim()).filter((value) => Boolean(value));
|
|
53440
|
+
if (new Set(values).size > 1) {
|
|
53441
|
+
throw new CredentialFileUnsafeError2(path, "credential aliases disagree");
|
|
53442
|
+
}
|
|
53443
|
+
return values[0] ?? null;
|
|
53444
|
+
}
|
|
53445
|
+
function appConfigDiskValue2(name, env, keys) {
|
|
53446
|
+
const wanted = keys.filter((key) => !CREDENTIAL_SHAPED_KEY2.test(key));
|
|
53447
|
+
if (wanted.length === 0)
|
|
53448
|
+
return null;
|
|
53449
|
+
for (const path of credentialDiskSources2(name, env)) {
|
|
53450
|
+
const parsed = readAppConfigFile2(path);
|
|
53451
|
+
if (!parsed)
|
|
53452
|
+
continue;
|
|
53453
|
+
if (wanted.some((key) => parsed.unusable.has(key))) {
|
|
53454
|
+
return { key: wanted.find((key) => parsed.unusable.has(key)), value: "", path, unusable: true };
|
|
53455
|
+
}
|
|
53456
|
+
const values = wanted.map((key) => parsed.values.get(key)?.trim()).filter((value) => Boolean(value));
|
|
53457
|
+
if (new Set(values).size > 1)
|
|
53458
|
+
throw new CredentialFileUnsafeError2(path, "configuration aliases disagree");
|
|
53459
|
+
for (const key of wanted) {
|
|
53460
|
+
if (parsed.unusable.has(key))
|
|
53461
|
+
return { key, value: "", path, unusable: true };
|
|
53462
|
+
const value = parsed.values.get(key)?.trim();
|
|
53463
|
+
if (value)
|
|
53464
|
+
return { key, value, path };
|
|
53465
|
+
}
|
|
53466
|
+
}
|
|
53467
|
+
return null;
|
|
53468
|
+
}
|
|
53469
|
+
function assertUsableCredential2(appName, source, value) {
|
|
53470
|
+
if (VAULT_POINTER_SHAPE2.test(value)) {
|
|
53471
|
+
throw new CredentialResolutionError2(appName, `The credential from ${source} looks like a secrets-vault pointer (a path-shaped reference like ` + `'namespace/app/live/api_key'). A vault path is NEVER accepted as a literal API key. ` + `Use ${credentialPointerEnvKey2(appName)} to resolve the key through the vault, or provide the actual key value.`, [source]);
|
|
53472
|
+
}
|
|
53473
|
+
if (!ILLEGAL_IN_HEADER_VALUE2.test(value))
|
|
53474
|
+
return;
|
|
53475
|
+
throw new CredentialResolutionError2(appName, `The credential from ${source} contains characters that cannot be sent in an HTTP header ` + `(a control character or non-ASCII byte). A file written with CR-only line endings is the usual ` + `cause. Rewrite that credential file with one LF-terminated KEY=value line. ` + `The value is not shown here, and is deliberately never logged.`, [source]);
|
|
53476
|
+
}
|
|
53477
|
+
function sealCredential2(fields) {
|
|
53478
|
+
const { apiKey } = fields;
|
|
53479
|
+
const visible = {
|
|
53480
|
+
tier: fields.tier,
|
|
53481
|
+
source: fields.source,
|
|
53482
|
+
deliberate: fields.deliberate,
|
|
53483
|
+
diskCandidates: Object.freeze([...fields.diskCandidates]),
|
|
53484
|
+
warning: fields.warning
|
|
53485
|
+
};
|
|
53486
|
+
const sealed = { ...visible };
|
|
53487
|
+
Object.defineProperty(sealed, "apiKey", {
|
|
53488
|
+
value: apiKey,
|
|
53489
|
+
enumerable: false,
|
|
53490
|
+
writable: false,
|
|
53491
|
+
configurable: false
|
|
53492
|
+
});
|
|
53493
|
+
if (fields.pointerVaultKey !== undefined) {
|
|
53494
|
+
Object.defineProperty(sealed, "pointerVaultKey", {
|
|
53495
|
+
value: fields.pointerVaultKey,
|
|
53496
|
+
enumerable: false,
|
|
53497
|
+
writable: false,
|
|
53498
|
+
configurable: false
|
|
53499
|
+
});
|
|
53500
|
+
}
|
|
53501
|
+
Object.defineProperty(sealed, INSPECT_CUSTOM2, {
|
|
53502
|
+
value: () => ({ ...visible, apiKey: "[redacted]" }),
|
|
53503
|
+
enumerable: false,
|
|
53504
|
+
writable: false,
|
|
53505
|
+
configurable: false
|
|
53506
|
+
});
|
|
53507
|
+
Object.defineProperty(sealed, CREDENTIAL_SEAL2, {
|
|
53508
|
+
value: true,
|
|
53509
|
+
enumerable: false,
|
|
53510
|
+
writable: false,
|
|
53511
|
+
configurable: false
|
|
53512
|
+
});
|
|
53513
|
+
return Object.freeze(sealed);
|
|
53514
|
+
}
|
|
53515
|
+
function isSealedCredential(credential) {
|
|
53516
|
+
return credential[CREDENTIAL_SEAL2] === true;
|
|
53517
|
+
}
|
|
53518
|
+
function explicitCredential(appName, apiKey) {
|
|
53519
|
+
const source = "explicit apiKey option";
|
|
53520
|
+
assertUsableCredential2(appName, source, apiKey);
|
|
53521
|
+
return sealCredential2({
|
|
53522
|
+
apiKey,
|
|
53523
|
+
tier: "argument",
|
|
53524
|
+
source,
|
|
53525
|
+
deliberate: true,
|
|
53526
|
+
diskCandidates: [],
|
|
53527
|
+
warning: null
|
|
53528
|
+
});
|
|
53529
|
+
}
|
|
53530
|
+
function validateAndSealResolvedCredential(appName, credential) {
|
|
53531
|
+
const apiKey = credential.apiKey;
|
|
53532
|
+
assertUsableCredential2(appName, CALLER_SUPPLIED_CREDENTIAL_PROVIDER_SOURCE, apiKey);
|
|
53533
|
+
if (!isSealedCredential(credential)) {
|
|
53534
|
+
return sealCredential2({
|
|
53535
|
+
apiKey,
|
|
53536
|
+
tier: "argument",
|
|
53537
|
+
source: CALLER_SUPPLIED_CREDENTIAL_PROVIDER_SOURCE,
|
|
53538
|
+
deliberate: true,
|
|
53539
|
+
diskCandidates: [],
|
|
53540
|
+
warning: null
|
|
53541
|
+
});
|
|
53542
|
+
}
|
|
53543
|
+
return sealCredential2({
|
|
53544
|
+
apiKey,
|
|
53545
|
+
tier: credential.tier,
|
|
53546
|
+
source: credential.source,
|
|
53547
|
+
deliberate: credential.deliberate,
|
|
53548
|
+
diskCandidates: credential.diskCandidates,
|
|
53549
|
+
warning: credential.warning,
|
|
53550
|
+
...credential.pointerVaultKey !== undefined ? { pointerVaultKey: credential.pointerVaultKey } : {}
|
|
53551
|
+
});
|
|
53552
|
+
}
|
|
53553
|
+
function firstEnvValue2(env, keys) {
|
|
53554
|
+
for (const key of keys) {
|
|
53555
|
+
if (!Object.prototype.hasOwnProperty.call(env, key))
|
|
53556
|
+
continue;
|
|
53557
|
+
const value = env[key]?.trim();
|
|
53558
|
+
if (value)
|
|
53559
|
+
return { key, value };
|
|
53560
|
+
}
|
|
53561
|
+
return null;
|
|
53562
|
+
}
|
|
53563
|
+
function isAmbientEnvironment2(env) {
|
|
53564
|
+
return env === process.env || env[AMBIENT_ENVIRONMENT2] === true;
|
|
53565
|
+
}
|
|
53566
|
+
function defaultKeychainRunner2(argv) {
|
|
53567
|
+
const result = spawnSync2(KEYCHAIN_SECURITY_BIN2, [...argv], {
|
|
53568
|
+
encoding: "utf8",
|
|
53569
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
53570
|
+
timeout: KEYCHAIN_SPAWN_TIMEOUT_MS2
|
|
53571
|
+
});
|
|
53572
|
+
return {
|
|
53573
|
+
status: result.status,
|
|
53574
|
+
stdout: result.stdout ?? "",
|
|
53575
|
+
stderr: result.error ? result.error.message : result.stderr ?? ""
|
|
53576
|
+
};
|
|
53577
|
+
}
|
|
53578
|
+
function keychainTierEnabled2(env, options) {
|
|
53579
|
+
if ((options.platform ?? process.platform) !== "darwin")
|
|
53580
|
+
return false;
|
|
53581
|
+
if (options.enabled !== undefined)
|
|
53582
|
+
return options.enabled;
|
|
53583
|
+
return options.run !== undefined || isAmbientEnvironment2(env);
|
|
53584
|
+
}
|
|
53585
|
+
function keychainAccount2(env, options) {
|
|
53586
|
+
const station = env[KEYCHAIN_STATION_ENV_KEY2]?.trim();
|
|
53587
|
+
if (station)
|
|
53588
|
+
return station;
|
|
53589
|
+
const host = (options.hostname ?? osHostname2)().split(".")[0]?.trim() ?? "";
|
|
53590
|
+
if (host)
|
|
53591
|
+
return host;
|
|
53592
|
+
const user = env.USER?.trim();
|
|
53593
|
+
return user || null;
|
|
53594
|
+
}
|
|
53595
|
+
function keychainFailureHint2(text3) {
|
|
53596
|
+
const line = text3.split(/\r?\n/).find((entry) => entry.trim().length > 0)?.trim() ?? "";
|
|
53597
|
+
const clean = line.replace(/[\u0000-\u001f\u007f]/g, "").slice(0, 200);
|
|
53598
|
+
return clean ? `: ${clean}` : "";
|
|
53599
|
+
}
|
|
53600
|
+
function readKeychainItem2(name, env, kind, options) {
|
|
53601
|
+
if (!SAFE_APP_SLUG2.test(name) || !keychainTierEnabled2(env, options))
|
|
53602
|
+
return null;
|
|
53603
|
+
const account = keychainAccount2(env, options);
|
|
53604
|
+
if (!account)
|
|
53605
|
+
return null;
|
|
53606
|
+
const service = `${KEYCHAIN_SERVICE_PREFIX2}.${name}.${kind}`;
|
|
53607
|
+
const source = `keychain:${service}@${account}`;
|
|
53608
|
+
const run = options.run ?? defaultKeychainRunner2;
|
|
53609
|
+
let result;
|
|
53610
|
+
try {
|
|
53611
|
+
result = run(["find-generic-password", "-a", account, "-s", service, "-w"]);
|
|
53612
|
+
} catch (error61) {
|
|
53613
|
+
const reason = keychainFailureHint2(error61 instanceof Error ? error61.message : String(error61));
|
|
53614
|
+
throw new CredentialResolutionError2(name, `The Keychain lookup for ${source} could not run${reason}. A Keychain failure is never resolved ` + `around: fix the keychain, or delete the item to fall through to the credential on disk.`, [source]);
|
|
53615
|
+
}
|
|
53616
|
+
if (result.status === KEYCHAIN_ITEM_NOT_FOUND_STATUS2)
|
|
53617
|
+
return null;
|
|
53618
|
+
if (result.status !== 0) {
|
|
53619
|
+
throw new CredentialResolutionError2(name, `The Keychain lookup for ${source} failed (security exited ` + `${result.status ?? "without a status"}${keychainFailureHint2(result.stderr)}). A Keychain item that ` + `exists but cannot be read is never resolved around: unlock the keychain, run from a session that ` + `may use it, or delete the item to fall through to the credential on disk.`, [source]);
|
|
53620
|
+
}
|
|
53621
|
+
const value = result.stdout.trim();
|
|
53622
|
+
if (!value) {
|
|
53623
|
+
throw new CredentialResolutionError2(name, `${source} exists but holds an empty value; a declared item never falls through to another ` + `identity. Store a value in it or delete the item.`, [source]);
|
|
53624
|
+
}
|
|
53625
|
+
return { value, source };
|
|
53626
|
+
}
|
|
53627
|
+
function keychainConfigValue2(name, env, options = {}) {
|
|
53628
|
+
return readKeychainItem2(name, env, "api-url", options);
|
|
53629
|
+
}
|
|
53630
|
+
function snapshotClientEnvironment2(name, env) {
|
|
53631
|
+
const keys = clientTransportEnvKeys2(name);
|
|
53632
|
+
const ambient = isAmbientEnvironment2(env);
|
|
53633
|
+
const snapshot = Object.create(null);
|
|
53634
|
+
for (const key of [
|
|
53635
|
+
...keys.apiUrlKeys,
|
|
53636
|
+
...keys.apiKeyKeys,
|
|
53637
|
+
credentialOverrideEnvKey2(name),
|
|
53638
|
+
credentialPointerEnvKey2(name),
|
|
53639
|
+
CREDENTIAL_PROFILE_ENV_KEY2,
|
|
53640
|
+
"HOME",
|
|
53641
|
+
HASNA_HOME_ENV_KEY2,
|
|
53642
|
+
HASNA_CONFIG_HOME_ENV_KEY2,
|
|
53643
|
+
KEYCHAIN_STATION_ENV_KEY2,
|
|
53644
|
+
"USER"
|
|
53645
|
+
]) {
|
|
53646
|
+
const descriptor = Object.getOwnPropertyDescriptor(env, key);
|
|
53647
|
+
if (!descriptor)
|
|
53648
|
+
continue;
|
|
53649
|
+
if (!("value" in descriptor)) {
|
|
53650
|
+
throw new CredentialResolutionError2(name, `${key} is accessor-backed; client configuration requires own data properties.`, [key]);
|
|
53651
|
+
}
|
|
53652
|
+
if (descriptor.value !== undefined && typeof descriptor.value !== "string") {
|
|
53653
|
+
throw new CredentialResolutionError2(name, `${key} must be a string data property.`, [key]);
|
|
53654
|
+
}
|
|
53655
|
+
snapshot[key] = descriptor.value;
|
|
53656
|
+
}
|
|
53657
|
+
if (ambient) {
|
|
53658
|
+
Object.defineProperty(snapshot, AMBIENT_ENVIRONMENT2, {
|
|
53659
|
+
value: true,
|
|
53660
|
+
enumerable: false,
|
|
53661
|
+
writable: false,
|
|
53662
|
+
configurable: false
|
|
53663
|
+
});
|
|
53664
|
+
}
|
|
53665
|
+
return Object.freeze(snapshot);
|
|
53666
|
+
}
|
|
53667
|
+
function resolveCredential2(name, env, options = {}) {
|
|
53668
|
+
env = snapshotClientEnvironment2(name, env);
|
|
53669
|
+
const { apiKeyKeys } = clientTransportEnvKeys2(name);
|
|
53670
|
+
const diskPaths = credentialDiskSources2(name, env);
|
|
53671
|
+
if (options.apiKey !== undefined) {
|
|
53672
|
+
const explicitKey = options.apiKey.trim();
|
|
53673
|
+
if (!explicitKey) {
|
|
53674
|
+
throw new CredentialResolutionError2(name, "The explicit apiKey argument is blank; an explicit credential never falls through to another identity.", ["explicit apiKey argument"]);
|
|
53675
|
+
}
|
|
53676
|
+
assertUsableCredential2(name, "the explicit apiKey argument", explicitKey);
|
|
53677
|
+
return sealCredential2({
|
|
53678
|
+
apiKey: explicitKey,
|
|
53679
|
+
tier: "argument",
|
|
53680
|
+
source: "explicit apiKey argument",
|
|
53681
|
+
deliberate: true,
|
|
53682
|
+
diskCandidates: diskPaths,
|
|
53683
|
+
warning: null
|
|
53684
|
+
});
|
|
53685
|
+
}
|
|
53686
|
+
const overrideKeyName = credentialOverrideEnvKey2(name);
|
|
53687
|
+
const overrideRaw = Object.prototype.hasOwnProperty.call(env, overrideKeyName) ? env[overrideKeyName] : undefined;
|
|
53688
|
+
if (overrideRaw !== undefined) {
|
|
53689
|
+
const override = overrideRaw.trim();
|
|
53690
|
+
if (!override) {
|
|
53691
|
+
throw new CredentialResolutionError2(name, `${overrideKeyName} is set but empty. It is a deliberate override, so it is not resolved around: ` + `either give it a real key or unset it to fall back to the credential on disk.`, [overrideKeyName]);
|
|
53692
|
+
}
|
|
53693
|
+
assertUsableCredential2(name, overrideKeyName, override);
|
|
53694
|
+
return sealCredential2({
|
|
53695
|
+
apiKey: override,
|
|
53696
|
+
tier: "override",
|
|
53697
|
+
source: overrideKeyName,
|
|
53698
|
+
deliberate: true,
|
|
53699
|
+
diskCandidates: diskPaths,
|
|
53700
|
+
warning: null
|
|
53701
|
+
});
|
|
53702
|
+
}
|
|
53703
|
+
const pointerKeyName = credentialPointerEnvKey2(name);
|
|
53704
|
+
const pointerRaw = Object.prototype.hasOwnProperty.call(env, pointerKeyName) ? env[pointerKeyName] : undefined;
|
|
53705
|
+
if (pointerRaw !== undefined) {
|
|
53706
|
+
const pointer = pointerRaw.trim();
|
|
53707
|
+
if (!pointer) {
|
|
53708
|
+
throw new CredentialResolutionError2(name, `${pointerKeyName} is set but empty. It is a deliberate vault pointer, so it is not resolved around: ` + `either give it a vault item key or unset it to fall back to the credential on disk.`, [pointerKeyName]);
|
|
53709
|
+
}
|
|
53710
|
+
if (!VAULT_POINTER_SHAPE2.test(pointer)) {
|
|
53711
|
+
throw new CredentialResolutionError2(name, `${pointerKeyName} must name a vault ITEM KEY (a path-shaped reference like ` + `'namespace/app/live/api_key'), not a credential value. A pointer that carries a literal is refused.`, [pointerKeyName]);
|
|
53712
|
+
}
|
|
53713
|
+
return sealCredential2({
|
|
53714
|
+
apiKey: "",
|
|
53715
|
+
pointerVaultKey: pointer,
|
|
53716
|
+
tier: "pointer",
|
|
53717
|
+
source: pointerKeyName,
|
|
53718
|
+
deliberate: true,
|
|
53719
|
+
diskCandidates: diskPaths,
|
|
53720
|
+
warning: null
|
|
53721
|
+
});
|
|
53722
|
+
}
|
|
53723
|
+
if (options.profile !== undefined && !options.profile.trim()) {
|
|
53724
|
+
throw new CredentialResolutionError2(name, "The explicit profile argument is blank; an explicit identity selection never falls through.", ["explicit profile argument"]);
|
|
53725
|
+
}
|
|
53726
|
+
const profileRaw = Object.prototype.hasOwnProperty.call(env, CREDENTIAL_PROFILE_ENV_KEY2) ? env[CREDENTIAL_PROFILE_ENV_KEY2] : undefined;
|
|
53727
|
+
if (profileRaw !== undefined && !profileRaw.trim()) {
|
|
53728
|
+
throw new CredentialResolutionError2(name, `${CREDENTIAL_PROFILE_ENV_KEY2} is set but blank.`, [CREDENTIAL_PROFILE_ENV_KEY2]);
|
|
53729
|
+
}
|
|
53730
|
+
const profile = options.profile?.trim() || profileRaw?.trim();
|
|
53731
|
+
if (profile) {
|
|
53732
|
+
const profileSource = options.profile?.trim() ? "explicit profile argument" : CREDENTIAL_PROFILE_ENV_KEY2;
|
|
53733
|
+
if (!SAFE_PROFILE2.test(profile)) {
|
|
53734
|
+
throw new CredentialResolutionError2(name, `Profile name from ${profileSource} is not usable in a path. ` + `Use letters, digits, dot, dash, or underscore.`, [profileSource]);
|
|
53735
|
+
}
|
|
53736
|
+
const paths = profileDiskSources2(name, env, profile);
|
|
53737
|
+
for (const path of paths) {
|
|
53738
|
+
const value = readCredentialFile2(path, apiKeyKeys);
|
|
53739
|
+
if (value) {
|
|
53740
|
+
assertUsableCredential2(name, path, value);
|
|
53741
|
+
return sealCredential2({
|
|
53742
|
+
apiKey: value,
|
|
53743
|
+
tier: "profile",
|
|
53744
|
+
source: path,
|
|
53745
|
+
deliberate: true,
|
|
53746
|
+
diskCandidates: paths,
|
|
53747
|
+
warning: null
|
|
53748
|
+
});
|
|
53749
|
+
}
|
|
53750
|
+
}
|
|
53751
|
+
throw new CredentialResolutionError2(name, `Profile '${profile}' (from ${profileSource}) has no ${apiKeyKeys[0]} for '${name}'. ` + `Looked in: ${paths.join(", ") || "<no HOME in this environment>"}. ` + `A profile names WHICH identity to use, so it is never resolved around \u2014 ` + `create the profile's credential file or unset ${CREDENTIAL_PROFILE_ENV_KEY2}.`, paths);
|
|
53752
|
+
}
|
|
53753
|
+
const definedEnvEntries = apiKeyKeys.filter((key) => Object.prototype.hasOwnProperty.call(env, key) && env[key] !== undefined).map((key) => ({ key, value: String(env[key]).trim() }));
|
|
53754
|
+
const blankEnv = definedEnvEntries.find((entry) => entry.value.length === 0);
|
|
53755
|
+
if (blankEnv) {
|
|
53756
|
+
throw new CredentialResolutionError2(name, `${blankEnv.key} is set but blank; a declared credential never falls through to another alias or identity.`, [blankEnv.key]);
|
|
53757
|
+
}
|
|
53758
|
+
if (definedEnvEntries.length > 1 && new Set(definedEnvEntries.map((entry) => entry.value)).size > 1) {
|
|
53759
|
+
throw new CredentialResolutionError2(name, `${definedEnvEntries.map((entry) => entry.key).join(" and ")} disagree; credential aliases must be identical or only one may be set.`, definedEnvEntries.map((entry) => entry.key));
|
|
53760
|
+
}
|
|
53761
|
+
const envHit = firstEnvValue2(env, apiKeyKeys);
|
|
53762
|
+
const keychainHit = readKeychainItem2(name, env, "api-key", options.keychain ?? {});
|
|
53763
|
+
if (keychainHit) {
|
|
53764
|
+
assertUsableCredential2(name, keychainHit.source, keychainHit.value);
|
|
53765
|
+
const warning = envHit && envHit.value !== keychainHit.value ? `Credential sources disagree for '${name}': ${keychainHit.source} and ${envHit.key} hold ` + `different keys. ${keychainHit.source} wins, because the Keychain is re-read on every call while ` + `an environment variable is a snapshot. Reconcile them \u2014 a rotation that updated only one leaves ` + `the other to fail 401 wherever it is loaded first.` : null;
|
|
53766
|
+
return sealCredential2({
|
|
53767
|
+
apiKey: keychainHit.value,
|
|
53768
|
+
tier: "keychain",
|
|
53769
|
+
source: keychainHit.source,
|
|
53770
|
+
deliberate: false,
|
|
53771
|
+
diskCandidates: diskPaths,
|
|
53772
|
+
warning
|
|
53773
|
+
});
|
|
53774
|
+
}
|
|
53775
|
+
const diskSourceList = credentialDiskSourceList2(name, env, null);
|
|
53776
|
+
const diskHits = diskSourceList.map((src) => ({ src, value: readCredentialFile2(src.path, apiKeyKeys) })).filter((hit) => hit.value !== null);
|
|
53777
|
+
if (diskHits.length > 0) {
|
|
53778
|
+
const winner = diskHits[0];
|
|
53779
|
+
assertUsableCredential2(name, winner.src.path, winner.value);
|
|
53780
|
+
const divergentSources = [
|
|
53781
|
+
...diskHits.slice(1).filter((hit) => hit.value !== winner.value).map((hit) => hit.src.path),
|
|
53782
|
+
...envHit && envHit.value !== winner.value ? [envHit.key] : []
|
|
53783
|
+
];
|
|
53784
|
+
const warning = divergentSources.length > 0 ? `Credential sources disagree for '${name}': ${winner.src.path} and ` + `${divergentSources.join(", ")} hold different keys. ${winner.src.path} wins, because a file on ` + `disk is re-read on every call while an environment variable is a snapshot. Reconcile them \u2014 ` + `a rotation that updated only one leaves the other to fail 401 wherever it is loaded first.` : null;
|
|
53785
|
+
return sealCredential2({
|
|
53786
|
+
apiKey: winner.value,
|
|
53787
|
+
tier: winner.src.tier,
|
|
53788
|
+
source: winner.src.path,
|
|
53789
|
+
deliberate: false,
|
|
53790
|
+
diskCandidates: diskPaths,
|
|
53791
|
+
warning
|
|
53792
|
+
});
|
|
53793
|
+
}
|
|
53794
|
+
if (envHit) {
|
|
53795
|
+
assertUsableCredential2(name, envHit.key, envHit.value);
|
|
53796
|
+
return sealCredential2({
|
|
53797
|
+
apiKey: envHit.value,
|
|
53798
|
+
tier: "env",
|
|
53799
|
+
source: envHit.key,
|
|
53800
|
+
deliberate: false,
|
|
53801
|
+
diskCandidates: diskPaths,
|
|
53802
|
+
warning: null
|
|
53803
|
+
});
|
|
53804
|
+
}
|
|
53805
|
+
return null;
|
|
53806
|
+
}
|
|
53807
|
+
async function completePointerCredential2(name, pointerResolution, env = process.env) {
|
|
53808
|
+
const vaultKey = pointerResolution.pointerVaultKey;
|
|
53809
|
+
const pointerEnvKey = pointerResolution.source;
|
|
53810
|
+
if (!vaultKey) {
|
|
53811
|
+
throw new CredentialResolutionError2(name, `Pointer resolution from ${pointerEnvKey} carries no vault item key; this is a defect in the resolver.`, [pointerEnvKey]);
|
|
53812
|
+
}
|
|
53813
|
+
let secretsSdk;
|
|
53814
|
+
try {
|
|
53815
|
+
secretsSdk = requireSecretsSdk2(SECRETS_PACKAGE_SPECIFIER);
|
|
53816
|
+
} catch {
|
|
53817
|
+
throw new CredentialResolutionError2(name, `${pointerEnvKey} names vault item '${vaultKey}', but the secrets SDK (@hasna/secrets) is not installed ` + `in this process. A vault pointer is TERMINAL: install @hasna/secrets to resolve it, or unset ${pointerEnvKey}.`, [pointerEnvKey]);
|
|
53818
|
+
}
|
|
53819
|
+
let client;
|
|
53820
|
+
try {
|
|
53821
|
+
client = secretsSdk.createSecretsClientFromEnv(env);
|
|
53822
|
+
} catch {
|
|
53823
|
+
throw new CredentialResolutionError2(name, `${pointerEnvKey} names vault item '${vaultKey}', but the secrets client could not be configured from this ` + `environment (the secrets service URL and key env are missing or invalid). A vault pointer is TERMINAL and ` + `never falls through to a literal or disk credential.`, [pointerEnvKey]);
|
|
53824
|
+
}
|
|
53825
|
+
let secret;
|
|
53826
|
+
try {
|
|
53827
|
+
secret = await client.getSecret({ key: vaultKey });
|
|
53828
|
+
} catch {
|
|
53829
|
+
throw new CredentialResolutionError2(name, `${pointerEnvKey} names vault item '${vaultKey}', but the vault could not be reached or the item is ` + `unavailable. A vault pointer is TERMINAL and never falls through to a literal or disk credential.`, [pointerEnvKey]);
|
|
53830
|
+
}
|
|
53831
|
+
const value = secret.value;
|
|
53832
|
+
if (!value) {
|
|
53833
|
+
throw new CredentialResolutionError2(name, `${pointerEnvKey} resolved vault item '${vaultKey}', but it holds no value. A vault pointer is TERMINAL.`, [pointerEnvKey]);
|
|
53834
|
+
}
|
|
53835
|
+
assertUsableCredential2(name, `${pointerEnvKey} -> vault:${vaultKey}`, value);
|
|
53836
|
+
return sealCredential2({
|
|
53837
|
+
apiKey: value,
|
|
53838
|
+
tier: "pointer",
|
|
53839
|
+
source: `${pointerEnvKey} -> vault:${vaultKey}`,
|
|
53840
|
+
deliberate: true,
|
|
53841
|
+
diskCandidates: pointerResolution.diskCandidates,
|
|
53842
|
+
warning: null
|
|
53843
|
+
});
|
|
53844
|
+
}
|
|
53845
|
+
function defaultFleetGatewayBaseUrl2(name) {
|
|
53846
|
+
return `${DEFAULT_FLEET_GATEWAY_ORIGIN2}/${validateAppSlug2(name)}`;
|
|
53847
|
+
}
|
|
53848
|
+
function isValidDnsDomain2(value) {
|
|
53849
|
+
if (value.length === 0 || value.length > 253 || ASCII_CONTROL_PATTERN2.test(value) || /[^\x00-\x7f]/.test(value)) {
|
|
53850
|
+
return false;
|
|
53851
|
+
}
|
|
53852
|
+
return value.split(".").every((label) => label.length <= 63 && !label.startsWith("xn--") && DNS_LABEL_PATTERN2.test(label));
|
|
53853
|
+
}
|
|
53854
|
+
function validateAppSlug2(name) {
|
|
53855
|
+
if (name.length > 63 || !DNS_LABEL_PATTERN2.test(name)) {
|
|
53856
|
+
throw new Error("App name must be one lowercase DNS label.");
|
|
53857
|
+
}
|
|
53858
|
+
return name;
|
|
53859
|
+
}
|
|
53860
|
+
function rawAuthority2(value) {
|
|
53861
|
+
const match = /^[a-z][a-z0-9+.-]*:\/\//i.exec(value);
|
|
53862
|
+
if (!match)
|
|
53863
|
+
throw new Error("API URL must be absolute.");
|
|
53864
|
+
const afterScheme = value.slice(match[0].length);
|
|
53865
|
+
const boundary = afterScheme.search(/[/?#]/);
|
|
53866
|
+
const authority = boundary === -1 ? afterScheme : afterScheme.slice(0, boundary);
|
|
53867
|
+
if (!authority)
|
|
53868
|
+
throw new Error("API URL must include a hostname.");
|
|
53869
|
+
return authority;
|
|
53870
|
+
}
|
|
53871
|
+
function assertCanonicalPort2(port) {
|
|
53872
|
+
if (!/^[0-9]+$/.test(port) || port.length > 1 && port.startsWith("0")) {
|
|
53873
|
+
throw new Error("API URL authority must contain a canonical port between 1 and 65535.");
|
|
53874
|
+
}
|
|
53875
|
+
const numericPort = Number(port);
|
|
53876
|
+
if (!Number.isSafeInteger(numericPort) || numericPort < 1 || numericPort > 65535) {
|
|
53877
|
+
throw new Error("API URL authority must contain a canonical port between 1 and 65535.");
|
|
53878
|
+
}
|
|
53879
|
+
}
|
|
53880
|
+
function canonicalAuthorityHostname2(authority) {
|
|
53881
|
+
let rawHostname;
|
|
53882
|
+
if (authority.startsWith("[")) {
|
|
53883
|
+
const closingBracket = authority.indexOf("]");
|
|
53884
|
+
if (closingBracket === -1) {
|
|
53885
|
+
throw new Error("API URL authority must contain a canonical hostname.");
|
|
53886
|
+
}
|
|
53887
|
+
rawHostname = authority.slice(0, closingBracket + 1);
|
|
53888
|
+
const portSuffix = authority.slice(closingBracket + 1);
|
|
53889
|
+
if (portSuffix) {
|
|
53890
|
+
if (!portSuffix.startsWith(":")) {
|
|
53891
|
+
throw new Error("API URL authority must contain a canonical hostname and port.");
|
|
53892
|
+
}
|
|
53893
|
+
assertCanonicalPort2(portSuffix.slice(1));
|
|
53894
|
+
}
|
|
53895
|
+
if (isIP2(rawHostname.slice(1, -1)) !== 6) {
|
|
53896
|
+
throw new Error("API URL authority must contain a canonical IPv6 literal.");
|
|
53897
|
+
}
|
|
53898
|
+
} else {
|
|
53899
|
+
const firstColon = authority.indexOf(":");
|
|
53900
|
+
const lastColon = authority.lastIndexOf(":");
|
|
53901
|
+
if (firstColon !== lastColon) {
|
|
53902
|
+
throw new Error("IPv6 API URL authorities must use brackets.");
|
|
53903
|
+
}
|
|
53904
|
+
if (lastColon !== -1) {
|
|
53905
|
+
const port = authority.slice(lastColon + 1);
|
|
53906
|
+
assertCanonicalPort2(port);
|
|
53907
|
+
rawHostname = authority.slice(0, lastColon);
|
|
53908
|
+
} else {
|
|
53909
|
+
rawHostname = authority;
|
|
53910
|
+
}
|
|
53911
|
+
const ipVersion = isIP2(rawHostname);
|
|
53912
|
+
const numericAddressParts = rawHostname.split(".");
|
|
53913
|
+
const looksLikeNonCanonicalIpv4 = numericAddressParts.every((part) => /^(?:0x[0-9a-f]+|[0-9]+)$/i.test(part));
|
|
53914
|
+
if (ipVersion !== 4 && looksLikeNonCanonicalIpv4 || ipVersion !== 4 && !isValidDnsDomain2(rawHostname.toLowerCase())) {
|
|
53915
|
+
throw new Error("API URL authority must contain a canonical ASCII hostname.");
|
|
53916
|
+
}
|
|
53917
|
+
}
|
|
53918
|
+
return rawHostname.toLowerCase();
|
|
53919
|
+
}
|
|
53920
|
+
function isDeliberateLoopbackHttpAuthority2(authority) {
|
|
53921
|
+
return /^(?:localhost|127\.0\.0\.1|\[::1\])(?::[0-9]+)?$/i.test(authority);
|
|
53922
|
+
}
|
|
53923
|
+
function toV1BaseUrl2(apiUrl) {
|
|
53924
|
+
if (ASCII_CONTROL_PATTERN2.test(apiUrl)) {
|
|
53925
|
+
throw new Error("API URL must not contain ASCII control characters.");
|
|
53926
|
+
}
|
|
53927
|
+
const input2 = apiUrl.trim();
|
|
53928
|
+
const authority = rawAuthority2(input2);
|
|
53929
|
+
if (authority.includes("@") || authority.includes("\\") || authority.includes("%") || /[^\x00-\x7f]/.test(authority)) {
|
|
53930
|
+
throw new Error("API URL authority must be canonical ASCII without credentials.");
|
|
53931
|
+
}
|
|
53932
|
+
const canonicalHostname = canonicalAuthorityHostname2(authority);
|
|
53933
|
+
const url2 = new URL(input2);
|
|
53934
|
+
if (url2.protocol !== "http:" && url2.protocol !== "https:") {
|
|
53935
|
+
throw new Error("API URL must use http or https.");
|
|
53936
|
+
}
|
|
53937
|
+
if (url2.username || url2.password) {
|
|
53938
|
+
throw new Error("API URL must not include credentials.");
|
|
53939
|
+
}
|
|
53940
|
+
if (!url2.hostname || url2.hostname.endsWith(".")) {
|
|
53941
|
+
throw new Error("API URL must include a canonical hostname.");
|
|
53942
|
+
}
|
|
53943
|
+
if (url2.hostname.toLowerCase() !== canonicalHostname) {
|
|
53944
|
+
throw new Error("API URL authority must not rely on parser hostname normalization.");
|
|
53945
|
+
}
|
|
53946
|
+
if (url2.hostname.split(".").some((label) => label.toLowerCase().startsWith("xn--"))) {
|
|
53947
|
+
throw new Error("API URL must not use IDN or punycode hostnames.");
|
|
53948
|
+
}
|
|
53949
|
+
if (url2.protocol === "http:" && !isDeliberateLoopbackHttpAuthority2(authority)) {
|
|
53950
|
+
throw new Error("API URL may use http only for an exact loopback authority.");
|
|
53951
|
+
}
|
|
53952
|
+
if (url2.search || url2.hash) {
|
|
53953
|
+
throw new Error("API URL must not include a query string or fragment.");
|
|
53954
|
+
}
|
|
53955
|
+
let path = url2.pathname.replace(/\/+$/, "");
|
|
53956
|
+
if (path.endsWith("/v1"))
|
|
53957
|
+
path = path.slice(0, -"/v1".length);
|
|
53958
|
+
url2.pathname = `${path}/v1`;
|
|
53959
|
+
return url2.toString().replace(/\/+$/, "");
|
|
53960
|
+
}
|
|
53961
|
+
function resolveClientTransportSnapshot(name, env = process.env, options = {}) {
|
|
53962
|
+
env = snapshotClientEnvironment2(name, env);
|
|
53963
|
+
const keys = clientTransportEnvKeys2(name);
|
|
53964
|
+
const definedUrlEntries = keys.apiUrlKeys.filter((key) => Object.prototype.hasOwnProperty.call(env, key) && env[key] !== undefined).map((key) => ({ key, raw: String(env[key]) }));
|
|
53965
|
+
const blankUrl = definedUrlEntries.find((entry) => entry.raw.trim().length === 0);
|
|
53966
|
+
if (blankUrl) {
|
|
53967
|
+
throw new ClientTransportConfigurationError2(name, `${blankUrl.key} is set but blank; public clients require an explicit HTTPS API URL and never select local storage.`, [blankUrl.key]);
|
|
53968
|
+
}
|
|
53969
|
+
const controlledUrl = definedUrlEntries.find((entry) => ASCII_CONTROL_PATTERN2.test(entry.raw));
|
|
53970
|
+
if (controlledUrl) {
|
|
53971
|
+
throw new ClientTransportConfigurationError2(name, `${controlledUrl.key} contains ASCII control characters.`, [controlledUrl.key]);
|
|
53972
|
+
}
|
|
53973
|
+
const usableUrlEntries = definedUrlEntries.map((entry) => ({ key: entry.key, value: entry.raw.trim() }));
|
|
53974
|
+
if (usableUrlEntries.length > 1 && new Set(usableUrlEntries.map((entry) => entry.value)).size > 1) {
|
|
53975
|
+
throw new ClientTransportConfigurationError2(name, `${usableUrlEntries.map((entry) => entry.key).join(" and ")} disagree; client authority aliases must be identical or only one may be set.`, usableUrlEntries.map((entry) => entry.key));
|
|
53976
|
+
}
|
|
53977
|
+
const envUrlHit = usableUrlEntries[0] ?? null;
|
|
53978
|
+
const keychainUrlHit = keychainConfigValue2(name, env, options.credentials?.keychain);
|
|
53979
|
+
const diskConfigUrlHit = appConfigDiskValue2(name, env, keys.apiUrlKeys);
|
|
53980
|
+
if (diskConfigUrlHit?.unusable) {
|
|
53981
|
+
throw new ClientTransportConfigurationError2(name, `${diskConfigUrlHit.key} in ${diskConfigUrlHit.path} is declared but blank or malformed; public clients require a valid HTTPS service authority.`, [diskConfigUrlHit.path]);
|
|
53982
|
+
}
|
|
53983
|
+
const urlCandidates = [
|
|
53984
|
+
...envUrlHit ? [envUrlHit] : [],
|
|
53985
|
+
...keychainUrlHit ? [{ key: keychainUrlHit.source, value: keychainUrlHit.value }] : [],
|
|
53986
|
+
...diskConfigUrlHit ? [{ key: diskConfigUrlHit.path, value: diskConfigUrlHit.value.trim() }] : []
|
|
53987
|
+
];
|
|
53988
|
+
const configuredUrl = urlCandidates[0] ?? null;
|
|
53989
|
+
const divergentUrls = urlCandidates.filter((candidate) => candidate.value !== configuredUrl?.value);
|
|
53990
|
+
if (configuredUrl && divergentUrls.length > 0) {
|
|
53991
|
+
throw new ClientTransportConfigurationError2(name, `${configuredUrl.key} and ${divergentUrls.map((candidate) => candidate.key).join(" and ")} select different service authorities; refusing to send a credential written for one authority to the other.`, urlCandidates.map((candidate) => candidate.key));
|
|
53992
|
+
}
|
|
53993
|
+
const warnings = [];
|
|
53994
|
+
if (configuredUrl && !envUrlHit) {
|
|
53995
|
+
warnings.push(`No ${keys.apiUrlKeys[0]} in the environment; the server URL in ${configuredUrl.key} was used, so this client connects to the server. ` + `Keep that entry aligned with the intended service authority.`);
|
|
53996
|
+
}
|
|
53997
|
+
const credential = resolveCredential2(name, env, options.credentials);
|
|
53998
|
+
if (!credential) {
|
|
53999
|
+
const diskHint = credentialDiskSourcesForMessage(name, env);
|
|
54000
|
+
const lead = configuredUrl ? `${configuredUrl.key} selects the HTTP server for '${name}', but no API key could be resolved` : `${keys.apiUrlKeys[0]} is not set and no API key could be resolved for '${name}'; a credential is required before the default fleet gateway authority applies`;
|
|
54001
|
+
warnings.push(`${lead}; refusing to create an unauthenticated client \u2014 public clients never fall back to SQLite or another local store. ` + `Looked in the Keychain (macOS only), then for a credential file at ${diskHint}, then for ${keys.apiKeyKeys[0]} in the environment.`);
|
|
54002
|
+
throw new ClientTransportConfigurationError2(name, warnings.join(" "), [configuredUrl?.key ?? keys.apiUrlKeys[0]]);
|
|
54003
|
+
}
|
|
54004
|
+
if (credential.warning)
|
|
54005
|
+
warnings.push(credential.warning);
|
|
54006
|
+
let urlHit;
|
|
54007
|
+
if (configuredUrl) {
|
|
54008
|
+
urlHit = configuredUrl;
|
|
54009
|
+
} else {
|
|
54010
|
+
try {
|
|
54011
|
+
urlHit = { key: DEFAULT_AUTHORITY_SOURCE, value: defaultFleetGatewayBaseUrl2(name) };
|
|
54012
|
+
} catch (error61) {
|
|
54013
|
+
const message = error61 instanceof Error ? error61.message : String(error61);
|
|
54014
|
+
throw new ClientTransportConfigurationError2(name, `No ${keys.apiUrlKeys[0]} is configured and the default fleet gateway authority cannot be composed for '${name}': ${message}`, [keys.apiUrlKeys[0]]);
|
|
54015
|
+
}
|
|
54016
|
+
}
|
|
54017
|
+
const apiUrlSource = urlHit.key;
|
|
54018
|
+
let baseUrl;
|
|
54019
|
+
try {
|
|
54020
|
+
baseUrl = toV1BaseUrl2(urlHit.value);
|
|
54021
|
+
} catch (error61) {
|
|
54022
|
+
const message = error61 instanceof Error ? error61.message : String(error61);
|
|
54023
|
+
throw new ClientTransportConfigurationError2(name, `Invalid API URL from ${apiUrlSource}: ${message}`, [apiUrlSource]);
|
|
54024
|
+
}
|
|
54025
|
+
return {
|
|
54026
|
+
resolution: {
|
|
54027
|
+
transport: "http",
|
|
54028
|
+
transportSource: urlHit.key,
|
|
54029
|
+
baseUrl,
|
|
54030
|
+
apiUrlSource,
|
|
54031
|
+
apiKeyPresent: true,
|
|
54032
|
+
apiKeySource: credential.source,
|
|
54033
|
+
apiKeyTier: credential.tier,
|
|
54034
|
+
misconfigured: false,
|
|
54035
|
+
warning: warnings.length > 0 ? warnings.join(" ") : null
|
|
54036
|
+
},
|
|
54037
|
+
credential
|
|
54038
|
+
};
|
|
54039
|
+
}
|
|
54040
|
+
function resolveClientTransport(name, env = process.env, options = {}) {
|
|
54041
|
+
return resolveClientTransportSnapshot(name, env, options).resolution;
|
|
54042
|
+
}
|
|
54043
|
+
function credentialDiskSourcesForMessage(name, env) {
|
|
54044
|
+
const paths = credentialDiskSources2(name, env);
|
|
54045
|
+
return paths.length > 0 ? paths.join(" or ") : "<no HOME or HASNA_HOME set in this environment, so no credential file was consulted>";
|
|
54046
|
+
}
|
|
54047
|
+
function currentCredential(name, apiKey) {
|
|
54048
|
+
if (typeof apiKey === "function") {
|
|
54049
|
+
return validateAndSealResolvedCredential(name, apiKey());
|
|
54050
|
+
}
|
|
54051
|
+
return explicitCredential(name, apiKey);
|
|
54052
|
+
}
|
|
54053
|
+
async function resolveRequestCredential(name, apiKey, env = process.env) {
|
|
54054
|
+
const resolved = currentCredential(name, apiKey);
|
|
54055
|
+
if (resolved.tier === "pointer") {
|
|
54056
|
+
return completePointerCredential2(name, resolved, env);
|
|
54057
|
+
}
|
|
54058
|
+
return resolved;
|
|
54059
|
+
}
|
|
54060
|
+
function authFailureGuidance(credential) {
|
|
54061
|
+
const origin = `The API key for this request came from ${credential.source}`;
|
|
54062
|
+
if (credential.deliberate) {
|
|
54063
|
+
const remedy = credential.source === CALLER_SUPPLIED_CREDENTIAL_PROVIDER_SOURCE ? `Fix that provider so it returns the current key, or replace it with resolveCredential() ` + `so diagnostics can name the original source.` : `Rotate that key, or unset the override to use the credential on disk.`;
|
|
54064
|
+
return `${origin} \u2014 a credential you selected deliberately. It was NOT substituted with any other key: ` + `falling back here would authenticate as a different principal than the one you named, which is ` + `exactly the failure an override exists to prevent. ${remedy}`;
|
|
54065
|
+
}
|
|
54066
|
+
if (credential.tier === "env") {
|
|
54067
|
+
const target = credential.diskCandidates[0];
|
|
54068
|
+
const remedy = target ? `Store the CURRENT key in the Keychain or write it to ${target} \u2014 both are re-read on every call, so ` + `rotations take effect immediately and in every shell. Do not simply unset ${credential.source}: ` + `nothing was found in the Keychain or on disk, so that would leave this client with no credential at all.` : `This environment has no HOME or HASNA_HOME, so no credential file could be consulted; the disk tier is ` + `unavailable here and there is nothing to fall back to. Set HOME, or supply the key explicitly.`;
|
|
54069
|
+
return `${origin}, a variable in this process's environment. If a wrapper injected it for this one process, the ` + `wrapper re-reads its store on every invocation and the stored key itself is being rejected \u2014 rotate it. ` + `If this SHELL exported it, the export is a snapshot taken when the shell started: a STALE SHELL that ` + `exported the key before it was rotated keeps sending the old one until it exits. ${remedy}`;
|
|
54070
|
+
}
|
|
54071
|
+
if (credential.tier === "keychain") {
|
|
54072
|
+
return `${origin}, which was re-read from the Keychain on this very call \u2014 so a stale shell is NOT the cause ` + `here. The stored item is genuinely being rejected: update it with the current key, or re-run the fleet ` + `key distribution so this machine gets the current key.`;
|
|
54073
|
+
}
|
|
54074
|
+
return `${origin}, which was re-read from disk on this very call \u2014 so a stale shell is NOT the cause here. ` + `The stored credential is genuinely being rejected: rotate it, or re-run the fleet key distribution ` + `so this machine gets the current key.`;
|
|
54075
|
+
}
|
|
54076
|
+
function assertNoAuthorityOverrideHeaders(headers, source) {
|
|
54077
|
+
if (!headers)
|
|
54078
|
+
return;
|
|
54079
|
+
const forbidden = Object.keys(headers).find((name) => AUTHORITY_OVERRIDE_HEADERS2.has(name.trim().toLowerCase()));
|
|
54080
|
+
if (forbidden) {
|
|
54081
|
+
throw new Error(`Authenticated ${source} headers must not set authority header '${forbidden}'.`);
|
|
54082
|
+
}
|
|
54083
|
+
}
|
|
54084
|
+
function appendQuery(path, query) {
|
|
54085
|
+
if (!query)
|
|
54086
|
+
return path;
|
|
54087
|
+
const params = query instanceof URLSearchParams ? query : new URLSearchParams;
|
|
54088
|
+
if (!(query instanceof URLSearchParams)) {
|
|
54089
|
+
for (const [key, value] of Object.entries(query)) {
|
|
54090
|
+
if (value === null || value === undefined)
|
|
54091
|
+
continue;
|
|
54092
|
+
if (Array.isArray(value)) {
|
|
54093
|
+
for (const v of value)
|
|
54094
|
+
params.append(key, String(v));
|
|
54095
|
+
} else {
|
|
54096
|
+
params.append(key, String(value));
|
|
54097
|
+
}
|
|
54098
|
+
}
|
|
54099
|
+
}
|
|
54100
|
+
const qs = params.toString();
|
|
54101
|
+
if (!qs)
|
|
54102
|
+
return path;
|
|
54103
|
+
return `${path}${path.includes("?") ? "&" : "?"}${qs}`;
|
|
54104
|
+
}
|
|
54105
|
+
function createHasnaHttpTransportInternal(options, requestBindingProvider) {
|
|
54106
|
+
const fetchImpl = options.fetchImpl ?? ((input2, init) => fetch(input2, init));
|
|
54107
|
+
const base2 = toV1BaseUrl2(options.baseUrl);
|
|
54108
|
+
const timeoutMs = options.timeoutMs ?? 30000;
|
|
54109
|
+
const sleep = options.sleepImpl ?? defaultSleep;
|
|
54110
|
+
const defaultRetry = options.retry;
|
|
54111
|
+
function resolveRetry(callRetry) {
|
|
54112
|
+
const chosen = callRetry !== undefined ? callRetry : defaultRetry;
|
|
54113
|
+
if (chosen === false)
|
|
54114
|
+
return null;
|
|
54115
|
+
const r2 = chosen ?? {};
|
|
54116
|
+
return {
|
|
54117
|
+
retries: r2.retries ?? 2,
|
|
54118
|
+
baseDelayMs: r2.baseDelayMs ?? 200,
|
|
54119
|
+
maxDelayMs: r2.maxDelayMs ?? 2000,
|
|
54120
|
+
retryStatuses: r2.retryStatuses ?? [...DEFAULT_RETRY_STATUSES]
|
|
54121
|
+
};
|
|
54122
|
+
}
|
|
54123
|
+
async function once(method, rel, url2, body, opts, credential) {
|
|
54124
|
+
assertNoAuthorityOverrideHeaders(options.headers, "transport");
|
|
54125
|
+
assertNoAuthorityOverrideHeaders(opts.headers, "request");
|
|
54126
|
+
const headers = {
|
|
54127
|
+
"x-api-key": credential.apiKey,
|
|
54128
|
+
Authorization: `Bearer ${credential.apiKey}`,
|
|
54129
|
+
Accept: "application/json",
|
|
54130
|
+
...options.headers ?? {},
|
|
54131
|
+
...opts.headers ?? {}
|
|
54132
|
+
};
|
|
54133
|
+
if (opts.idempotencyKey)
|
|
54134
|
+
headers["Idempotency-Key"] = opts.idempotencyKey;
|
|
54135
|
+
const init = {
|
|
54136
|
+
method,
|
|
54137
|
+
headers,
|
|
54138
|
+
redirect: "manual"
|
|
54139
|
+
};
|
|
54140
|
+
if (body !== undefined) {
|
|
54141
|
+
headers["Content-Type"] = "application/json";
|
|
54142
|
+
init.body = JSON.stringify(body);
|
|
54143
|
+
}
|
|
54144
|
+
const controller = new AbortController;
|
|
54145
|
+
const onAbort = () => controller.abort();
|
|
54146
|
+
if (opts.signal) {
|
|
54147
|
+
if (opts.signal.aborted)
|
|
54148
|
+
controller.abort();
|
|
54149
|
+
else
|
|
54150
|
+
opts.signal.addEventListener("abort", onAbort, { once: true });
|
|
54151
|
+
}
|
|
54152
|
+
const timer = setTimeout(() => controller.abort(), opts.timeoutMs ?? timeoutMs);
|
|
54153
|
+
init.signal = controller.signal;
|
|
54154
|
+
let response;
|
|
54155
|
+
try {
|
|
54156
|
+
response = await fetchImpl(url2, init);
|
|
54157
|
+
} catch (error61) {
|
|
54158
|
+
const err = error61 instanceof Error ? error61 : new Error(String(error61));
|
|
54159
|
+
if (opts.signal?.aborted)
|
|
54160
|
+
return { ok: false, retryable: false, error: err };
|
|
54161
|
+
return { ok: false, retryable: true, error: err };
|
|
54162
|
+
} finally {
|
|
54163
|
+
clearTimeout(timer);
|
|
54164
|
+
if (opts.signal)
|
|
54165
|
+
opts.signal.removeEventListener("abort", onAbort);
|
|
54166
|
+
}
|
|
54167
|
+
const authenticationFailure = response.status === 401 || response.status === 403;
|
|
54168
|
+
let parsed = undefined;
|
|
54169
|
+
if (authenticationFailure) {
|
|
54170
|
+
try {
|
|
54171
|
+
await response.body?.cancel();
|
|
54172
|
+
} catch {}
|
|
54173
|
+
} else {
|
|
54174
|
+
const text3 = await response.text();
|
|
54175
|
+
if (text3.length > 0) {
|
|
54176
|
+
try {
|
|
54177
|
+
parsed = JSON.parse(text3);
|
|
54178
|
+
} catch {
|
|
54179
|
+
parsed = text3;
|
|
54180
|
+
}
|
|
54181
|
+
}
|
|
54182
|
+
}
|
|
54183
|
+
if (!response.ok) {
|
|
54184
|
+
if (response.status >= 300 && response.status < 400) {
|
|
54185
|
+
return {
|
|
54186
|
+
ok: false,
|
|
54187
|
+
retryable: false,
|
|
54188
|
+
error: new HasnaHttpError(method, rel, response.status, parsed)
|
|
54189
|
+
};
|
|
54190
|
+
}
|
|
54191
|
+
if (authenticationFailure) {
|
|
54192
|
+
return {
|
|
54193
|
+
ok: false,
|
|
54194
|
+
retryable: false,
|
|
54195
|
+
error: new HasnaHttpError(method, rel, response.status, undefined, {
|
|
54196
|
+
source: credential.source,
|
|
54197
|
+
tier: credential.tier,
|
|
54198
|
+
guidance: authFailureGuidance(credential)
|
|
54199
|
+
})
|
|
54200
|
+
};
|
|
54201
|
+
}
|
|
54202
|
+
const retry = resolveRetry(opts.retry);
|
|
54203
|
+
const retryable = retry ? retry.retryStatuses.includes(response.status) : false;
|
|
54204
|
+
return { ok: false, retryable, error: new HasnaHttpError(method, rel, response.status, parsed) };
|
|
54205
|
+
}
|
|
54206
|
+
return { ok: true, value: parsed };
|
|
54207
|
+
}
|
|
54208
|
+
async function request(method, path, body, opts = {}) {
|
|
54209
|
+
const upper = method.toUpperCase();
|
|
54210
|
+
const rel = appendQuery(path.startsWith("/") ? path : `/${path}`, opts.query);
|
|
54211
|
+
const retry = resolveRetry(opts.retry);
|
|
54212
|
+
const methodRetryable = IDEMPOTENT_METHODS2.has(upper) || Boolean(opts.idempotencyKey);
|
|
54213
|
+
const maxAttempts = retry && methodRetryable ? retry.retries + 1 : 1;
|
|
54214
|
+
const binding = requestBindingProvider ? await requestBindingProvider() : {
|
|
54215
|
+
baseUrl: base2,
|
|
54216
|
+
credential: await resolveRequestCredential(options.name, options.apiKey)
|
|
54217
|
+
};
|
|
54218
|
+
const url2 = `${binding.baseUrl}${rel}`;
|
|
54219
|
+
const credential = binding.credential;
|
|
54220
|
+
let last = null;
|
|
54221
|
+
for (let attempt = 1;attempt <= maxAttempts; attempt++) {
|
|
54222
|
+
const result = await once(upper, rel, url2, body, opts, credential);
|
|
54223
|
+
if (result.ok)
|
|
54224
|
+
return result.value;
|
|
54225
|
+
last = result;
|
|
54226
|
+
const canRetry = retry !== null && methodRetryable && result.retryable && attempt < maxAttempts;
|
|
54227
|
+
if (!canRetry)
|
|
54228
|
+
break;
|
|
54229
|
+
const backoff = Math.min(retry.maxDelayMs, retry.baseDelayMs * 2 ** (attempt - 1));
|
|
54230
|
+
const jitter = Math.floor(Math.random() * (backoff / 2 + 1));
|
|
54231
|
+
await sleep(backoff + jitter);
|
|
54232
|
+
}
|
|
54233
|
+
throw last.error;
|
|
54234
|
+
}
|
|
54235
|
+
return {
|
|
54236
|
+
baseUrl: base2,
|
|
54237
|
+
request,
|
|
54238
|
+
get: (path, opts) => request("GET", path, undefined, opts),
|
|
54239
|
+
post: (path, body, opts) => request("POST", path, body, opts),
|
|
54240
|
+
put: (path, body, opts) => request("PUT", path, body, opts),
|
|
54241
|
+
patch: (path, body, opts) => request("PATCH", path, body, opts),
|
|
54242
|
+
del: (path, body, opts) => request("DELETE", path, body, opts)
|
|
54243
|
+
};
|
|
54244
|
+
}
|
|
54245
|
+
function createHasnaHttpTransport(options) {
|
|
54246
|
+
return createHasnaHttpTransportInternal(options);
|
|
54247
|
+
}
|
|
54248
|
+
|
|
54249
|
+
class SecretsClient {
|
|
54250
|
+
transport;
|
|
54251
|
+
probeRoot;
|
|
54252
|
+
fetchImpl;
|
|
54253
|
+
baseHeaders;
|
|
54254
|
+
constructor(options) {
|
|
54255
|
+
if (!options.baseUrl)
|
|
54256
|
+
throw new Error("SecretsClient requires a baseUrl.");
|
|
54257
|
+
this.transport = createHasnaHttpTransport({
|
|
54258
|
+
name: "secrets",
|
|
54259
|
+
baseUrl: options.baseUrl.replace(/\/+$/, ""),
|
|
54260
|
+
apiKey: options.apiKey ?? "",
|
|
54261
|
+
...options.fetch ? { fetchImpl: (input2, init) => options.fetch(input2, init) } : {},
|
|
54262
|
+
...options.headers ? { headers: options.headers } : {}
|
|
54263
|
+
});
|
|
54264
|
+
this.probeRoot = this.transport.baseUrl.replace(/\/v1$/, "");
|
|
54265
|
+
this.fetchImpl = options.fetch ? (input2, init) => options.fetch(input2, init) : (input2, init) => fetch(input2, init);
|
|
54266
|
+
this.baseHeaders = options.headers ?? {};
|
|
54267
|
+
}
|
|
54268
|
+
get baseUrl() {
|
|
54269
|
+
return this.transport.baseUrl;
|
|
54270
|
+
}
|
|
54271
|
+
async probe(path, init) {
|
|
54272
|
+
const headers = { Accept: "application/json", ...this.baseHeaders };
|
|
54273
|
+
new Headers(init?.headers ?? {}).forEach((value, key) => {
|
|
54274
|
+
headers[key] = value;
|
|
54275
|
+
});
|
|
54276
|
+
const response = await this.fetchImpl(`${this.probeRoot}${path}`, {
|
|
54277
|
+
...init,
|
|
54278
|
+
method: "GET",
|
|
54279
|
+
headers,
|
|
54280
|
+
redirect: "manual"
|
|
54281
|
+
});
|
|
54282
|
+
const text3 = await response.text();
|
|
54283
|
+
let body = undefined;
|
|
54284
|
+
if (text3) {
|
|
54285
|
+
try {
|
|
54286
|
+
body = JSON.parse(text3);
|
|
54287
|
+
} catch {
|
|
54288
|
+
body = text3;
|
|
54289
|
+
}
|
|
54290
|
+
}
|
|
54291
|
+
if (!response.ok) {
|
|
54292
|
+
throw new ApiError(response.status, `GET ${path} failed: ${response.status}`, body);
|
|
54293
|
+
}
|
|
54294
|
+
return body;
|
|
54295
|
+
}
|
|
54296
|
+
async request(method, path, opts) {
|
|
54297
|
+
const requestOpts = {};
|
|
54298
|
+
if (opts.query)
|
|
54299
|
+
requestOpts.query = opts.query;
|
|
54300
|
+
const initHeaders = opts.init?.headers;
|
|
54301
|
+
if (initHeaders)
|
|
54302
|
+
requestOpts.headers = initHeaders;
|
|
54303
|
+
if (opts.init?.signal)
|
|
54304
|
+
requestOpts.signal = opts.init.signal;
|
|
54305
|
+
try {
|
|
54306
|
+
return await this.transport.request(method, path, opts.body, requestOpts);
|
|
54307
|
+
} catch (error61) {
|
|
54308
|
+
if (error61 instanceof HasnaHttpError) {
|
|
54309
|
+
throw new ApiError(error61.status, `${method} ${path} failed: ${error61.status}`, error61.body);
|
|
54310
|
+
}
|
|
54311
|
+
throw error61;
|
|
54312
|
+
}
|
|
54313
|
+
}
|
|
54314
|
+
async health(init) {
|
|
54315
|
+
return this.probe(`/health`, init);
|
|
54316
|
+
}
|
|
54317
|
+
async ready(init) {
|
|
54318
|
+
return this.probe(`/ready`, init);
|
|
54319
|
+
}
|
|
54320
|
+
async listAudit(query, init) {
|
|
54321
|
+
return this.request("GET", `/audit`, {
|
|
54322
|
+
body: undefined,
|
|
54323
|
+
query,
|
|
54324
|
+
init
|
|
54325
|
+
});
|
|
54326
|
+
}
|
|
54327
|
+
async listItems(query, init) {
|
|
54328
|
+
return this.request("GET", `/items`, {
|
|
54329
|
+
body: undefined,
|
|
54330
|
+
query,
|
|
54331
|
+
init
|
|
54332
|
+
});
|
|
54333
|
+
}
|
|
54334
|
+
async putItem(body, init) {
|
|
54335
|
+
return this.request("POST", `/items`, {
|
|
54336
|
+
body,
|
|
54337
|
+
query: undefined,
|
|
54338
|
+
init
|
|
54339
|
+
});
|
|
54340
|
+
}
|
|
54341
|
+
async searchItems(query, init) {
|
|
54342
|
+
return this.request("GET", `/items/search`, {
|
|
54343
|
+
body: undefined,
|
|
54344
|
+
query,
|
|
54345
|
+
init
|
|
54346
|
+
});
|
|
54347
|
+
}
|
|
54348
|
+
async getItem(id, init) {
|
|
54349
|
+
return this.request("GET", `/items/${encodeURIComponent(String(id))}`, {
|
|
54350
|
+
body: undefined,
|
|
54351
|
+
query: undefined,
|
|
54352
|
+
init
|
|
54353
|
+
});
|
|
54354
|
+
}
|
|
54355
|
+
async deleteItem(id, init) {
|
|
54356
|
+
return this.request("DELETE", `/items/${encodeURIComponent(String(id))}`, {
|
|
54357
|
+
body: undefined,
|
|
54358
|
+
query: undefined,
|
|
54359
|
+
init
|
|
54360
|
+
});
|
|
54361
|
+
}
|
|
54362
|
+
async listSecrets(query, init) {
|
|
54363
|
+
return this.request("GET", `/secrets`, {
|
|
54364
|
+
body: undefined,
|
|
54365
|
+
query,
|
|
54366
|
+
init
|
|
54367
|
+
});
|
|
54368
|
+
}
|
|
54369
|
+
async putSecret(body, init) {
|
|
54370
|
+
return this.request("POST", `/secrets`, {
|
|
54371
|
+
body,
|
|
54372
|
+
query: undefined,
|
|
54373
|
+
init
|
|
54374
|
+
});
|
|
54375
|
+
}
|
|
54376
|
+
async deleteSecret(query, init) {
|
|
54377
|
+
return this.request("DELETE", `/secrets`, {
|
|
54378
|
+
body: undefined,
|
|
54379
|
+
query,
|
|
54380
|
+
init
|
|
54381
|
+
});
|
|
54382
|
+
}
|
|
54383
|
+
async getSecret(query, init) {
|
|
54384
|
+
return this.request("GET", `/secrets/get`, {
|
|
54385
|
+
body: undefined,
|
|
54386
|
+
query,
|
|
54387
|
+
init
|
|
54388
|
+
});
|
|
54389
|
+
}
|
|
54390
|
+
async searchSecrets(query, init) {
|
|
54391
|
+
return this.request("GET", `/secrets/search`, {
|
|
54392
|
+
body: undefined,
|
|
54393
|
+
query,
|
|
54394
|
+
init
|
|
54395
|
+
});
|
|
54396
|
+
}
|
|
54397
|
+
async listSecretVersions(query, init) {
|
|
54398
|
+
return this.request("GET", `/secrets/versions`, {
|
|
54399
|
+
body: undefined,
|
|
54400
|
+
query,
|
|
54401
|
+
init
|
|
54402
|
+
});
|
|
54403
|
+
}
|
|
54404
|
+
async checkSecretVersion(query, init) {
|
|
54405
|
+
return this.request("GET", `/secrets/versions/check`, {
|
|
54406
|
+
body: undefined,
|
|
54407
|
+
query,
|
|
54408
|
+
init
|
|
54409
|
+
});
|
|
54410
|
+
}
|
|
54411
|
+
async restoreSecretVersion(body, init) {
|
|
54412
|
+
return this.request("POST", `/secrets/restore`, {
|
|
54413
|
+
body,
|
|
54414
|
+
query: undefined,
|
|
54415
|
+
init
|
|
54416
|
+
});
|
|
54417
|
+
}
|
|
54418
|
+
async listUsers(query, init) {
|
|
54419
|
+
return this.request("GET", `/users`, {
|
|
54420
|
+
body: undefined,
|
|
54421
|
+
query,
|
|
54422
|
+
init
|
|
54423
|
+
});
|
|
54424
|
+
}
|
|
54425
|
+
async registerUser(body, init) {
|
|
54426
|
+
return this.request("POST", `/users`, {
|
|
54427
|
+
body,
|
|
54428
|
+
query: undefined,
|
|
54429
|
+
init
|
|
54430
|
+
});
|
|
54431
|
+
}
|
|
54432
|
+
async version(init) {
|
|
54433
|
+
return this.probe(`/version`, init);
|
|
54434
|
+
}
|
|
54435
|
+
}
|
|
54436
|
+
function createSecretsClientFromEnv(env = process.env, overrides = {}) {
|
|
54437
|
+
const { credentials, ...clientOverrides } = overrides;
|
|
54438
|
+
if (clientOverrides.baseUrl !== undefined) {
|
|
54439
|
+
const pinnedKey = clientOverrides.apiKey ?? credentials?.apiKey;
|
|
54440
|
+
if (pinnedKey === undefined || pinnedKey === "") {
|
|
54441
|
+
throw new Error("createSecretsClientFromEnv: an explicit baseUrl requires an explicit apiKey; the ambient " + "credential (Keychain hasna.credentials.secrets.api-key, ~/.hasna/secrets/config/credentials, " + "HASNA_SECRETS_API_KEY) is never sent to a caller-supplied authority (hasna/apps#1794).");
|
|
54442
|
+
}
|
|
54443
|
+
return new SecretsClient({ ...clientOverrides, baseUrl: clientOverrides.baseUrl, apiKey: pinnedKey });
|
|
54444
|
+
}
|
|
54445
|
+
const clientEnv = env;
|
|
54446
|
+
const resolverOptions = credentials ? { credentials } : {};
|
|
54447
|
+
const resolution = resolveClientTransport("secrets", clientEnv, resolverOptions);
|
|
54448
|
+
const baseUrl = resolution.baseUrl;
|
|
54449
|
+
const apiKey = clientOverrides.apiKey ?? (() => {
|
|
54450
|
+
const resolved = resolveCredential2("secrets", clientEnv, credentials);
|
|
54451
|
+
if (!resolved) {
|
|
54452
|
+
throw new Error("createSecretsClientFromEnv: no @hasna/secrets credential resolved (Keychain, " + "~/.hasna/secrets/config/credentials, HASNA_SECRETS_API_KEY).");
|
|
54453
|
+
}
|
|
54454
|
+
return resolved;
|
|
54455
|
+
});
|
|
54456
|
+
return new SecretsClient({ ...clientOverrides, baseUrl, apiKey });
|
|
54457
|
+
}
|
|
54458
|
+
var __esm2 = (fn, res) => () => (fn && (res = fn(fn = 0)), res), CREDENTIAL_PROFILE_ENV_KEY2 = "HASNA_PROFILE", CredentialResolutionError2, CredentialFileUnsafeError2, HASNA_HOME_ENV_KEY2 = "HASNA_HOME", HASNA_CONFIG_HOME_ENV_KEY2 = "HASNA_CONFIG_HOME", KEYCHAIN_STATION_ENV_KEY2 = "HASNA_STATION", HASNA_HOME_DIR2 = ".hasna", CONFIG_SUBDIR2 = "config", CREDENTIALS_FILE2 = "credentials", KEYCHAIN_SECURITY_BIN2 = "/usr/bin/security", KEYCHAIN_SERVICE_PREFIX2 = "hasna.credentials", KEYCHAIN_ITEM_NOT_FOUND_STATUS2 = 44, KEYCHAIN_SPAWN_TIMEOUT_MS2 = 1e4, MAX_CREDENTIAL_FILE_BYTES2, SAFE_APP_SLUG2, SAFE_PROFILE2, ILLEGAL_IN_HEADER_VALUE2, VAULT_POINTER_SHAPE2, CREDENTIAL_SHAPED_KEY2, INSPECT_CUSTOM2, CREDENTIAL_SEAL2, CALLER_SUPPLIED_CREDENTIAL_PROVIDER_SOURCE = "caller-supplied CredentialProvider", AMBIENT_ENVIRONMENT2, SECRETS_PACKAGE_SPECIFIER, requireSecretsSdk2, DEFAULT_FLEET_GATEWAY_ORIGIN2 = "https://api.hasna.com", DEFAULT_AUTHORITY_SOURCE = "default", ASCII_CONTROL_PATTERN2, DNS_LABEL_PATTERN2, ClientTransportConfigurationError2, HasnaHttpError, DEFAULT_RETRY_STATUSES, IDEMPOTENT_METHODS2, AUTHORITY_OVERRIDE_HEADERS2, defaultSleep = (ms) => new Promise((resolve5) => setTimeout(resolve5, ms)), init_transport2, MAX_CREDENTIAL_FILE_BYTES22, INSPECT_CUSTOM22, CREDENTIAL_SEAL22, AMBIENT_ENVIRONMENT22, SECRETS_PACKAGE_SPECIFIER2, requireSecretsSdk22, IDEMPOTENT_METHODS22, AUTHORITY_OVERRIDE_HEADERS22, init_storage, PATHS_RESOLVER_APP_SLUG_RE2, SQLITE_SIDECAR_FILES, LEGACY_SERVICE_FILES, init_data_dir, SecretsTestIsolationError, TEST_ENTRYPOINT_RE, init_test_isolation, init_client, ApiError;
|
|
54459
|
+
var init_sdk = __esm(() => {
|
|
54460
|
+
init_transport2 = __esm2(() => {
|
|
54461
|
+
CredentialResolutionError2 = class CredentialResolutionError3 extends Error {
|
|
54462
|
+
appName;
|
|
54463
|
+
attempted;
|
|
54464
|
+
constructor(appName, message, attempted) {
|
|
54465
|
+
super(message);
|
|
54466
|
+
this.name = "CredentialResolutionError";
|
|
54467
|
+
this.appName = appName;
|
|
54468
|
+
this.attempted = attempted;
|
|
54469
|
+
}
|
|
54470
|
+
};
|
|
54471
|
+
CredentialFileUnsafeError2 = class CredentialFileUnsafeError3 extends Error {
|
|
54472
|
+
path;
|
|
54473
|
+
constructor(path, reason) {
|
|
54474
|
+
super(`Refusing unsafe credential/config file ${path}: ${reason}.`);
|
|
54475
|
+
this.name = "CredentialFileUnsafeError";
|
|
54476
|
+
this.path = path;
|
|
54477
|
+
}
|
|
54478
|
+
};
|
|
54479
|
+
MAX_CREDENTIAL_FILE_BYTES2 = 64 * 1024;
|
|
54480
|
+
SAFE_APP_SLUG2 = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
|
|
54481
|
+
SAFE_PROFILE2 = /^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/;
|
|
54482
|
+
ILLEGAL_IN_HEADER_VALUE2 = /[^\t\x20-\x7e]/;
|
|
54483
|
+
VAULT_POINTER_SHAPE2 = /^[a-z0-9][a-z0-9-]*(?:\/[a-z0-9][a-z0-9-_.]*){2,}$/;
|
|
54484
|
+
CREDENTIAL_SHAPED_KEY2 = /(?:^|_)(?:API_KEY|KEY|TOKEN|SECRET|PASSWORD|PASSWD|CREDENTIAL|AUTH)(?:_|$)/;
|
|
54485
|
+
INSPECT_CUSTOM2 = Symbol.for("nodejs.util.inspect.custom");
|
|
54486
|
+
CREDENTIAL_SEAL2 = Symbol.for("hasna:contracts:sealedCredential");
|
|
54487
|
+
AMBIENT_ENVIRONMENT2 = Symbol.for("hasna:contracts:ambientClientEnvironment");
|
|
54488
|
+
SECRETS_PACKAGE_SPECIFIER = "@hasna/" + "secrets";
|
|
54489
|
+
requireSecretsSdk2 = createRequire2(import.meta.url);
|
|
54490
|
+
ASCII_CONTROL_PATTERN2 = /[\u0000-\u001f\u007f]/;
|
|
54491
|
+
DNS_LABEL_PATTERN2 = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
|
|
54492
|
+
ClientTransportConfigurationError2 = class ClientTransportConfigurationError3 extends Error {
|
|
54493
|
+
appName;
|
|
54494
|
+
sources;
|
|
54495
|
+
constructor(appName, message, sources = []) {
|
|
54496
|
+
super(message);
|
|
54497
|
+
this.name = "ClientTransportConfigurationError";
|
|
54498
|
+
this.appName = appName;
|
|
54499
|
+
this.sources = Object.freeze([...sources]);
|
|
54500
|
+
}
|
|
54501
|
+
};
|
|
54502
|
+
HasnaHttpError = class HasnaHttpError2 extends Error {
|
|
54503
|
+
status;
|
|
54504
|
+
method;
|
|
54505
|
+
path;
|
|
54506
|
+
credentialSource;
|
|
54507
|
+
credentialTier;
|
|
54508
|
+
constructor(method, path, status, body, credential) {
|
|
54509
|
+
const guidance = credential ? `. ${credential.guidance}` : "";
|
|
54510
|
+
super(`Hasna cloud request failed: ${method} ${path} -> ${status}${guidance}`);
|
|
54511
|
+
this.name = "HasnaHttpError";
|
|
54512
|
+
this.status = status;
|
|
54513
|
+
this.method = method;
|
|
54514
|
+
this.path = path;
|
|
54515
|
+
Object.defineProperty(this, "body", {
|
|
54516
|
+
value: body,
|
|
54517
|
+
enumerable: status !== 401 && status !== 403,
|
|
54518
|
+
writable: false,
|
|
54519
|
+
configurable: false
|
|
54520
|
+
});
|
|
54521
|
+
this.credentialSource = credential?.source ?? null;
|
|
54522
|
+
this.credentialTier = credential?.tier ?? null;
|
|
54523
|
+
}
|
|
54524
|
+
};
|
|
54525
|
+
DEFAULT_RETRY_STATUSES = [408, 425, 429, 500, 502, 503, 504];
|
|
54526
|
+
IDEMPOTENT_METHODS2 = new Set(["GET", "HEAD", "PUT", "DELETE", "OPTIONS"]);
|
|
54527
|
+
AUTHORITY_OVERRIDE_HEADERS2 = new Set([
|
|
54528
|
+
"host",
|
|
54529
|
+
":authority",
|
|
54530
|
+
"forwarded",
|
|
54531
|
+
"x-forwarded-host",
|
|
54532
|
+
"x-original-host"
|
|
54533
|
+
]);
|
|
54534
|
+
});
|
|
54535
|
+
init_storage = __esm2(() => {
|
|
54536
|
+
MAX_CREDENTIAL_FILE_BYTES22 = 64 * 1024;
|
|
54537
|
+
INSPECT_CUSTOM22 = Symbol.for("nodejs.util.inspect.custom");
|
|
54538
|
+
CREDENTIAL_SEAL22 = Symbol.for("hasna:contracts:sealedCredential");
|
|
54539
|
+
AMBIENT_ENVIRONMENT22 = Symbol.for("hasna:contracts:ambientClientEnvironment");
|
|
54540
|
+
SECRETS_PACKAGE_SPECIFIER2 = "@hasna/" + "secrets";
|
|
54541
|
+
requireSecretsSdk22 = createRequire22(import.meta.url);
|
|
54542
|
+
IDEMPOTENT_METHODS22 = new Set(["GET", "HEAD", "PUT", "DELETE", "OPTIONS"]);
|
|
54543
|
+
AUTHORITY_OVERRIDE_HEADERS22 = new Set([
|
|
54544
|
+
"host",
|
|
54545
|
+
":authority",
|
|
54546
|
+
"forwarded",
|
|
54547
|
+
"x-forwarded-host",
|
|
54548
|
+
"x-original-host"
|
|
54549
|
+
]);
|
|
54550
|
+
});
|
|
54551
|
+
init_data_dir = __esm2(() => {
|
|
54552
|
+
PATHS_RESOLVER_APP_SLUG_RE2 = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
54553
|
+
SQLITE_SIDECAR_FILES = ["vault.db-wal", "vault.db-shm", "vault.db-journal"];
|
|
54554
|
+
LEGACY_SERVICE_FILES = [
|
|
54555
|
+
"vault.key",
|
|
54556
|
+
"vault.key.enc",
|
|
54557
|
+
"kms.json",
|
|
54558
|
+
"aws.json",
|
|
54559
|
+
".serve-token"
|
|
54560
|
+
];
|
|
54561
|
+
});
|
|
54562
|
+
init_test_isolation = __esm2(() => {
|
|
54563
|
+
init_data_dir();
|
|
54564
|
+
SecretsTestIsolationError = class SecretsTestIsolationError2 extends Error {
|
|
54565
|
+
constructor(message) {
|
|
54566
|
+
super(message);
|
|
54567
|
+
this.name = "SecretsTestIsolationError";
|
|
54568
|
+
}
|
|
54569
|
+
};
|
|
54570
|
+
TEST_ENTRYPOINT_RE = /\.(test|spec)\.[cm]?[jt]sx?$/;
|
|
54571
|
+
});
|
|
54572
|
+
init_client = __esm2(() => {
|
|
54573
|
+
init_transport2();
|
|
54574
|
+
init_storage();
|
|
54575
|
+
init_test_isolation();
|
|
54576
|
+
init_transport2();
|
|
54577
|
+
});
|
|
54578
|
+
init_client();
|
|
54579
|
+
ApiError = class ApiError extends Error {
|
|
54580
|
+
status;
|
|
54581
|
+
body;
|
|
54582
|
+
constructor(status, message, body) {
|
|
54583
|
+
super(message);
|
|
54584
|
+
this.status = status;
|
|
54585
|
+
this.body = body;
|
|
54586
|
+
this.name = "ApiError";
|
|
54587
|
+
}
|
|
54588
|
+
};
|
|
54589
|
+
init_client();
|
|
54590
|
+
});
|
|
54591
|
+
|
|
54592
|
+
// src/lib/execution-secrets.ts
|
|
54593
|
+
import { constants as constants7, closeSync as closeSync11, fstatSync as fstatSync11, openSync as openSync11, readSync as readSync5, realpathSync as realpathSync5 } from "fs";
|
|
54594
|
+
import { hostname as stationHostname } from "os";
|
|
54595
|
+
function selectedSecretBindingsTemplate(scope, names, createClient = createSecretsClientFromEnv) {
|
|
54596
|
+
let secretsAuthority;
|
|
54597
|
+
try {
|
|
54598
|
+
secretsAuthority = createClient().baseUrl;
|
|
54599
|
+
} catch {
|
|
54600
|
+
return refuse("LOCAL_SECRET_UNAVAILABLE", "Configure the Secrets CLI authority and authentication before preparing execution bindings.");
|
|
54601
|
+
}
|
|
54602
|
+
const { authority, workspaceId, profileRevision, slug: slug2, version: version2, bundleDigest } = scope.selection;
|
|
54603
|
+
return {
|
|
54604
|
+
schema: "hasna.skills-secret-bindings.v1",
|
|
54605
|
+
selection: { authority, workspaceId, profileId: scope.profileId, profileRevision, slug: slug2, version: version2, bundleDigest },
|
|
54606
|
+
consumer: { stationId: process.env.HASNA_STATION || stationHostname(), workspaceDirectory: realpathSync5(scope.cwd) },
|
|
54607
|
+
secretsAuthority,
|
|
54608
|
+
bindings: Object.fromEntries(names.map((name) => [name, ""]))
|
|
54609
|
+
};
|
|
54610
|
+
}
|
|
54611
|
+
function refuse(code2, message) {
|
|
54612
|
+
throw new SkillSelectionError(code2, message);
|
|
54613
|
+
}
|
|
54614
|
+
function record9(value) {
|
|
54615
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
54616
|
+
}
|
|
54617
|
+
function exactKeys(value, keys) {
|
|
54618
|
+
return Object.keys(value).length === keys.length && keys.every((key) => Object.hasOwn(value, key));
|
|
54619
|
+
}
|
|
54620
|
+
function identifier2(value) {
|
|
54621
|
+
return typeof value === "string" && value.length > 0 && value.length <= 2048 && !/[\x00-\x20\x7f]/.test(value);
|
|
54622
|
+
}
|
|
54623
|
+
function declaredSecretNames(value) {
|
|
54624
|
+
if (value === undefined)
|
|
54625
|
+
return [];
|
|
54626
|
+
if (!Array.isArray(value) || value.length > 32 || value.some((name) => typeof name !== "string" || !/^[A-Z][A-Z0-9_]{0,127}$/.test(name)) || new Set(value).size !== value.length) {
|
|
54627
|
+
return refuse("INVALID_SKILL_MANIFEST", "Runtime environment references must be unique uppercase identifiers (at most 32).");
|
|
54628
|
+
}
|
|
54629
|
+
if (value.some((name) => /^(?:PATH|HOME|TMPDIR|TEMP|TMP|LANG|LC_ALL|TERM|SHELL|ENV|BASH_ENV|IFS|NODE_OPTIONS|NODE_PATH)$/.test(name) || /^(?:SKILLS_|BUN_|PYTHON|LD_|DYLD_)/.test(name))) {
|
|
54630
|
+
return refuse("INVALID_SKILL_MANIFEST", "Runtime environment references cannot override execution controls.");
|
|
54631
|
+
}
|
|
54632
|
+
return value;
|
|
54633
|
+
}
|
|
54634
|
+
function validateSelectedSecretBindings(value, scope, names) {
|
|
54635
|
+
if (!record9(value) || !exactKeys(value, ["schema", "selection", "consumer", "secretsAuthority", "bindings"]) || value.schema !== "hasna.skills-secret-bindings.v1" || !record9(value.selection) || !exactKeys(value.selection, ["authority", "workspaceId", "profileId", "profileRevision", "slug", "version", "bundleDigest"]) || !record9(value.consumer) || !exactKeys(value.consumer, ["stationId", "workspaceDirectory"]) || !record9(value.bindings)) {
|
|
54636
|
+
return refuse("INVALID_SECRET_BINDINGS", "Secret bindings do not match the hasna.skills-secret-bindings.v1 contract.");
|
|
54637
|
+
}
|
|
54638
|
+
for (const [key, expected] of Object.entries({ authority: scope.selection.authority, workspaceId: scope.selection.workspaceId, profileId: scope.profileId, profileRevision: scope.selection.profileRevision, slug: scope.selection.slug, version: scope.selection.version, bundleDigest: scope.selection.bundleDigest })) {
|
|
54639
|
+
if (value.selection[key] !== expected)
|
|
54640
|
+
return refuse("SECRET_BINDING_SCOPE_MISMATCH", "Secret bindings do not match the exact selected authority, workspace, profile, revision, version and digest.");
|
|
54641
|
+
}
|
|
54642
|
+
let workspaceDirectory;
|
|
54643
|
+
try {
|
|
54644
|
+
workspaceDirectory = realpathSync5(scope.cwd);
|
|
54645
|
+
} catch {
|
|
54646
|
+
return refuse("SECRET_BINDING_CONSUMER_MISMATCH", "The execution workspace cannot be resolved.");
|
|
54647
|
+
}
|
|
54648
|
+
if (value.consumer.stationId !== (process.env.HASNA_STATION || stationHostname()) || value.consumer.workspaceDirectory !== workspaceDirectory) {
|
|
54649
|
+
return refuse("SECRET_BINDING_CONSUMER_MISMATCH", "Secret bindings do not match this station and canonical workspace directory.");
|
|
54650
|
+
}
|
|
54651
|
+
try {
|
|
54652
|
+
if (!identifier2(value.secretsAuthority))
|
|
54653
|
+
throw new Error;
|
|
54654
|
+
const url2 = new URL(value.secretsAuthority);
|
|
54655
|
+
if (url2.protocol !== "https:" && !(url2.protocol === "http:" && ["127.0.0.1", "[::1]", "localhost"].includes(url2.hostname)) || url2.username || url2.password || url2.search || url2.hash || !url2.pathname.endsWith("/v1") || url2.href !== value.secretsAuthority)
|
|
54656
|
+
throw new Error;
|
|
54657
|
+
} catch {
|
|
54658
|
+
return refuse("INVALID_SECRET_BINDINGS", "Secret bindings require a canonical HTTPS Secrets /v1 authority (loopback HTTP is allowed).");
|
|
54659
|
+
}
|
|
54660
|
+
if (!exactKeys(value.bindings, names) || Object.values(value.bindings).some((key) => !identifier2(key) || !/^[A-Za-z0-9][A-Za-z0-9._/-]*$/.test(key) || key.split("/").some((part) => !part || part === "." || part === ".."))) {
|
|
54661
|
+
return refuse("INVALID_SECRET_BINDINGS", "Bind every declared environment name exactly once to a vault key; undeclared bindings and values are refused.");
|
|
54662
|
+
}
|
|
54663
|
+
return structuredClone(value);
|
|
54664
|
+
}
|
|
54665
|
+
async function resolveSelectedSecrets(bindings, createClient = createSecretsClientFromEnv) {
|
|
54666
|
+
if (!Object.keys(bindings.bindings).length)
|
|
54667
|
+
return {};
|
|
54668
|
+
let client;
|
|
54669
|
+
try {
|
|
54670
|
+
client = createClient();
|
|
54671
|
+
} catch {
|
|
54672
|
+
return refuse("LOCAL_SECRET_UNAVAILABLE", "The configured Secrets client could not authenticate. No ambient credential fallback was attempted.");
|
|
54673
|
+
}
|
|
54674
|
+
if (client.baseUrl !== bindings.secretsAuthority)
|
|
54675
|
+
return refuse("SECRET_BINDING_AUTHORITY_MISMATCH", "The configured Secrets authority differs from the reviewed binding. No secret was requested.");
|
|
54676
|
+
const env = {};
|
|
54677
|
+
const signal = AbortSignal.timeout(15000);
|
|
54678
|
+
try {
|
|
54679
|
+
for (const [name, key] of Object.entries(bindings.bindings)) {
|
|
54680
|
+
const secret = await client.getSecret({ key }, { signal });
|
|
54681
|
+
if (secret.key !== key || typeof secret.value !== "string" || !secret.value || secret.value.includes("\x00") || Buffer.byteLength(secret.value) > 16384 || secret.expires_at != null && (!Number.isFinite(Date.parse(secret.expires_at)) || Date.parse(secret.expires_at) <= Date.now()))
|
|
54682
|
+
throw new Error;
|
|
54683
|
+
env[name] = secret.value;
|
|
54684
|
+
}
|
|
54685
|
+
return env;
|
|
54686
|
+
} catch {
|
|
54687
|
+
return refuse("LOCAL_SECRET_UNAVAILABLE", "A declared secret could not be resolved, was invalid, or has expired. The skill was not started; no fallback was attempted.");
|
|
54688
|
+
}
|
|
54689
|
+
}
|
|
54690
|
+
function redactExecutionSecrets(text3, env) {
|
|
54691
|
+
const values = new Set(Object.values(env).flatMap((value) => {
|
|
54692
|
+
let encoded = "";
|
|
54693
|
+
try {
|
|
54694
|
+
encoded = encodeURIComponent(value);
|
|
54695
|
+
} catch {}
|
|
54696
|
+
return [value, JSON.stringify(value).slice(1, -1), Buffer.from(value).toString("base64"), encoded];
|
|
54697
|
+
}));
|
|
54698
|
+
for (const value of [...values].filter(Boolean).sort((a, b) => b.length - a.length))
|
|
54699
|
+
text3 = text3.split(value).join("[REDACTED]");
|
|
54700
|
+
return text3;
|
|
54701
|
+
}
|
|
54702
|
+
var init_execution_secrets = __esm(() => {
|
|
54703
|
+
init_sdk();
|
|
54704
|
+
init_selection_cache();
|
|
54705
|
+
});
|
|
54706
|
+
|
|
53290
54707
|
// src/lib/selected-run.ts
|
|
53291
54708
|
var exports_selected_run = {};
|
|
53292
54709
|
__export(exports_selected_run, {
|
|
53293
54710
|
resolveSelectedRun: () => resolveSelectedRun,
|
|
54711
|
+
prepareSelectedSecretBindings: () => prepareSelectedSecretBindings,
|
|
53294
54712
|
executeSelectedLocal: () => executeSelectedLocal
|
|
53295
54713
|
});
|
|
53296
54714
|
import { createHash as createHash9 } from "crypto";
|
|
53297
54715
|
import { spawn } from "child_process";
|
|
53298
54716
|
import { mkdirSync as mkdirSync11, mkdtempSync as mkdtempSync3, writeFileSync as writeFileSync10 } from "fs";
|
|
53299
|
-
import { dirname as dirname8, join as
|
|
54717
|
+
import { dirname as dirname8, join as join23, resolve as resolve5 } from "path";
|
|
53300
54718
|
import { tmpdir } from "os";
|
|
53301
54719
|
function jsonEntry(entries, path) {
|
|
53302
54720
|
const entry = entries.find((candidate) => candidate.path === path);
|
|
@@ -53322,10 +54740,23 @@ async function resolveSelectedRun(spec, profileId, options = {}) {
|
|
|
53322
54740
|
const context2 = await resolveSelectionContext(profileId, options);
|
|
53323
54741
|
const selection = exactProfileSelection(spec, context2.receipt.profile);
|
|
53324
54742
|
const entries = await readSelectedEntries(selection, context2, options);
|
|
53325
|
-
return { selection, entries, ...describeEntries(entries), cacheDir: selectionCacheRoot(options) };
|
|
54743
|
+
return { selection, profileId: context2.receipt.profile.profileId, entries, ...describeEntries(entries), cacheDir: selectionCacheRoot(options) };
|
|
53326
54744
|
}
|
|
53327
|
-
async function
|
|
54745
|
+
async function prepareSelectedSecretBindings(selected, cwd = process.cwd()) {
|
|
53328
54746
|
const entries = await readCachedSelection(selected.selection, { cacheDir: selected.cacheDir });
|
|
54747
|
+
if (!entries)
|
|
54748
|
+
throw new SkillSelectionError("CACHED_BUNDLE_MISSING", "The selected execution bundle is not cached.");
|
|
54749
|
+
const { kind, manifest } = describeEntries(entries);
|
|
54750
|
+
if (kind !== "executable")
|
|
54751
|
+
throw new SkillSelectionError("INSTRUCTION_SKILL", "Instruction skills do not accept execution secret bindings.");
|
|
54752
|
+
const names = declaredSecretNames(manifest.runtime?.env);
|
|
54753
|
+
if (!names.length)
|
|
54754
|
+
throw new SkillSelectionError("NO_DECLARED_SECRETS", "This selected executable does not declare any environment references.");
|
|
54755
|
+
return selectedSecretBindingsTemplate({ selection: selected.selection, profileId: selected.profileId, cwd }, names);
|
|
54756
|
+
}
|
|
54757
|
+
async function executeSelectedLocal(selected, options = {}) {
|
|
54758
|
+
const selection = structuredClone(selected.selection), profileId = selected.profileId;
|
|
54759
|
+
const entries = await readCachedSelection(selection, { cacheDir: selected.cacheDir });
|
|
53329
54760
|
if (!entries)
|
|
53330
54761
|
throw new SkillSelectionError("CACHED_BUNDLE_MISSING", "The selected local execution bundle is not cached.");
|
|
53331
54762
|
const { kind, manifest, packageJson } = describeEntries(entries);
|
|
@@ -53366,15 +54797,21 @@ async function executeSelectedLocal(selected, options = {}) {
|
|
|
53366
54797
|
for (const key of ["PATH", "HOME", "TMPDIR", "LANG", "LC_ALL", "TERM"])
|
|
53367
54798
|
if (process.env[key])
|
|
53368
54799
|
env[key] = process.env[key];
|
|
53369
|
-
|
|
53370
|
-
|
|
53371
|
-
|
|
53372
|
-
|
|
53373
|
-
|
|
53374
|
-
|
|
53375
|
-
|
|
53376
|
-
|
|
53377
|
-
|
|
54800
|
+
const names = declaredSecretNames(runtime.env);
|
|
54801
|
+
if (options.secretBindings !== undefined && options.env !== undefined)
|
|
54802
|
+
throw new SkillSelectionError("INVALID_SECRET_BINDINGS", "Choose explicit vault bindings or SDK environment values, never both.");
|
|
54803
|
+
const bindings = options.secretBindings === undefined ? undefined : validateSelectedSecretBindings(options.secretBindings, { selection, profileId, cwd: options.cwd ?? process.cwd() }, names);
|
|
54804
|
+
let secretEnv = {};
|
|
54805
|
+
if (!bindings)
|
|
54806
|
+
for (const name of names) {
|
|
54807
|
+
const value = options.env && Object.hasOwn(options.env, name) ? options.env[name] : undefined;
|
|
54808
|
+
if (value === undefined)
|
|
54809
|
+
throw new SkillSelectionError("LOCAL_ENV_REQUIRED", `The selected runtime requires an explicit binding for ${name}; use --secret-bindings. Ambient credentials are not inherited.`);
|
|
54810
|
+
if (typeof value !== "string" || value.includes("\x00") || Buffer.byteLength(value) > 16384)
|
|
54811
|
+
throw new SkillSelectionError("INVALID_SECRET_BINDINGS", "Explicit environment values must be bounded strings without NUL bytes.");
|
|
54812
|
+
secretEnv[name] = value;
|
|
54813
|
+
}
|
|
54814
|
+
const runDirectory = mkdtempSync3(join23(tmpdir(), "skills-execution-"));
|
|
53378
54815
|
const paths = new SkillEntryPaths;
|
|
53379
54816
|
for (const entry of entries) {
|
|
53380
54817
|
paths.add(entry.path, 100, () => {
|
|
@@ -53382,7 +54819,7 @@ async function executeSelectedLocal(selected, options = {}) {
|
|
|
53382
54819
|
}, () => {
|
|
53383
54820
|
throw new SkillSelectionError("INVALID_BUNDLE_PATH", "The execution bundle path exceeds its limit.");
|
|
53384
54821
|
});
|
|
53385
|
-
const destination =
|
|
54822
|
+
const destination = join23(runDirectory, entry.path);
|
|
53386
54823
|
mkdirSync11(dirname8(destination), { recursive: true, mode: 448 });
|
|
53387
54824
|
writeFileSync10(destination, entry.bytes, { flag: "wx", mode: entry.mode & 511 });
|
|
53388
54825
|
}
|
|
@@ -53390,14 +54827,26 @@ async function executeSelectedLocal(selected, options = {}) {
|
|
|
53390
54827
|
env.SKILLS_WORKSPACE_DIR = resolve5(options.cwd ?? process.cwd());
|
|
53391
54828
|
env.SKILLS_RUN_DIR = runDirectory;
|
|
53392
54829
|
if (runtime.version) {
|
|
53393
|
-
const version2 = await subprocess([executable, "--version"], runDirectory, env, "", Math.min(timeoutMs, 5000));
|
|
54830
|
+
const version2 = await subprocess([executable, ...runtimeName === "bun" ? ["--no-env-file"] : [], "--version"], runDirectory, env, "", Math.min(timeoutMs, 5000));
|
|
53394
54831
|
const actual = version2.stdout.trim().replace(/^v/, "").replace(/^Python /, "");
|
|
53395
54832
|
if (version2.exitCode !== 0 || actual !== runtime.version)
|
|
53396
54833
|
throw new SkillSelectionError("LOCAL_RUNTIME_VERSION_MISMATCH", "The installed runtime version differs from the version selected by the skill.");
|
|
53397
54834
|
}
|
|
53398
|
-
|
|
53399
|
-
|
|
53400
|
-
|
|
54835
|
+
if (bindings)
|
|
54836
|
+
secretEnv = await resolveSelectedSecrets(bindings, options.createSecretsClient);
|
|
54837
|
+
const result = await subprocess([executable, ...runtimeName === "bun" ? ["--no-env-file"] : [], join23(runDirectory, declaredEntry), ...args], runDirectory, { ...env, ...secretEnv }, input2, timeoutMs);
|
|
54838
|
+
result.stdout = redactExecutionSecrets(result.stdout, secretEnv);
|
|
54839
|
+
result.stderr = redactExecutionSecrets(result.stderr, secretEnv);
|
|
54840
|
+
const receipt = {
|
|
54841
|
+
selection,
|
|
54842
|
+
target: "local",
|
|
54843
|
+
runtime: runtimeName,
|
|
54844
|
+
inputDigest: `sha256:${createHash9("sha256").update(input2).digest("hex")}`,
|
|
54845
|
+
runDirectory,
|
|
54846
|
+
...bindings ? { secretBinding: { schema: bindings.schema, selection: bindings.selection, consumer: bindings.consumer, secretsAuthority: bindings.secretsAuthority, bindings: bindings.bindings } } : {},
|
|
54847
|
+
...result
|
|
54848
|
+
};
|
|
54849
|
+
writeFileSync10(join23(runDirectory, ".execution-receipt.json"), JSON.stringify({ ...receipt, stdout: undefined, stderr: undefined }), { mode: 384 });
|
|
53401
54850
|
return receipt;
|
|
53402
54851
|
}
|
|
53403
54852
|
async function subprocess(command, cwd, env, input2, timeoutMs) {
|
|
@@ -53450,6 +54899,7 @@ var init_selected_run = __esm(() => {
|
|
|
53450
54899
|
init_selection_resolver();
|
|
53451
54900
|
init_selection_cache();
|
|
53452
54901
|
init_skill_validation();
|
|
54902
|
+
init_execution_secrets();
|
|
53453
54903
|
});
|
|
53454
54904
|
|
|
53455
54905
|
// src/lib/cloud-executions.ts
|
|
@@ -53730,7 +55180,7 @@ var init_blog_article = __esm(() => {
|
|
|
53730
55180
|
|
|
53731
55181
|
// src/mcp/operation-tools.ts
|
|
53732
55182
|
import { existsSync as existsSync15, readdirSync as readdirSync9, statSync as statSync10 } from "fs";
|
|
53733
|
-
import { join as
|
|
55183
|
+
import { join as join24 } from "path";
|
|
53734
55184
|
function registerOperationTools(server) {
|
|
53735
55185
|
server.registerTool("scaffold_skill", {
|
|
53736
55186
|
title: "Scaffold Skill",
|
|
@@ -54195,7 +55645,7 @@ function registerOperationTools(server) {
|
|
|
54195
55645
|
if (exists) {
|
|
54196
55646
|
try {
|
|
54197
55647
|
skillCount = readdirSync9(agentSkillsPath).filter((f) => {
|
|
54198
|
-
const full =
|
|
55648
|
+
const full = join24(agentSkillsPath, f);
|
|
54199
55649
|
return !f.startsWith(".") && statSync10(full).isDirectory();
|
|
54200
55650
|
}).length;
|
|
54201
55651
|
} catch {}
|
|
@@ -54263,10 +55713,10 @@ var init_operation_tools = __esm(() => {
|
|
|
54263
55713
|
|
|
54264
55714
|
// src/lib/feedback.ts
|
|
54265
55715
|
import { appendFileSync, existsSync as existsSync16, mkdirSync as mkdirSync12 } from "fs";
|
|
54266
|
-
import { dirname as dirname9, join as
|
|
55716
|
+
import { dirname as dirname9, join as join25 } from "path";
|
|
54267
55717
|
import { Database } from "bun:sqlite";
|
|
54268
55718
|
function getFeedbackDbPath() {
|
|
54269
|
-
return
|
|
55719
|
+
return join25(getDataDir(), "skills.db");
|
|
54270
55720
|
}
|
|
54271
55721
|
function getFeedbackDb() {
|
|
54272
55722
|
const dbPath = getFeedbackDbPath();
|
|
@@ -54298,7 +55748,7 @@ function saveFeedback(input2) {
|
|
|
54298
55748
|
throw new Error("Feedback message is required");
|
|
54299
55749
|
const category = input2.category ?? "general";
|
|
54300
55750
|
if (isApiMode()) {
|
|
54301
|
-
const path =
|
|
55751
|
+
const path = join25(getDataDir(), "feedback.jsonl");
|
|
54302
55752
|
const dir = dirname9(path);
|
|
54303
55753
|
if (!existsSync16(dir))
|
|
54304
55754
|
mkdirSync12(dir, { recursive: true });
|
|
@@ -54462,23 +55912,23 @@ var init_resource_meta_tools = __esm(() => {
|
|
|
54462
55912
|
});
|
|
54463
55913
|
|
|
54464
55914
|
// src/lib/scheduler.ts
|
|
54465
|
-
import { existsSync as existsSync17, readFileSync as
|
|
54466
|
-
import { join as
|
|
55915
|
+
import { existsSync as existsSync17, readFileSync as readFileSync19, writeFileSync as writeFileSync11, mkdirSync as mkdirSync13 } from "fs";
|
|
55916
|
+
import { join as join26 } from "path";
|
|
54467
55917
|
function getSchedulesPath(targetDir = process.cwd()) {
|
|
54468
|
-
return
|
|
55918
|
+
return join26(targetDir, ".skills", "schedules.json");
|
|
54469
55919
|
}
|
|
54470
55920
|
function loadSchedules(targetDir = process.cwd()) {
|
|
54471
55921
|
const path = getSchedulesPath(targetDir);
|
|
54472
55922
|
if (existsSync17(path)) {
|
|
54473
55923
|
try {
|
|
54474
|
-
return JSON.parse(
|
|
55924
|
+
return JSON.parse(readFileSync19(path, "utf-8"));
|
|
54475
55925
|
} catch {}
|
|
54476
55926
|
}
|
|
54477
55927
|
return { version: 1, schedules: [] };
|
|
54478
55928
|
}
|
|
54479
55929
|
function saveSchedules(data, targetDir = process.cwd()) {
|
|
54480
55930
|
const path = getSchedulesPath(targetDir);
|
|
54481
|
-
const dir =
|
|
55931
|
+
const dir = join26(targetDir, ".skills");
|
|
54482
55932
|
if (!existsSync17(dir))
|
|
54483
55933
|
mkdirSync13(dir, { recursive: true });
|
|
54484
55934
|
writeFileSync11(path, JSON.stringify(data, null, 2));
|
|
@@ -54754,12 +56204,12 @@ import { createHash as createHash10, createHmac } from "crypto";
|
|
|
54754
56204
|
import {
|
|
54755
56205
|
existsSync as existsSync18,
|
|
54756
56206
|
mkdirSync as mkdirSync14,
|
|
54757
|
-
readFileSync as
|
|
56207
|
+
readFileSync as readFileSync20,
|
|
54758
56208
|
readdirSync as readdirSync10,
|
|
54759
56209
|
statSync as statSync11,
|
|
54760
56210
|
writeFileSync as writeFileSync12
|
|
54761
56211
|
} from "fs";
|
|
54762
|
-
import { dirname as dirname10, join as
|
|
56212
|
+
import { dirname as dirname10, join as join27, normalize as normalize3, relative as relative6, sep as sep4 } from "path";
|
|
54763
56213
|
function resolveSkillsNativeStorageConfig(env = process.env) {
|
|
54764
56214
|
assertNoRetiredModeEnvVars(env, {
|
|
54765
56215
|
app: SKILLS_ENV_NAMESPACE,
|
|
@@ -54800,7 +56250,7 @@ function getSkillsNativeStorageStatus(options = {}) {
|
|
|
54800
56250
|
local: {
|
|
54801
56251
|
dataDir: getDataDir(),
|
|
54802
56252
|
projectStateDir: getProjectStateDir(targetDir),
|
|
54803
|
-
feedbackDbPath:
|
|
56253
|
+
feedbackDbPath: join27(getDataDir(), "skills.db")
|
|
54804
56254
|
},
|
|
54805
56255
|
remote: {
|
|
54806
56256
|
databaseConfigured: Boolean(config2.databaseUrl),
|
|
@@ -54822,7 +56272,7 @@ function exportSkillsLocalSnapshot(targetDir = process.cwd(), options = {}) {
|
|
|
54822
56272
|
const files = [];
|
|
54823
56273
|
if (existsSync18(projectStateDir)) {
|
|
54824
56274
|
for (const filePath of walkFiles2(projectStateDir)) {
|
|
54825
|
-
const bytes =
|
|
56275
|
+
const bytes = readFileSync20(filePath);
|
|
54826
56276
|
const relativePath = toPosix(relative6(targetDir, filePath));
|
|
54827
56277
|
files.push({
|
|
54828
56278
|
path: relativePath,
|
|
@@ -54881,7 +56331,7 @@ function parsePositiveInteger(value) {
|
|
|
54881
56331
|
function walkFiles2(dir) {
|
|
54882
56332
|
const files = [];
|
|
54883
56333
|
for (const entry of readdirSync10(dir)) {
|
|
54884
|
-
const full =
|
|
56334
|
+
const full = join27(dir, entry);
|
|
54885
56335
|
const stats = statSync11(full);
|
|
54886
56336
|
if (stats.isDirectory())
|
|
54887
56337
|
files.push(...walkFiles2(full));
|
|
@@ -55119,11 +56569,11 @@ var init_private_publication_customer = __esm(() => {
|
|
|
55119
56569
|
});
|
|
55120
56570
|
|
|
55121
56571
|
// src/lib/private-publication-recovery.ts
|
|
55122
|
-
import { constants as
|
|
55123
|
-
import { dirname as dirname11, isAbsolute as
|
|
56572
|
+
import { constants as constants8, closeSync as closeSync12, fsyncSync as fsyncSync2, fstatSync as fstatSync12, lstatSync as lstatSync10, mkdirSync as mkdirSync15, openSync as openSync12, readSync as readSync6, realpathSync as realpathSync6, renameSync as renameSync6, unlinkSync as unlinkSync5, writeFileSync as writeFileSync13 } from "fs";
|
|
56573
|
+
import { dirname as dirname11, isAbsolute as isAbsolute7, join as join28, resolve as resolve6 } from "path";
|
|
55124
56574
|
import { randomUUID as randomUUID3 } from "crypto";
|
|
55125
56575
|
function safeDirectory(directory2) {
|
|
55126
|
-
if (!
|
|
56576
|
+
if (!isAbsolute7(directory2) || directory2 !== resolve6(directory2) || realpathSync6(directory2) !== directory2)
|
|
55127
56577
|
return fail2();
|
|
55128
56578
|
for (let path = directory2;; path = dirname11(path)) {
|
|
55129
56579
|
const stat2 = lstatSync10(path);
|
|
@@ -55143,36 +56593,36 @@ function unchangedDirectory(directory2, identity2) {
|
|
|
55143
56593
|
return fail2();
|
|
55144
56594
|
}
|
|
55145
56595
|
function readOwned(directory2, name, max) {
|
|
55146
|
-
const identity2 = safeDirectory(directory2), file2 =
|
|
55147
|
-
const fd =
|
|
56596
|
+
const identity2 = safeDirectory(directory2), file2 = join28(directory2, name);
|
|
56597
|
+
const fd = openSync12(file2, constants8.O_RDONLY | constants8.O_NOFOLLOW);
|
|
55148
56598
|
try {
|
|
55149
|
-
const stat2 =
|
|
56599
|
+
const stat2 = fstatSync12(fd);
|
|
55150
56600
|
if (!stat2.isFile() || stat2.nlink !== 1 || stat2.size > max || stat2.size < 1 || (stat2.mode & 63) !== 0 || process.getuid && stat2.uid !== process.getuid())
|
|
55151
56601
|
return fail2();
|
|
55152
56602
|
const buffer = Buffer.alloc(Math.min(max, stat2.size) + 1);
|
|
55153
56603
|
let length = 0;
|
|
55154
56604
|
while (length < buffer.length) {
|
|
55155
|
-
const count =
|
|
56605
|
+
const count = readSync6(fd, buffer, length, buffer.length - length, length);
|
|
55156
56606
|
if (count === 0)
|
|
55157
56607
|
break;
|
|
55158
56608
|
length += count;
|
|
55159
56609
|
}
|
|
55160
|
-
const bytes = buffer.subarray(0, length), after =
|
|
56610
|
+
const bytes = buffer.subarray(0, length), after = fstatSync12(fd);
|
|
55161
56611
|
unchangedDirectory(directory2, identity2);
|
|
55162
56612
|
if (bytes.length !== stat2.size || stat2.size !== after.size || stat2.mtimeMs !== after.mtimeMs || stat2.ctimeMs !== after.ctimeMs)
|
|
55163
56613
|
return fail2();
|
|
55164
56614
|
return bytes;
|
|
55165
56615
|
} finally {
|
|
55166
|
-
|
|
56616
|
+
closeSync12(fd);
|
|
55167
56617
|
}
|
|
55168
56618
|
}
|
|
55169
56619
|
function writeOwned(directory2, name, bytes) {
|
|
55170
|
-
const fd =
|
|
56620
|
+
const fd = openSync12(join28(directory2, name), constants8.O_WRONLY | constants8.O_CREAT | constants8.O_EXCL | constants8.O_NOFOLLOW, 384);
|
|
55171
56621
|
try {
|
|
55172
56622
|
writeFileSync13(fd, bytes);
|
|
55173
56623
|
fsyncSync2(fd);
|
|
55174
56624
|
} finally {
|
|
55175
|
-
|
|
56625
|
+
closeSync12(fd);
|
|
55176
56626
|
}
|
|
55177
56627
|
}
|
|
55178
56628
|
function save(directory2, value) {
|
|
@@ -55180,12 +56630,12 @@ function save(directory2, value) {
|
|
|
55180
56630
|
writeOwned(directory2, temporary, JSON.stringify(value) + `
|
|
55181
56631
|
`);
|
|
55182
56632
|
unchangedDirectory(directory2, identity2);
|
|
55183
|
-
renameSync6(
|
|
55184
|
-
const fd =
|
|
56633
|
+
renameSync6(join28(directory2, temporary), join28(directory2, "receipt.json"));
|
|
56634
|
+
const fd = openSync12(directory2, constants8.O_RDONLY | constants8.O_NOFOLLOW);
|
|
55185
56635
|
try {
|
|
55186
56636
|
fsyncSync2(fd);
|
|
55187
56637
|
} finally {
|
|
55188
|
-
|
|
56638
|
+
closeSync12(fd);
|
|
55189
56639
|
}
|
|
55190
56640
|
}
|
|
55191
56641
|
function bind(client, receipt) {
|
|
@@ -55193,21 +56643,21 @@ function bind(client, receipt) {
|
|
|
55193
56643
|
throw new PrivatePublicationError("PUBLICATION_IDENTITY_CHANGED", "The fresh session does not match the recovery directory's server, account and membership.");
|
|
55194
56644
|
}
|
|
55195
56645
|
async function locked(directory2, action) {
|
|
55196
|
-
const identity2 = safeDirectory(directory2), file2 =
|
|
56646
|
+
const identity2 = safeDirectory(directory2), file2 = join28(directory2, "operation.lock");
|
|
55197
56647
|
let fd;
|
|
55198
56648
|
try {
|
|
55199
|
-
fd =
|
|
56649
|
+
fd = openSync12(file2, constants8.O_WRONLY | constants8.O_CREAT | constants8.O_EXCL | constants8.O_NOFOLLOW, 384);
|
|
55200
56650
|
} catch {
|
|
55201
56651
|
throw new PrivatePublicationError("PUBLICATION_RECOVERY_BUSY", "Another operation holds this recovery directory. If it crashed, confirm that process has stopped before explicitly removing operation.lock and resuming.");
|
|
55202
56652
|
}
|
|
55203
|
-
const lock =
|
|
56653
|
+
const lock = fstatSync12(fd);
|
|
55204
56654
|
try {
|
|
55205
56655
|
writeFileSync13(fd, JSON.stringify({ pid: process.pid }) + `
|
|
55206
56656
|
`);
|
|
55207
56657
|
fsyncSync2(fd);
|
|
55208
56658
|
return await action();
|
|
55209
56659
|
} finally {
|
|
55210
|
-
|
|
56660
|
+
closeSync12(fd);
|
|
55211
56661
|
unchangedDirectory(directory2, identity2);
|
|
55212
56662
|
const now = lstatSync10(file2);
|
|
55213
56663
|
if (now.dev !== lock.dev || now.ino !== lock.ino || !now.isFile() || now.isSymbolicLink())
|
|
@@ -55261,15 +56711,15 @@ async function preparePrivatePublication(client, sourceDirectory, recoveryDirect
|
|
|
55261
56711
|
phase: "prepared",
|
|
55262
56712
|
intent: null
|
|
55263
56713
|
};
|
|
55264
|
-
if (!
|
|
56714
|
+
if (!isAbsolute7(recoveryDirectory) || resolve6(recoveryDirectory) !== recoveryDirectory || realpathSync6(dirname11(recoveryDirectory)) !== dirname11(recoveryDirectory))
|
|
55265
56715
|
return fail2();
|
|
55266
56716
|
mkdirSync15(recoveryDirectory, { mode: 448 });
|
|
55267
56717
|
safeDirectory(recoveryDirectory);
|
|
55268
|
-
const parent =
|
|
56718
|
+
const parent = openSync12(dirname11(recoveryDirectory), constants8.O_RDONLY | constants8.O_NOFOLLOW);
|
|
55269
56719
|
try {
|
|
55270
56720
|
fsyncSync2(parent);
|
|
55271
56721
|
} finally {
|
|
55272
|
-
|
|
56722
|
+
closeSync12(parent);
|
|
55273
56723
|
}
|
|
55274
56724
|
writeOwned(recoveryDirectory, "bundle.tgz", packed.bytes);
|
|
55275
56725
|
save(recoveryDirectory, receipt);
|
|
@@ -55362,10 +56812,10 @@ var init_private_publication_recovery = __esm(() => {
|
|
|
55362
56812
|
});
|
|
55363
56813
|
|
|
55364
56814
|
// src/mcp/private-publication-tools.ts
|
|
55365
|
-
import { isAbsolute as
|
|
56815
|
+
import { isAbsolute as isAbsolute8 } from "path";
|
|
55366
56816
|
function registerPrivatePublicationTools(server) {
|
|
55367
56817
|
const uuid9 = exports_external.string().regex(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/);
|
|
55368
|
-
const directory2 = exports_external.string().max(4096).refine(
|
|
56818
|
+
const directory2 = exports_external.string().max(4096).refine(isAbsolute8, "Use an absolute local directory");
|
|
55369
56819
|
const verification2 = { email: exports_external.string().email().max(254), code: exports_external.string().regex(/^\d{6}$/), userId: uuid9, membershipId: uuid9, recoveryDirectory: directory2 };
|
|
55370
56820
|
const description = "Manage a private source publication using fresh workspace-bound verification and a host-local recovery directory. Publishing requires explicit UUID current-version comparison and upload consent. Resume reuses immutable saved bytes and intent; an uncertain PUT is finalized for server verification, never uploaded twice. Sessions and signed URLs are not returned or persisted. Private execution is unavailable. Host request history may contain the supplied verification code.";
|
|
55371
56821
|
const handler = (action) => async (value) => {
|
|
@@ -55737,11 +57187,11 @@ var init_invitation_recovery = __esm(() => {
|
|
|
55737
57187
|
init_helpers();
|
|
55738
57188
|
});
|
|
55739
57189
|
|
|
55740
|
-
//
|
|
57190
|
+
// node_modules/@hono/node-server/dist/constants-BLSFu_RU.mjs
|
|
55741
57191
|
var X_ALREADY_SENT = "x-hono-already-sent";
|
|
55742
57192
|
var init_constants_BLSFu_RU = () => {};
|
|
55743
57193
|
|
|
55744
|
-
//
|
|
57194
|
+
// node_modules/hono/dist/helper/websocket/index.js
|
|
55745
57195
|
var WSContext = class {
|
|
55746
57196
|
#init;
|
|
55747
57197
|
constructor(init) {
|
|
@@ -55789,8 +57239,8 @@ var WSContext = class {
|
|
|
55789
57239
|
};
|
|
55790
57240
|
var init_websocket = () => {};
|
|
55791
57241
|
|
|
55792
|
-
//
|
|
55793
|
-
import { Http2ServerRequest, constants as
|
|
57242
|
+
// node_modules/@hono/node-server/dist/index.mjs
|
|
57243
|
+
import { Http2ServerRequest, constants as constants9 } from "http2";
|
|
55794
57244
|
import { Readable } from "stream";
|
|
55795
57245
|
async function readWithoutBlocking(readPromise) {
|
|
55796
57246
|
return Promise.race([readPromise, Promise.resolve().then(() => Promise.resolve(undefined))]);
|
|
@@ -56205,7 +57655,7 @@ var RequestError, nonJoinedHeaders, validHeaderName, isHttpWhitespace = (code2)
|
|
|
56205
57655
|
incomingWithDrainState[incomingDraining] = true;
|
|
56206
57656
|
if (incoming instanceof Http2ServerRequest) {
|
|
56207
57657
|
try {
|
|
56208
|
-
incoming.stream?.close?.(
|
|
57658
|
+
incoming.stream?.close?.(constants9.NGHTTP2_NO_ERROR);
|
|
56209
57659
|
} catch {}
|
|
56210
57660
|
return;
|
|
56211
57661
|
}
|
|
@@ -57053,7 +58503,7 @@ var init_dist2 = __esm(() => {
|
|
|
57053
58503
|
});
|
|
57054
58504
|
});
|
|
57055
58505
|
|
|
57056
|
-
//
|
|
58506
|
+
// node_modules/content-type/index.js
|
|
57057
58507
|
var require_content_type = __commonJS((exports) => {
|
|
57058
58508
|
/*!
|
|
57059
58509
|
* content-type
|
|
@@ -57159,7 +58609,7 @@ var require_content_type = __commonJS((exports) => {
|
|
|
57159
58609
|
}
|
|
57160
58610
|
});
|
|
57161
58611
|
|
|
57162
|
-
//
|
|
58612
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js
|
|
57163
58613
|
function mediaTypeEssence(header) {
|
|
57164
58614
|
if (!header) {
|
|
57165
58615
|
return;
|
|
@@ -57185,7 +58635,7 @@ var init_mediaType = __esm(() => {
|
|
|
57185
58635
|
import_content_type = __toESM(require_content_type(), 1);
|
|
57186
58636
|
});
|
|
57187
58637
|
|
|
57188
|
-
//
|
|
58638
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js
|
|
57189
58639
|
function armSseKeepAlive(intervalMs, onTick) {
|
|
57190
58640
|
if (!Number.isFinite(intervalMs) || intervalMs < 1) {
|
|
57191
58641
|
return;
|
|
@@ -57199,7 +58649,7 @@ var init_sseKeepAlive = __esm(() => {
|
|
|
57199
58649
|
MAX_TIMER_DELAY_MS = 2 ** 31 - 1;
|
|
57200
58650
|
});
|
|
57201
58651
|
|
|
57202
|
-
//
|
|
58652
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js
|
|
57203
58653
|
class WebStandardStreamableHTTPServerTransport {
|
|
57204
58654
|
constructor(options = {}) {
|
|
57205
58655
|
this._started = false;
|
|
@@ -57861,7 +59311,7 @@ var init_webStandardStreamableHttp = __esm(() => {
|
|
|
57861
59311
|
init_types();
|
|
57862
59312
|
});
|
|
57863
59313
|
|
|
57864
|
-
//
|
|
59314
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/streamableHttp.js
|
|
57865
59315
|
class StreamableHTTPServerTransport {
|
|
57866
59316
|
constructor(options = {}) {
|
|
57867
59317
|
this._requestContext = new WeakMap;
|