@alfe.ai/gateway 0.0.40 → 0.0.42

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.
Files changed (2) hide show
  1. package/dist/health.js +281 -140
  2. package/package.json +3 -3
package/dist/health.js CHANGED
@@ -3247,6 +3247,7 @@ enumValues({
3247
3247
  MiniMax: "minimax",
3248
3248
  Mistral: "mistral",
3249
3249
  XAI: "xai",
3250
+ Zhipu: "zhipu",
3250
3251
  OpenRouter: "openrouter",
3251
3252
  ElevenLabs: "elevenlabs",
3252
3253
  Twilio: "twilio"
@@ -3467,6 +3468,11 @@ const XAIModel = {
3467
3468
  Grok41Fast: "grok-4.1-fast"
3468
3469
  };
3469
3470
  const XAI_MODELS = enumValues(XAIModel);
3471
+ const ZhipuModel = {
3472
+ GLM51: "glm-5-1",
3473
+ GLM51Air: "glm-5-1-air"
3474
+ };
3475
+ const ZHIPU_MODELS = enumValues(ZhipuModel);
3470
3476
  AnthropicModel.Sonnet;
3471
3477
  [
3472
3478
  ...ANTHROPIC_MODELS,
@@ -3475,7 +3481,8 @@ AnthropicModel.Sonnet;
3475
3481
  ...GOOGLE_MODELS,
3476
3482
  ...MINIMAX_MODELS,
3477
3483
  ...MISTRAL_MODELS,
3478
- ...XAI_MODELS
3484
+ ...XAI_MODELS,
3485
+ ...ZHIPU_MODELS
3479
3486
  ];
3480
3487
  _enum(ANTHROPIC_MODELS);
3481
3488
  _enum(OPENAI_MODELS);
@@ -3484,6 +3491,7 @@ _enum(GOOGLE_MODELS);
3484
3491
  _enum(MINIMAX_MODELS);
3485
3492
  _enum(MISTRAL_MODELS);
3486
3493
  _enum(XAI_MODELS);
3494
+ _enum(ZHIPU_MODELS);
3487
3495
  _enum([
3488
3496
  ...ANTHROPIC_MODELS,
3489
3497
  ...OPENAI_MODELS,
@@ -3491,10 +3499,11 @@ _enum([
3491
3499
  ...GOOGLE_MODELS,
3492
3500
  ...MINIMAX_MODELS,
3493
3501
  ...MISTRAL_MODELS,
3494
- ...XAI_MODELS
3502
+ ...XAI_MODELS,
3503
+ ...ZHIPU_MODELS
3495
3504
  ]);
3496
- AnthropicModel.Opus, AnthropicModel.Sonnet, AnthropicModel.Haiku, OpenAIModel.GPT4o, OpenAIModel.GPT4oMini, OpenAIModel.O3, OpenAIModel.GPT41, OpenAIModel.GPT41Mini, OpenAIModel.GPT41Nano, OpenAIModel.GPT54, OpenAIModel.GPT54Mini, OpenAIModel.GPT54Nano, OpenAIModel.GPT54Pro, OpenAIModel.O3Mini, OpenAIModel.O4Mini, DeepSeekModel.Chat, DeepSeekModel.Reasoner, GoogleModel.Gemini25Pro, GoogleModel.Gemini25Flash, GoogleModel.Gemini25FlashLite, GoogleModel.Gemini20Flash, MiniMaxModel.M27, MiniMaxModel.M25, MistralModel.Large, MistralModel.Small, MistralModel.Codestral, XAIModel.Grok4, XAIModel.Grok41Fast;
3497
- AnthropicModel.Opus, AnthropicModel.Sonnet, AnthropicModel.Haiku, OpenAIModel.GPT4o, OpenAIModel.GPT4oMini, OpenAIModel.O3, OpenAIModel.GPT41, OpenAIModel.GPT41Mini, OpenAIModel.GPT41Nano, OpenAIModel.GPT54, OpenAIModel.GPT54Mini, OpenAIModel.GPT54Nano, OpenAIModel.GPT54Pro, OpenAIModel.O3Mini, OpenAIModel.O4Mini, DeepSeekModel.Chat, DeepSeekModel.Reasoner, GoogleModel.Gemini25Pro, GoogleModel.Gemini25Flash, GoogleModel.Gemini25FlashLite, GoogleModel.Gemini20Flash, MiniMaxModel.M27, MiniMaxModel.M25, MistralModel.Large, MistralModel.Small, MistralModel.Codestral, XAIModel.Grok4, XAIModel.Grok41Fast;
3505
+ AnthropicModel.Opus, AnthropicModel.Sonnet, AnthropicModel.Haiku, OpenAIModel.GPT4o, OpenAIModel.GPT4oMini, OpenAIModel.O3, OpenAIModel.GPT41, OpenAIModel.GPT41Mini, OpenAIModel.GPT41Nano, OpenAIModel.GPT54, OpenAIModel.GPT54Mini, OpenAIModel.GPT54Nano, OpenAIModel.GPT54Pro, OpenAIModel.O3Mini, OpenAIModel.O4Mini, DeepSeekModel.Chat, DeepSeekModel.Reasoner, GoogleModel.Gemini25Pro, GoogleModel.Gemini25Flash, GoogleModel.Gemini25FlashLite, GoogleModel.Gemini20Flash, MiniMaxModel.M27, MiniMaxModel.M25, MistralModel.Large, MistralModel.Small, MistralModel.Codestral, XAIModel.Grok4, XAIModel.Grok41Fast, ZhipuModel.GLM51, ZhipuModel.GLM51Air;
3506
+ AnthropicModel.Opus, AnthropicModel.Sonnet, AnthropicModel.Haiku, OpenAIModel.GPT4o, OpenAIModel.GPT4oMini, OpenAIModel.O3, OpenAIModel.GPT41, OpenAIModel.GPT41Mini, OpenAIModel.GPT41Nano, OpenAIModel.GPT54, OpenAIModel.GPT54Mini, OpenAIModel.GPT54Nano, OpenAIModel.GPT54Pro, OpenAIModel.O3Mini, OpenAIModel.O4Mini, DeepSeekModel.Chat, DeepSeekModel.Reasoner, GoogleModel.Gemini25Pro, GoogleModel.Gemini25Flash, GoogleModel.Gemini25FlashLite, GoogleModel.Gemini20Flash, MiniMaxModel.M27, MiniMaxModel.M25, MistralModel.Large, MistralModel.Small, MistralModel.Codestral, XAIModel.Grok4, XAIModel.Grok41Fast, ZhipuModel.GLM51, ZhipuModel.GLM51Air;
3498
3507
  enumValues({
3499
3508
  PendingChallenge: "pending_challenge",
3500
3509
  Creating: "creating",
@@ -4049,6 +4058,7 @@ var ReconciliationEngine = class {
4049
4058
  if (local.status === "error") {
4050
4059
  if (desired.reinstallRequestedAt && local.installedAt && desired.reinstallRequestedAt > local.installedAt) {
4051
4060
  log$2.info(`Reinstalling ${id} from error state (requested: ${desired.reinstallRequestedAt}, installed: ${local.installedAt})`);
4061
+ this.manager.resetReinstallAttempts(id);
4052
4062
  if ((await this.manager.reinstall(id, desired.version, desired.config)).configApplied) report.configApplied = true;
4053
4063
  report.installed.push(id);
4054
4064
  report.activated.push(id);
@@ -4060,9 +4070,26 @@ var ReconciliationEngine = class {
4060
4070
  return;
4061
4071
  }
4062
4072
  if (!await this.manager.isInstallIntact(id)) {
4063
- log$2.info(`Auto-reinstalling ${id} — install directory is corrupted or missing`);
4073
+ const attempts = this.manager.getReinstallAttempts(id);
4074
+ if (attempts >= 3) {
4075
+ log$2.error(`Auto-reinstall blocked for ${id} — ${String(attempts)} consecutive failures. Manual reinstall required.`);
4076
+ report.errors.push({
4077
+ integrationId: id,
4078
+ error: `Max auto-reinstall attempts (${String(attempts)}) reached`
4079
+ });
4080
+ report.results.push({
4081
+ integrationId: id,
4082
+ action: "error",
4083
+ actualStatus: "error",
4084
+ errorMessage: `Max auto-reinstall attempts (${String(attempts)}) reached — manual reinstall required`
4085
+ });
4086
+ return;
4087
+ }
4088
+ log$2.info(`Auto-reinstalling ${id} — install directory is corrupted or missing (attempt ${String(attempts + 1)}/3)`);
4089
+ this.manager.incrementReinstallAttempts(id);
4064
4090
  try {
4065
4091
  if ((await this.manager.reinstall(id, desired.version, desired.config)).configApplied) report.configApplied = true;
4092
+ this.manager.resetReinstallAttempts(id);
4066
4093
  report.installed.push(id);
4067
4094
  report.activated.push(id);
4068
4095
  report.results.push({
@@ -4112,6 +4139,7 @@ var ReconciliationEngine = class {
4112
4139
  }
4113
4140
  if (desired.reinstallRequestedAt && local.installedAt && desired.reinstallRequestedAt > local.installedAt) {
4114
4141
  log$2.info(`Reinstall requested for ${id} (requested: ${desired.reinstallRequestedAt}, installed: ${local.installedAt})`);
4142
+ this.manager.resetReinstallAttempts(id);
4115
4143
  if ((await this.manager.reinstall(id, desired.version, desired.config)).configApplied) report.configApplied = true;
4116
4144
  report.installed.push(id);
4117
4145
  report.activated.push(id);
@@ -5907,7 +5935,7 @@ var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
5907
5935
  __exportStar(require_types(), exports);
5908
5936
  }));
5909
5937
  //#endregion
5910
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/bind.js
5938
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/bind.js
5911
5939
  /**
5912
5940
  * Create a bound version of a function with a specified `this` context
5913
5941
  *
@@ -5921,7 +5949,7 @@ function bind(fn, thisArg) {
5921
5949
  };
5922
5950
  }
5923
5951
  //#endregion
5924
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/utils.js
5952
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/utils.js
5925
5953
  const { toString } = Object.prototype;
5926
5954
  const { getPrototypeOf } = Object;
5927
5955
  const { iterator, toStringTag } = Symbol;
@@ -6617,7 +6645,7 @@ var utils_default = {
6617
6645
  isIterable
6618
6646
  };
6619
6647
  //#endregion
6620
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/AxiosError.js
6648
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/AxiosError.js
6621
6649
  var AxiosError$1 = class AxiosError$1 extends Error {
6622
6650
  static from(error, code, config, request, response, customProps) {
6623
6651
  const axiosError = new AxiosError$1(error.message, code || error.code, config, request, response);
@@ -15274,7 +15302,7 @@ var FormData_default = (/* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin((
15274
15302
  module.exports = FormData;
15275
15303
  })))(), 1)).default;
15276
15304
  //#endregion
15277
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/toFormData.js
15305
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/toFormData.js
15278
15306
  /**
15279
15307
  * Determines if the given thing is a array or js object.
15280
15308
  *
@@ -15422,7 +15450,7 @@ function toFormData$1(obj, formData, options) {
15422
15450
  return formData;
15423
15451
  }
15424
15452
  //#endregion
15425
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/AxiosURLSearchParams.js
15453
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js
15426
15454
  /**
15427
15455
  * It encodes a string by replacing all characters that are not in the unreserved set with
15428
15456
  * their percent-encoded equivalents
@@ -15470,10 +15498,10 @@ prototype.toString = function toString(encoder) {
15470
15498
  }, "").join("&");
15471
15499
  };
15472
15500
  //#endregion
15473
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/buildURL.js
15501
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/buildURL.js
15474
15502
  /**
15475
- * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
15476
- * URI encoded counterparts
15503
+ * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with
15504
+ * their plain counterparts (`:`, `$`, `,`, `+`).
15477
15505
  *
15478
15506
  * @param {string} val The value to be encoded.
15479
15507
  *
@@ -15507,7 +15535,7 @@ function buildURL(url, params, options) {
15507
15535
  return url;
15508
15536
  }
15509
15537
  //#endregion
15510
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/InterceptorManager.js
15538
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/InterceptorManager.js
15511
15539
  var InterceptorManager = class {
15512
15540
  constructor() {
15513
15541
  this.handlers = [];
@@ -15565,7 +15593,7 @@ var InterceptorManager = class {
15565
15593
  }
15566
15594
  };
15567
15595
  //#endregion
15568
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/defaults/transitional.js
15596
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/defaults/transitional.js
15569
15597
  var transitional_default = {
15570
15598
  silentJSONParsing: true,
15571
15599
  forcedJSONParsing: true,
@@ -15573,10 +15601,10 @@ var transitional_default = {
15573
15601
  legacyInterceptorReqResOrdering: true
15574
15602
  };
15575
15603
  //#endregion
15576
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/platform/node/classes/URLSearchParams.js
15604
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/platform/node/classes/URLSearchParams.js
15577
15605
  var URLSearchParams_default = url.URLSearchParams;
15578
15606
  //#endregion
15579
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/platform/node/index.js
15607
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/platform/node/index.js
15580
15608
  const ALPHA = "abcdefghijklmnopqrstuvwxyz";
15581
15609
  const DIGIT = "0123456789";
15582
15610
  const ALPHABET = {
@@ -15609,7 +15637,7 @@ var node_default = {
15609
15637
  ]
15610
15638
  };
15611
15639
  //#endregion
15612
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/platform/common/utils.js
15640
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/platform/common/utils.js
15613
15641
  var utils_exports = /* @__PURE__ */ __exportAll({
15614
15642
  hasBrowserEnv: () => hasBrowserEnv,
15615
15643
  hasStandardBrowserEnv: () => hasStandardBrowserEnv,
@@ -15653,13 +15681,13 @@ const hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || [
15653
15681
  const hasStandardBrowserWebWorkerEnv = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope && typeof self.importScripts === "function";
15654
15682
  const origin = hasBrowserEnv && window.location.href || "http://localhost";
15655
15683
  //#endregion
15656
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/platform/index.js
15684
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/platform/index.js
15657
15685
  var platform_default = {
15658
15686
  ...utils_exports,
15659
15687
  ...node_default
15660
15688
  };
15661
15689
  //#endregion
15662
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/toURLEncodedForm.js
15690
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/toURLEncodedForm.js
15663
15691
  function toURLEncodedForm(data, options) {
15664
15692
  return toFormData$1(data, new platform_default.classes.URLSearchParams(), {
15665
15693
  visitor: function(value, key, path, helpers) {
@@ -15673,7 +15701,7 @@ function toURLEncodedForm(data, options) {
15673
15701
  });
15674
15702
  }
15675
15703
  //#endregion
15676
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/formDataToJSON.js
15704
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/formDataToJSON.js
15677
15705
  /**
15678
15706
  * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
15679
15707
  *
@@ -15738,7 +15766,7 @@ function formDataToJSON(formData) {
15738
15766
  return null;
15739
15767
  }
15740
15768
  //#endregion
15741
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/defaults/index.js
15769
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/defaults/index.js
15742
15770
  /**
15743
15771
  * It takes a string, tries to parse it, and if it fails, it returns the stringified version
15744
15772
  * of the input
@@ -15837,7 +15865,7 @@ utils_default.forEach([
15837
15865
  defaults.headers[method] = {};
15838
15866
  });
15839
15867
  //#endregion
15840
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/parseHeaders.js
15868
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/parseHeaders.js
15841
15869
  const ignoreDuplicateOf = utils_default.toObjectSet([
15842
15870
  "age",
15843
15871
  "authorization",
@@ -15888,14 +15916,32 @@ var parseHeaders_default = (rawHeaders) => {
15888
15916
  return parsed;
15889
15917
  };
15890
15918
  //#endregion
15891
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/AxiosHeaders.js
15919
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/AxiosHeaders.js
15892
15920
  const $internals = Symbol("internals");
15921
+ const isValidHeaderValue = (value) => !/[\r\n]/.test(value);
15922
+ function assertValidHeaderValue(value, header) {
15923
+ if (value === false || value == null) return;
15924
+ if (utils_default.isArray(value)) {
15925
+ value.forEach((v) => assertValidHeaderValue(v, header));
15926
+ return;
15927
+ }
15928
+ if (!isValidHeaderValue(String(value))) throw new Error(`Invalid character in header content ["${header}"]`);
15929
+ }
15893
15930
  function normalizeHeader(header) {
15894
15931
  return header && String(header).trim().toLowerCase();
15895
15932
  }
15933
+ function stripTrailingCRLF(str) {
15934
+ let end = str.length;
15935
+ while (end > 0) {
15936
+ const charCode = str.charCodeAt(end - 1);
15937
+ if (charCode !== 10 && charCode !== 13) break;
15938
+ end -= 1;
15939
+ }
15940
+ return end === str.length ? str : str.slice(0, end);
15941
+ }
15896
15942
  function normalizeValue(value) {
15897
15943
  if (value === false || value == null) return value;
15898
- return utils_default.isArray(value) ? value.map(normalizeValue) : String(value);
15944
+ return utils_default.isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value));
15899
15945
  }
15900
15946
  function parseTokens(str) {
15901
15947
  const tokens = Object.create(null);
@@ -15942,7 +15988,10 @@ var AxiosHeaders$1 = class {
15942
15988
  const lHeader = normalizeHeader(_header);
15943
15989
  if (!lHeader) throw new Error("header name must be a non-empty string");
15944
15990
  const key = utils_default.findKey(self, lHeader);
15945
- if (!key || self[key] === void 0 || _rewrite === true || _rewrite === void 0 && self[key] !== false) self[key || _header] = normalizeValue(_value);
15991
+ if (!key || self[key] === void 0 || _rewrite === true || _rewrite === void 0 && self[key] !== false) {
15992
+ assertValidHeaderValue(_value, _header);
15993
+ self[key || _header] = normalizeValue(_value);
15994
+ }
15946
15995
  }
15947
15996
  const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
15948
15997
  if (utils_default.isPlainObject(header) || header instanceof this.constructor) setHeaders(header, valueOrRewrite);
@@ -16089,7 +16138,7 @@ utils_default.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => {
16089
16138
  });
16090
16139
  utils_default.freezeMethods(AxiosHeaders$1);
16091
16140
  //#endregion
16092
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/transformData.js
16141
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/transformData.js
16093
16142
  /**
16094
16143
  * Transform the data for a request or a response
16095
16144
  *
@@ -16110,12 +16159,12 @@ function transformData(fns, response) {
16110
16159
  return data;
16111
16160
  }
16112
16161
  //#endregion
16113
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/cancel/isCancel.js
16162
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/cancel/isCancel.js
16114
16163
  function isCancel$1(value) {
16115
16164
  return !!(value && value.__CANCEL__);
16116
16165
  }
16117
16166
  //#endregion
16118
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/cancel/CanceledError.js
16167
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/cancel/CanceledError.js
16119
16168
  var CanceledError$1 = class extends AxiosError$1 {
16120
16169
  /**
16121
16170
  * A `CanceledError` is an object that is thrown when an operation is canceled.
@@ -16133,7 +16182,7 @@ var CanceledError$1 = class extends AxiosError$1 {
16133
16182
  }
16134
16183
  };
16135
16184
  //#endregion
16136
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/settle.js
16185
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/settle.js
16137
16186
  /**
16138
16187
  * Resolve or reject a Promise based on response status.
16139
16188
  *
@@ -16149,7 +16198,7 @@ function settle(resolve, reject, response) {
16149
16198
  else reject(new AxiosError$1("Request failed with status code " + response.status, [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));
16150
16199
  }
16151
16200
  //#endregion
16152
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/isAbsoluteURL.js
16201
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/isAbsoluteURL.js
16153
16202
  /**
16154
16203
  * Determines whether the specified URL is absolute
16155
16204
  *
@@ -16162,7 +16211,7 @@ function isAbsoluteURL(url) {
16162
16211
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
16163
16212
  }
16164
16213
  //#endregion
16165
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/combineURLs.js
16214
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/combineURLs.js
16166
16215
  /**
16167
16216
  * Creates a new URL by combining the specified URLs
16168
16217
  *
@@ -16175,7 +16224,7 @@ function combineURLs(baseURL, relativeURL) {
16175
16224
  return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
16176
16225
  }
16177
16226
  //#endregion
16178
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/buildFullPath.js
16227
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/buildFullPath.js
16179
16228
  /**
16180
16229
  * Creates a new URL by combining the baseURL with the requestedURL,
16181
16230
  * only when the requestedURL is not already an absolute URL.
@@ -16192,74 +16241,75 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
16192
16241
  return requestedURL;
16193
16242
  }
16194
16243
  //#endregion
16195
- //#region ../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js
16196
- var require_proxy_from_env = /* @__PURE__ */ __commonJSMin(((exports) => {
16197
- var parseUrl = __require("url").parse;
16198
- var DEFAULT_PORTS = {
16199
- ftp: 21,
16200
- gopher: 70,
16201
- http: 80,
16202
- https: 443,
16203
- ws: 80,
16204
- wss: 443
16205
- };
16206
- var stringEndsWith = String.prototype.endsWith || function(s) {
16207
- return s.length <= this.length && this.indexOf(s, this.length - s.length) !== -1;
16208
- };
16209
- /**
16210
- * @param {string|object} url - The URL, or the result from url.parse.
16211
- * @return {string} The URL of the proxy that should handle the request to the
16212
- * given URL. If no proxy is set, this will be an empty string.
16213
- */
16214
- function getProxyForUrl(url) {
16215
- var parsedUrl = typeof url === "string" ? parseUrl(url) : url || {};
16216
- var proto = parsedUrl.protocol;
16217
- var hostname = parsedUrl.host;
16218
- var port = parsedUrl.port;
16219
- if (typeof hostname !== "string" || !hostname || typeof proto !== "string") return "";
16220
- proto = proto.split(":", 1)[0];
16221
- hostname = hostname.replace(/:\d*$/, "");
16222
- port = parseInt(port) || DEFAULT_PORTS[proto] || 0;
16223
- if (!shouldProxy(hostname, port)) return "";
16224
- var proxy = getEnv("npm_config_" + proto + "_proxy") || getEnv(proto + "_proxy") || getEnv("npm_config_proxy") || getEnv("all_proxy");
16225
- if (proxy && proxy.indexOf("://") === -1) proxy = proto + "://" + proxy;
16226
- return proxy;
16227
- }
16228
- /**
16229
- * Determines whether a given URL should be proxied.
16230
- *
16231
- * @param {string} hostname - The host name of the URL.
16232
- * @param {number} port - The effective port of the URL.
16233
- * @returns {boolean} Whether the given URL should be proxied.
16234
- * @private
16235
- */
16236
- function shouldProxy(hostname, port) {
16237
- var NO_PROXY = (getEnv("npm_config_no_proxy") || getEnv("no_proxy")).toLowerCase();
16238
- if (!NO_PROXY) return true;
16239
- if (NO_PROXY === "*") return false;
16240
- return NO_PROXY.split(/[,\s]/).every(function(proxy) {
16241
- if (!proxy) return true;
16242
- var parsedProxy = proxy.match(/^(.+):(\d+)$/);
16243
- var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;
16244
- var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;
16245
- if (parsedProxyPort && parsedProxyPort !== port) return true;
16246
- if (!/^[.*]/.test(parsedProxyHostname)) return hostname !== parsedProxyHostname;
16247
- if (parsedProxyHostname.charAt(0) === "*") parsedProxyHostname = parsedProxyHostname.slice(1);
16248
- return !stringEndsWith.call(hostname, parsedProxyHostname);
16249
- });
16250
- }
16251
- /**
16252
- * Get the value for an environment variable.
16253
- *
16254
- * @param {string} key - The name of the environment variable.
16255
- * @return {string} The value of the environment variable.
16256
- * @private
16257
- */
16258
- function getEnv(key) {
16259
- return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
16244
+ //#region ../../node_modules/.pnpm/proxy-from-env@2.1.0/node_modules/proxy-from-env/index.js
16245
+ var DEFAULT_PORTS$1 = {
16246
+ ftp: 21,
16247
+ gopher: 70,
16248
+ http: 80,
16249
+ https: 443,
16250
+ ws: 80,
16251
+ wss: 443
16252
+ };
16253
+ function parseUrl(urlString) {
16254
+ try {
16255
+ return new URL(urlString);
16256
+ } catch {
16257
+ return null;
16260
16258
  }
16261
- exports.getProxyForUrl = getProxyForUrl;
16262
- }));
16259
+ }
16260
+ /**
16261
+ * @param {string|object|URL} url - The URL as a string or URL instance, or a
16262
+ * compatible object (such as the result from legacy url.parse).
16263
+ * @return {string} The URL of the proxy that should handle the request to the
16264
+ * given URL. If no proxy is set, this will be an empty string.
16265
+ */
16266
+ function getProxyForUrl(url) {
16267
+ var parsedUrl = (typeof url === "string" ? parseUrl(url) : url) || {};
16268
+ var proto = parsedUrl.protocol;
16269
+ var hostname = parsedUrl.host;
16270
+ var port = parsedUrl.port;
16271
+ if (typeof hostname !== "string" || !hostname || typeof proto !== "string") return "";
16272
+ proto = proto.split(":", 1)[0];
16273
+ hostname = hostname.replace(/:\d*$/, "");
16274
+ port = parseInt(port) || DEFAULT_PORTS$1[proto] || 0;
16275
+ if (!shouldProxy(hostname, port)) return "";
16276
+ var proxy = getEnv(proto + "_proxy") || getEnv("all_proxy");
16277
+ if (proxy && proxy.indexOf("://") === -1) proxy = proto + "://" + proxy;
16278
+ return proxy;
16279
+ }
16280
+ /**
16281
+ * Determines whether a given URL should be proxied.
16282
+ *
16283
+ * @param {string} hostname - The host name of the URL.
16284
+ * @param {number} port - The effective port of the URL.
16285
+ * @returns {boolean} Whether the given URL should be proxied.
16286
+ * @private
16287
+ */
16288
+ function shouldProxy(hostname, port) {
16289
+ var NO_PROXY = getEnv("no_proxy").toLowerCase();
16290
+ if (!NO_PROXY) return true;
16291
+ if (NO_PROXY === "*") return false;
16292
+ return NO_PROXY.split(/[,\s]/).every(function(proxy) {
16293
+ if (!proxy) return true;
16294
+ var parsedProxy = proxy.match(/^(.+):(\d+)$/);
16295
+ var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;
16296
+ var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;
16297
+ if (parsedProxyPort && parsedProxyPort !== port) return true;
16298
+ if (!/^[.*]/.test(parsedProxyHostname)) return hostname !== parsedProxyHostname;
16299
+ if (parsedProxyHostname.charAt(0) === "*") parsedProxyHostname = parsedProxyHostname.slice(1);
16300
+ return !hostname.endsWith(parsedProxyHostname);
16301
+ });
16302
+ }
16303
+ /**
16304
+ * Get the value for an environment variable.
16305
+ *
16306
+ * @param {string} key - The name of the environment variable.
16307
+ * @return {string} The value of the environment variable.
16308
+ * @private
16309
+ */
16310
+ function getEnv(key) {
16311
+ return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
16312
+ }
16263
16313
  //#endregion
16264
16314
  //#region ../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js
16265
16315
  var require_ms = /* @__PURE__ */ __commonJSMin(((exports, module) => {
@@ -17518,16 +17568,16 @@ var require_follow_redirects = /* @__PURE__ */ __commonJSMin(((exports, module)
17518
17568
  module.exports.wrap = wrap;
17519
17569
  }));
17520
17570
  //#endregion
17521
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/env/data.js
17522
- const VERSION$1 = "1.13.6";
17571
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/env/data.js
17572
+ const VERSION$1 = "1.15.0";
17523
17573
  //#endregion
17524
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/parseProtocol.js
17574
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/parseProtocol.js
17525
17575
  function parseProtocol(url) {
17526
17576
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
17527
17577
  return match && match[1] || "";
17528
17578
  }
17529
17579
  //#endregion
17530
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/fromDataURI.js
17580
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/fromDataURI.js
17531
17581
  const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;
17532
17582
  /**
17533
17583
  * Parse data uri to a Buffer or Blob
@@ -17560,7 +17610,7 @@ function fromDataURI(uri, asBlob, options) {
17560
17610
  throw new AxiosError$1("Unsupported protocol " + protocol, AxiosError$1.ERR_NOT_SUPPORT);
17561
17611
  }
17562
17612
  //#endregion
17563
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/AxiosTransformStream.js
17613
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/AxiosTransformStream.js
17564
17614
  const kInternals = Symbol("internals");
17565
17615
  var AxiosTransformStream = class extends stream.Transform {
17566
17616
  constructor(options) {
@@ -17654,7 +17704,7 @@ var AxiosTransformStream = class extends stream.Transform {
17654
17704
  }
17655
17705
  };
17656
17706
  //#endregion
17657
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/readBlob.js
17707
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/readBlob.js
17658
17708
  const { asyncIterator } = Symbol;
17659
17709
  const readBlob = async function* (blob) {
17660
17710
  if (blob.stream) yield* blob.stream();
@@ -17663,7 +17713,7 @@ const readBlob = async function* (blob) {
17663
17713
  else yield blob;
17664
17714
  };
17665
17715
  //#endregion
17666
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/formDataToStream.js
17716
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/formDataToStream.js
17667
17717
  const BOUNDARY_ALPHABET = platform_default.ALPHABET.ALPHA_DIGIT + "-_";
17668
17718
  const textEncoder = typeof TextEncoder === "function" ? new TextEncoder() : new util.TextEncoder();
17669
17719
  const CRLF = "\r\n";
@@ -17723,7 +17773,7 @@ const formDataToStream = (form, headersHandler, options) => {
17723
17773
  })());
17724
17774
  };
17725
17775
  //#endregion
17726
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js
17776
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js
17727
17777
  var ZlibHeaderTransformStream = class extends stream.Transform {
17728
17778
  __transform(chunk, encoding, callback) {
17729
17779
  this.push(chunk);
@@ -17743,7 +17793,7 @@ var ZlibHeaderTransformStream = class extends stream.Transform {
17743
17793
  }
17744
17794
  };
17745
17795
  //#endregion
17746
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/callbackify.js
17796
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/callbackify.js
17747
17797
  const callbackify = (fn, reducer) => {
17748
17798
  return utils_default.isAsyncFn(fn) ? function(...args) {
17749
17799
  const cb = args.pop();
@@ -17757,7 +17807,64 @@ const callbackify = (fn, reducer) => {
17757
17807
  } : fn;
17758
17808
  };
17759
17809
  //#endregion
17760
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/speedometer.js
17810
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/shouldBypassProxy.js
17811
+ const DEFAULT_PORTS = {
17812
+ http: 80,
17813
+ https: 443,
17814
+ ws: 80,
17815
+ wss: 443,
17816
+ ftp: 21
17817
+ };
17818
+ const parseNoProxyEntry = (entry) => {
17819
+ let entryHost = entry;
17820
+ let entryPort = 0;
17821
+ if (entryHost.charAt(0) === "[") {
17822
+ const bracketIndex = entryHost.indexOf("]");
17823
+ if (bracketIndex !== -1) {
17824
+ const host = entryHost.slice(1, bracketIndex);
17825
+ const rest = entryHost.slice(bracketIndex + 1);
17826
+ if (rest.charAt(0) === ":" && /^\d+$/.test(rest.slice(1))) entryPort = Number.parseInt(rest.slice(1), 10);
17827
+ return [host, entryPort];
17828
+ }
17829
+ }
17830
+ const firstColon = entryHost.indexOf(":");
17831
+ const lastColon = entryHost.lastIndexOf(":");
17832
+ if (firstColon !== -1 && firstColon === lastColon && /^\d+$/.test(entryHost.slice(lastColon + 1))) {
17833
+ entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10);
17834
+ entryHost = entryHost.slice(0, lastColon);
17835
+ }
17836
+ return [entryHost, entryPort];
17837
+ };
17838
+ const normalizeNoProxyHost = (hostname) => {
17839
+ if (!hostname) return hostname;
17840
+ if (hostname.charAt(0) === "[" && hostname.charAt(hostname.length - 1) === "]") hostname = hostname.slice(1, -1);
17841
+ return hostname.replace(/\.+$/, "");
17842
+ };
17843
+ function shouldBypassProxy(location) {
17844
+ let parsed;
17845
+ try {
17846
+ parsed = new URL(location);
17847
+ } catch (_err) {
17848
+ return false;
17849
+ }
17850
+ const noProxy = (process.env.no_proxy || process.env.NO_PROXY || "").toLowerCase();
17851
+ if (!noProxy) return false;
17852
+ if (noProxy === "*") return true;
17853
+ const port = Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(":", 1)[0]] || 0;
17854
+ const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase());
17855
+ return noProxy.split(/[\s,]+/).some((entry) => {
17856
+ if (!entry) return false;
17857
+ let [entryHost, entryPort] = parseNoProxyEntry(entry);
17858
+ entryHost = normalizeNoProxyHost(entryHost);
17859
+ if (!entryHost) return false;
17860
+ if (entryPort && entryPort !== port) return false;
17861
+ if (entryHost.charAt(0) === "*") entryHost = entryHost.slice(1);
17862
+ if (entryHost.charAt(0) === ".") return hostname.endsWith(entryHost);
17863
+ return hostname === entryHost;
17864
+ });
17865
+ }
17866
+ //#endregion
17867
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/speedometer.js
17761
17868
  /**
17762
17869
  * Calculate data maxRate
17763
17870
  * @param {Number} [samplesCount= 10]
@@ -17792,7 +17899,7 @@ function speedometer(samplesCount, min) {
17792
17899
  };
17793
17900
  }
17794
17901
  //#endregion
17795
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/throttle.js
17902
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/throttle.js
17796
17903
  /**
17797
17904
  * Throttle decorator
17798
17905
  * @param {Function} fn
@@ -17829,7 +17936,7 @@ function throttle(fn, freq) {
17829
17936
  return [throttled, flush];
17830
17937
  }
17831
17938
  //#endregion
17832
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/progressEventReducer.js
17939
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/progressEventReducer.js
17833
17940
  const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
17834
17941
  let bytesNotified = 0;
17835
17942
  const _speedometer = speedometer(50, 250);
@@ -17863,7 +17970,7 @@ const progressEventDecorator = (total, throttled) => {
17863
17970
  };
17864
17971
  const asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args));
17865
17972
  //#endregion
17866
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
17973
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
17867
17974
  /**
17868
17975
  * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
17869
17976
  * - For base64: compute exact decoded size using length and padding;
@@ -17913,8 +18020,7 @@ function estimateDataURLDecodedBytes(url) {
17913
18020
  return Buffer.byteLength(body, "utf8");
17914
18021
  }
17915
18022
  //#endregion
17916
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/adapters/http.js
17917
- var import_proxy_from_env = /* @__PURE__ */ __toESM(require_proxy_from_env(), 1);
18023
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/adapters/http.js
17918
18024
  var import_follow_redirects = /* @__PURE__ */ __toESM(require_follow_redirects(), 1);
17919
18025
  const zlibOptions = {
17920
18026
  flush: zlib.constants.Z_SYNC_FLUSH,
@@ -17957,6 +18063,7 @@ var Http2Sessions = class {
17957
18063
  while (i--) if (entries[i][0] === session) {
17958
18064
  if (len === 1) delete this.sessions[authority];
17959
18065
  else entries.splice(i, 1);
18066
+ if (!session.closed) session.close();
17960
18067
  return;
17961
18068
  }
17962
18069
  };
@@ -18012,8 +18119,10 @@ function dispatchBeforeRedirect(options, responseDetails) {
18012
18119
  function setProxy(options, configProxy, location) {
18013
18120
  let proxy = configProxy;
18014
18121
  if (!proxy && proxy !== false) {
18015
- const proxyUrl = import_proxy_from_env.getProxyForUrl(location);
18016
- if (proxyUrl) proxy = new URL(proxyUrl);
18122
+ const proxyUrl = getProxyForUrl(location);
18123
+ if (proxyUrl) {
18124
+ if (!shouldBypassProxy(location)) proxy = new URL(proxyUrl);
18125
+ }
18017
18126
  }
18018
18127
  if (proxy) {
18019
18128
  if (proxy.username) proxy.auth = (proxy.username || "") + ":" + (proxy.password || "");
@@ -18180,7 +18289,7 @@ var http_default = isHttpAdapterSupported && function httpAdapter(config) {
18180
18289
  }
18181
18290
  if (supportedProtocols.indexOf(protocol) === -1) return reject(new AxiosError$1("Unsupported protocol " + protocol, AxiosError$1.ERR_BAD_REQUEST, config));
18182
18291
  const headers = AxiosHeaders$1.from(config.headers).normalize();
18183
- headers.set("User-Agent", "axios/1.13.6", false);
18292
+ headers.set("User-Agent", "axios/1.15.0", false);
18184
18293
  const { onUploadProgress, onDownloadProgress } = config;
18185
18294
  const maxRate = config.maxRate;
18186
18295
  let maxUploadRate = void 0;
@@ -18190,7 +18299,7 @@ var http_default = isHttpAdapterSupported && function httpAdapter(config) {
18190
18299
  data = formDataToStream(data, (formHeaders) => {
18191
18300
  headers.set(formHeaders);
18192
18301
  }, {
18193
- tag: `axios-1.13.6-boundary`,
18302
+ tag: `axios-1.15.0-boundary`,
18194
18303
  boundary: userBoundary && userBoundary[1] || void 0
18195
18304
  });
18196
18305
  } else if (utils_default.isFormData(data) && utils_default.isFunction(data.getHeaders)) {
@@ -18410,13 +18519,13 @@ var http_default = isHttpAdapterSupported && function httpAdapter(config) {
18410
18519
  });
18411
18520
  };
18412
18521
  //#endregion
18413
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/isURLSameOrigin.js
18522
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/isURLSameOrigin.js
18414
18523
  var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {
18415
18524
  url = new URL(url, platform_default.origin);
18416
18525
  return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port);
18417
18526
  })(new URL(platform_default.origin), platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent)) : () => true;
18418
18527
  //#endregion
18419
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/cookies.js
18528
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/cookies.js
18420
18529
  var cookies_default = platform_default.hasStandardBrowserEnv ? {
18421
18530
  write(name, value, expires, path, domain, secure, sameSite) {
18422
18531
  if (typeof document === "undefined") return;
@@ -18444,7 +18553,7 @@ var cookies_default = platform_default.hasStandardBrowserEnv ? {
18444
18553
  remove() {}
18445
18554
  };
18446
18555
  //#endregion
18447
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/mergeConfig.js
18556
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/mergeConfig.js
18448
18557
  const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
18449
18558
  /**
18450
18559
  * Config-specific merge-function which creates a new config-object
@@ -18522,7 +18631,7 @@ function mergeConfig$1(config1, config2) {
18522
18631
  return config;
18523
18632
  }
18524
18633
  //#endregion
18525
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/resolveConfig.js
18634
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/resolveConfig.js
18526
18635
  var resolveConfig_default = (config) => {
18527
18636
  const newConfig = mergeConfig$1({}, config);
18528
18637
  let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
@@ -18643,7 +18752,7 @@ var xhr_default = typeof XMLHttpRequest !== "undefined" && function(config) {
18643
18752
  });
18644
18753
  };
18645
18754
  //#endregion
18646
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/composeSignals.js
18755
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/composeSignals.js
18647
18756
  const composeSignals = (signals, timeout) => {
18648
18757
  const { length } = signals = signals ? signals.filter(Boolean) : [];
18649
18758
  if (timeout || length) {
@@ -18678,7 +18787,7 @@ const composeSignals = (signals, timeout) => {
18678
18787
  }
18679
18788
  };
18680
18789
  //#endregion
18681
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/trackStream.js
18790
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/trackStream.js
18682
18791
  const streamChunk = function* (chunk, chunkSize) {
18683
18792
  let len = chunk.byteLength;
18684
18793
  if (!chunkSize || len < chunkSize) {
@@ -18746,7 +18855,7 @@ const trackStream = (stream, chunkSize, onProgress, onFinish) => {
18746
18855
  }, { highWaterMark: 2 });
18747
18856
  };
18748
18857
  //#endregion
18749
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/adapters/fetch.js
18858
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/adapters/fetch.js
18750
18859
  const DEFAULT_CHUNK_SIZE = 64 * 1024;
18751
18860
  const { isFunction } = utils_default;
18752
18861
  const globalFetchAPI = (({ Request, Response }) => ({
@@ -18772,14 +18881,16 @@ const factory = (env) => {
18772
18881
  const encodeText = isFetchSupported && (typeof TextEncoder$1 === "function" ? ((encoder) => (str) => encoder.encode(str))(new TextEncoder$1()) : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));
18773
18882
  const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
18774
18883
  let duplexAccessed = false;
18884
+ const body = new ReadableStream$1();
18775
18885
  const hasContentType = new Request(platform_default.origin, {
18776
- body: new ReadableStream$1(),
18886
+ body,
18777
18887
  method: "POST",
18778
18888
  get duplex() {
18779
18889
  duplexAccessed = true;
18780
18890
  return "half";
18781
18891
  }
18782
18892
  }).headers.has("Content-Type");
18893
+ body.cancel();
18783
18894
  return duplexAccessed && !hasContentType;
18784
18895
  });
18785
18896
  const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(() => utils_default.isReadableStream(new Response("").body));
@@ -18906,7 +19017,7 @@ const getFetch = (config) => {
18906
19017
  };
18907
19018
  getFetch();
18908
19019
  //#endregion
18909
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/adapters/adapters.js
19020
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/adapters/adapters.js
18910
19021
  /**
18911
19022
  * Known adapters mapping.
18912
19023
  * Provides environment-specific adapters for Axios:
@@ -18984,7 +19095,7 @@ var adapters_default = {
18984
19095
  adapters: knownAdapters
18985
19096
  };
18986
19097
  //#endregion
18987
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/dispatchRequest.js
19098
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/dispatchRequest.js
18988
19099
  /**
18989
19100
  * Throws a `CanceledError` if cancellation has been requested.
18990
19101
  *
@@ -19029,7 +19140,7 @@ function dispatchRequest(config) {
19029
19140
  });
19030
19141
  }
19031
19142
  //#endregion
19032
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/validator.js
19143
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/validator.js
19033
19144
  const validators$1 = {};
19034
19145
  [
19035
19146
  "object",
@@ -19102,7 +19213,7 @@ var validator_default = {
19102
19213
  validators: validators$1
19103
19214
  };
19104
19215
  //#endregion
19105
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/core/Axios.js
19216
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/core/Axios.js
19106
19217
  const validators = validator_default.validators;
19107
19218
  /**
19108
19219
  * Create a new instance of Axios
@@ -19134,10 +19245,19 @@ var Axios$1 = class {
19134
19245
  if (err instanceof Error) {
19135
19246
  let dummy = {};
19136
19247
  Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = /* @__PURE__ */ new Error();
19137
- const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
19248
+ const stack = (() => {
19249
+ if (!dummy.stack) return "";
19250
+ const firstNewlineIndex = dummy.stack.indexOf("\n");
19251
+ return firstNewlineIndex === -1 ? "" : dummy.stack.slice(firstNewlineIndex + 1);
19252
+ })();
19138
19253
  try {
19139
19254
  if (!err.stack) err.stack = stack;
19140
- else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) err.stack += "\n" + stack;
19255
+ else if (stack) {
19256
+ const firstNewlineIndex = stack.indexOf("\n");
19257
+ const secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf("\n", firstNewlineIndex + 1);
19258
+ const stackWithoutTwoTopLines = secondNewlineIndex === -1 ? "" : stack.slice(secondNewlineIndex + 1);
19259
+ if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) err.stack += "\n" + stack;
19260
+ }
19141
19261
  } catch (e) {}
19142
19262
  }
19143
19263
  throw err;
@@ -19266,7 +19386,7 @@ utils_default.forEach([
19266
19386
  Axios$1.prototype[method + "Form"] = generateHTTPMethod(true);
19267
19387
  });
19268
19388
  //#endregion
19269
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/cancel/CancelToken.js
19389
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/cancel/CancelToken.js
19270
19390
  /**
19271
19391
  * A `CancelToken` is an object that can be used to request cancellation of an operation.
19272
19392
  *
@@ -19354,7 +19474,7 @@ var CancelToken$1 = class CancelToken$1 {
19354
19474
  }
19355
19475
  };
19356
19476
  //#endregion
19357
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/spread.js
19477
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/spread.js
19358
19478
  /**
19359
19479
  * Syntactic sugar for invoking a function and expanding an array for arguments.
19360
19480
  *
@@ -19382,7 +19502,7 @@ function spread$1(callback) {
19382
19502
  };
19383
19503
  }
19384
19504
  //#endregion
19385
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/isAxiosError.js
19505
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/isAxiosError.js
19386
19506
  /**
19387
19507
  * Determines whether the payload is an error thrown by Axios
19388
19508
  *
@@ -19394,7 +19514,7 @@ function isAxiosError$1(payload) {
19394
19514
  return utils_default.isObject(payload) && payload.isAxiosError === true;
19395
19515
  }
19396
19516
  //#endregion
19397
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/helpers/HttpStatusCode.js
19517
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/helpers/HttpStatusCode.js
19398
19518
  const HttpStatusCode$1 = {
19399
19519
  Continue: 100,
19400
19520
  SwitchingProtocols: 101,
@@ -19470,7 +19590,7 @@ Object.entries(HttpStatusCode$1).forEach(([key, value]) => {
19470
19590
  HttpStatusCode$1[value] = key;
19471
19591
  });
19472
19592
  //#endregion
19473
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/lib/axios.js
19593
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/lib/axios.js
19474
19594
  /**
19475
19595
  * Create an instance of Axios
19476
19596
  *
@@ -19509,10 +19629,10 @@ axios.getAdapter = adapters_default.getAdapter;
19509
19629
  axios.HttpStatusCode = HttpStatusCode$1;
19510
19630
  axios.default = axios;
19511
19631
  //#endregion
19512
- //#region ../../node_modules/.pnpm/axios@1.13.6/node_modules/axios/index.js
19632
+ //#region ../../node_modules/.pnpm/axios@1.15.0/node_modules/axios/index.js
19513
19633
  const { Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig } = axios;
19514
19634
  //#endregion
19515
- //#region ../../node_modules/.pnpm/@auriclabs+logger@0.1.1_@auriclabs+env@0.0.4_zod@4.3.6__axios@1.13.6_pino-lambda@4.4.1_pino@9.14.0__sst@4.5.1/node_modules/@auriclabs/logger/dist/index.mjs
19635
+ //#region ../../node_modules/.pnpm/@auriclabs+logger@0.1.1_@auriclabs+env@0.0.4_zod@4.3.6__axios@1.15.0_pino-lambda@4.4.1_pino@9.14.0__sst@4.5.1/node_modules/@auriclabs/logger/dist/index.mjs
19516
19636
  var import_dist = require_dist();
19517
19637
  const createBrowserTransport = () => {
19518
19638
  return { write: (obj) => {
@@ -20824,6 +20944,27 @@ async function handleCloudCommand(command) {
20824
20944
  }
20825
20945
  };
20826
20946
  }
20947
+ if (command.command === "runtime.restart") {
20948
+ if (!runtimeProcess) return {
20949
+ type: "COMMAND_ACK",
20950
+ commandId: command.commandId,
20951
+ status: "error",
20952
+ result: {
20953
+ code: "NO_RUNTIME",
20954
+ message: "No runtime process configured"
20955
+ }
20956
+ };
20957
+ logger$1.info("Restarting runtime process");
20958
+ runtimeProcess.restart().catch((err) => {
20959
+ logger$1.error({ err: err instanceof Error ? err.message : String(err) }, "Runtime restart failed");
20960
+ });
20961
+ return {
20962
+ type: "COMMAND_ACK",
20963
+ commandId: command.commandId,
20964
+ status: "ok",
20965
+ result: { restarted: true }
20966
+ };
20967
+ }
20827
20968
  if (command.command === "integration.status") {
20828
20969
  const payload = command.payload;
20829
20970
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfe.ai/gateway",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "description": "Alfe local gateway daemon — persistent control plane for agent integrations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,8 +24,8 @@
24
24
  "ws": "^8.18.0",
25
25
  "@alfe.ai/ai-proxy-local": "^0.0.7",
26
26
  "@alfe.ai/config": "^0.0.7",
27
- "@alfe.ai/integration-manifest": "^0.0.9",
28
- "@alfe.ai/integrations": "^0.0.26"
27
+ "@alfe.ai/integration-manifest": "^0.0.10",
28
+ "@alfe.ai/integrations": "^0.0.28"
29
29
  },
30
30
  "license": "UNLICENSED",
31
31
  "scripts": {