agent-shim 8.2.0 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.cjs CHANGED
@@ -7566,10 +7566,10 @@ var require_util2 = __commonJS({
7566
7566
  }
7567
7567
  return obj;
7568
7568
  }
7569
- function errorRequest(client, request6, err) {
7569
+ function errorRequest(client, request7, err) {
7570
7570
  try {
7571
- request6.onError(err);
7572
- assert2(request6.aborted);
7571
+ request7.onError(err);
7572
+ assert2(request7.aborted);
7573
7573
  } catch (err2) {
7574
7574
  client.emit("error", err2);
7575
7575
  }
@@ -8243,7 +8243,7 @@ var require_request = __commonJS({
8243
8243
  return this;
8244
8244
  }
8245
8245
  };
8246
- function processHeader(request6, key, val) {
8246
+ function processHeader(request7, key, val) {
8247
8247
  if (val && (typeof val === "object" && !Array.isArray(val))) {
8248
8248
  throw new InvalidArgumentError2(`invalid ${key} header`);
8249
8249
  } else if (val === void 0) {
@@ -8290,24 +8290,24 @@ var require_request = __commonJS({
8290
8290
  }
8291
8291
  }
8292
8292
  if (headerName === "host") {
8293
- if (request6.host !== null) {
8293
+ if (request7.host !== null) {
8294
8294
  throw new InvalidArgumentError2("duplicate host header");
8295
8295
  }
8296
8296
  if (typeof val !== "string") {
8297
8297
  throw new InvalidArgumentError2("invalid host header");
8298
8298
  }
8299
- request6.host = val;
8299
+ request7.host = val;
8300
8300
  } else if (headerName === "content-length") {
8301
- if (request6.contentLength !== null) {
8301
+ if (request7.contentLength !== null) {
8302
8302
  throw new InvalidArgumentError2("duplicate content-length header");
8303
8303
  }
8304
8304
  if (!isValidContentLengthHeaderValue(val)) {
8305
8305
  throw new InvalidArgumentError2("invalid content-length header");
8306
8306
  }
8307
- request6.contentLength = parseInt(val, 10);
8308
- } else if (request6.contentType === null && headerName === "content-type") {
8309
- request6.contentType = val;
8310
- request6.headers.push(key, val);
8307
+ request7.contentLength = parseInt(val, 10);
8308
+ } else if (request7.contentType === null && headerName === "content-type") {
8309
+ request7.contentType = val;
8310
+ request7.headers.push(key, val);
8311
8311
  } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") {
8312
8312
  throw new InvalidArgumentError2(`invalid ${headerName} header`);
8313
8313
  } else if (headerName === "connection") {
@@ -8321,13 +8321,13 @@ var require_request = __commonJS({
8321
8321
  throw new InvalidArgumentError2("invalid connection header");
8322
8322
  }
8323
8323
  if (trimmed === "close") {
8324
- request6.reset = true;
8324
+ request7.reset = true;
8325
8325
  }
8326
8326
  }
8327
8327
  } else if (headerName === "expect") {
8328
8328
  throw new NotSupportedError("expect header not supported");
8329
8329
  } else {
8330
- request6.headers.push(key, val);
8330
+ request7.headers.push(key, val);
8331
8331
  }
8332
8332
  }
8333
8333
  module2.exports = Request;
@@ -10920,11 +10920,11 @@ var require_util3 = __commonJS({
10920
10920
  function normalizeBinaryStringToUtf8(value) {
10921
10921
  return Buffer.from(value, "binary").toString("utf8");
10922
10922
  }
10923
- function requestCurrentURL(request6) {
10924
- return request6.urlList[request6.urlList.length - 1];
10923
+ function requestCurrentURL(request7) {
10924
+ return request7.urlList[request7.urlList.length - 1];
10925
10925
  }
10926
- function requestBadPort(request6) {
10927
- const url2 = requestCurrentURL(request6);
10926
+ function requestBadPort(request7) {
10927
+ const url2 = requestCurrentURL(request7);
10928
10928
  if (urlIsHttpHttpsScheme(url2) && badPortsSet.has(url2.port)) {
10929
10929
  return "blocked";
10930
10930
  }
@@ -10962,10 +10962,10 @@ var require_util3 = __commonJS({
10962
10962
  }
10963
10963
  return policy;
10964
10964
  }
10965
- function setRequestReferrerPolicyOnRedirect(request6, actualResponse) {
10965
+ function setRequestReferrerPolicyOnRedirect(request7, actualResponse) {
10966
10966
  const policy = parseReferrerPolicy(actualResponse);
10967
10967
  if (policy !== "") {
10968
- request6.referrerPolicy = policy;
10968
+ request7.referrerPolicy = policy;
10969
10969
  }
10970
10970
  }
10971
10971
  function crossOriginResourcePolicyCheck() {
@@ -10982,33 +10982,33 @@ var require_util3 = __commonJS({
10982
10982
  header = httpRequest.mode;
10983
10983
  httpRequest.headersList.set("sec-fetch-mode", header, true);
10984
10984
  }
10985
- function appendRequestOriginHeader(request6) {
10986
- let serializedOrigin = request6.origin;
10985
+ function appendRequestOriginHeader(request7) {
10986
+ let serializedOrigin = request7.origin;
10987
10987
  if (serializedOrigin === "client" || serializedOrigin === void 0) {
10988
10988
  return;
10989
10989
  }
10990
- if (request6.responseTainting === "cors" || request6.mode === "websocket") {
10991
- request6.headersList.append("origin", serializedOrigin, true);
10992
- } else if (request6.method !== "GET" && request6.method !== "HEAD") {
10993
- switch (request6.referrerPolicy) {
10990
+ if (request7.responseTainting === "cors" || request7.mode === "websocket") {
10991
+ request7.headersList.append("origin", serializedOrigin, true);
10992
+ } else if (request7.method !== "GET" && request7.method !== "HEAD") {
10993
+ switch (request7.referrerPolicy) {
10994
10994
  case "no-referrer":
10995
10995
  serializedOrigin = null;
10996
10996
  break;
10997
10997
  case "no-referrer-when-downgrade":
10998
10998
  case "strict-origin":
10999
10999
  case "strict-origin-when-cross-origin":
11000
- if (request6.origin && urlHasHttpsScheme(request6.origin) && !urlHasHttpsScheme(requestCurrentURL(request6))) {
11000
+ if (request7.origin && urlHasHttpsScheme(request7.origin) && !urlHasHttpsScheme(requestCurrentURL(request7))) {
11001
11001
  serializedOrigin = null;
11002
11002
  }
11003
11003
  break;
11004
11004
  case "same-origin":
11005
- if (!sameOrigin(request6, requestCurrentURL(request6))) {
11005
+ if (!sameOrigin(request7, requestCurrentURL(request7))) {
11006
11006
  serializedOrigin = null;
11007
11007
  }
11008
11008
  break;
11009
11009
  default:
11010
11010
  }
11011
- request6.headersList.append("origin", serializedOrigin, true);
11011
+ request7.headersList.append("origin", serializedOrigin, true);
11012
11012
  }
11013
11013
  }
11014
11014
  function coarsenTime(timestamp, crossOriginIsolatedCapability) {
@@ -11062,18 +11062,18 @@ var require_util3 = __commonJS({
11062
11062
  referrerPolicy: policyContainer.referrerPolicy
11063
11063
  };
11064
11064
  }
11065
- function determineRequestsReferrer(request6) {
11066
- const policy = request6.referrerPolicy;
11065
+ function determineRequestsReferrer(request7) {
11066
+ const policy = request7.referrerPolicy;
11067
11067
  assert2(policy);
11068
11068
  let referrerSource = null;
11069
- if (request6.referrer === "client") {
11069
+ if (request7.referrer === "client") {
11070
11070
  const globalOrigin = getGlobalOrigin();
11071
11071
  if (!globalOrigin || globalOrigin.origin === "null") {
11072
11072
  return "no-referrer";
11073
11073
  }
11074
11074
  referrerSource = new URL(globalOrigin);
11075
- } else if (webidl.is.URL(request6.referrer)) {
11076
- referrerSource = request6.referrer;
11075
+ } else if (webidl.is.URL(request7.referrer)) {
11076
+ referrerSource = request7.referrer;
11077
11077
  }
11078
11078
  let referrerURL = stripURLForReferrer(referrerSource);
11079
11079
  const referrerOrigin = stripURLForReferrer(referrerSource, true);
@@ -11091,14 +11091,14 @@ var require_util3 = __commonJS({
11091
11091
  case "unsafe-url":
11092
11092
  return referrerURL;
11093
11093
  case "strict-origin": {
11094
- const currentURL = requestCurrentURL(request6);
11094
+ const currentURL = requestCurrentURL(request7);
11095
11095
  if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
11096
11096
  return "no-referrer";
11097
11097
  }
11098
11098
  return referrerOrigin;
11099
11099
  }
11100
11100
  case "strict-origin-when-cross-origin": {
11101
- const currentURL = requestCurrentURL(request6);
11101
+ const currentURL = requestCurrentURL(request7);
11102
11102
  if (sameOrigin(referrerURL, currentURL)) {
11103
11103
  return referrerURL;
11104
11104
  }
@@ -11108,17 +11108,17 @@ var require_util3 = __commonJS({
11108
11108
  return referrerOrigin;
11109
11109
  }
11110
11110
  case "same-origin":
11111
- if (sameOrigin(request6, referrerURL)) {
11111
+ if (sameOrigin(request7, referrerURL)) {
11112
11112
  return referrerURL;
11113
11113
  }
11114
11114
  return "no-referrer";
11115
11115
  case "origin-when-cross-origin":
11116
- if (sameOrigin(request6, referrerURL)) {
11116
+ if (sameOrigin(request7, referrerURL)) {
11117
11117
  return referrerURL;
11118
11118
  }
11119
11119
  return referrerOrigin;
11120
11120
  case "no-referrer-when-downgrade": {
11121
- const currentURL = requestCurrentURL(request6);
11121
+ const currentURL = requestCurrentURL(request7);
11122
11122
  if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {
11123
11123
  return "no-referrer";
11124
11124
  }
@@ -11185,7 +11185,7 @@ var require_util3 = __commonJS({
11185
11185
  if (url2.protocol === "blob:") return true;
11186
11186
  return isOriginPotentiallyTrustworthy(url2.origin);
11187
11187
  }
11188
- function tryUpgradeRequestToAPotentiallyTrustworthyURL(request6) {
11188
+ function tryUpgradeRequestToAPotentiallyTrustworthyURL(request7) {
11189
11189
  }
11190
11190
  function sameOrigin(A, B) {
11191
11191
  if (A.origin === B.origin && A.origin === "null") {
@@ -11564,7 +11564,7 @@ var require_util3 = __commonJS({
11564
11564
  }
11565
11565
  return gettingDecodingSplitting(value);
11566
11566
  }
11567
- function hasAuthenticationEntry(request6) {
11567
+ function hasAuthenticationEntry(request7) {
11568
11568
  return false;
11569
11569
  }
11570
11570
  function includesCredentials(url2) {
@@ -12792,11 +12792,11 @@ var require_client_h1 = __commonJS({
12792
12792
  util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
12793
12793
  return -1;
12794
12794
  }
12795
- const request6 = client[kQueue][client[kRunningIdx]];
12796
- if (!request6) {
12795
+ const request7 = client[kQueue][client[kRunningIdx]];
12796
+ if (!request7) {
12797
12797
  return -1;
12798
12798
  }
12799
- request6.onResponseStarted();
12799
+ request7.onResponseStarted();
12800
12800
  return 0;
12801
12801
  }
12802
12802
  /**
@@ -12858,9 +12858,9 @@ var require_client_h1 = __commonJS({
12858
12858
  assert2(!socket.destroyed);
12859
12859
  assert2(!this.paused);
12860
12860
  assert2((headers.length & 1) === 0);
12861
- const request6 = client[kQueue][client[kRunningIdx]];
12862
- assert2(request6);
12863
- assert2(request6.upgrade || request6.method === "CONNECT");
12861
+ const request7 = client[kQueue][client[kRunningIdx]];
12862
+ assert2(request7);
12863
+ assert2(request7.upgrade || request7.method === "CONNECT");
12864
12864
  this.statusCode = 0;
12865
12865
  this.statusText = "";
12866
12866
  this.shouldKeepAlive = false;
@@ -12877,7 +12877,7 @@ var require_client_h1 = __commonJS({
12877
12877
  client[kQueue][client[kRunningIdx]++] = null;
12878
12878
  client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade"));
12879
12879
  try {
12880
- request6.onUpgrade(statusCode, headers, socket);
12880
+ request7.onUpgrade(statusCode, headers, socket);
12881
12881
  } catch (err) {
12882
12882
  util.destroy(socket, err);
12883
12883
  }
@@ -12898,8 +12898,8 @@ var require_client_h1 = __commonJS({
12898
12898
  util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
12899
12899
  return -1;
12900
12900
  }
12901
- const request6 = client[kQueue][client[kRunningIdx]];
12902
- if (!request6) {
12901
+ const request7 = client[kQueue][client[kRunningIdx]];
12902
+ if (!request7) {
12903
12903
  return -1;
12904
12904
  }
12905
12905
  assert2(!this.upgrade);
@@ -12908,23 +12908,23 @@ var require_client_h1 = __commonJS({
12908
12908
  util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
12909
12909
  return -1;
12910
12910
  }
12911
- if (upgrade && !request6.upgrade) {
12911
+ if (upgrade && !request7.upgrade) {
12912
12912
  util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket)));
12913
12913
  return -1;
12914
12914
  }
12915
12915
  assert2(this.timeoutType === TIMEOUT_HEADERS);
12916
12916
  this.statusCode = statusCode;
12917
12917
  this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD.
12918
- request6.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
12918
+ request7.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
12919
12919
  if (this.statusCode >= 200) {
12920
- const bodyTimeout = request6.bodyTimeout != null ? request6.bodyTimeout : client[kBodyTimeout];
12920
+ const bodyTimeout = request7.bodyTimeout != null ? request7.bodyTimeout : client[kBodyTimeout];
12921
12921
  this.setTimeout(bodyTimeout, TIMEOUT_BODY);
12922
12922
  } else if (this.timeout) {
12923
12923
  if (this.timeout.refresh) {
12924
12924
  this.timeout.refresh();
12925
12925
  }
12926
12926
  }
12927
- if (request6.method === "CONNECT") {
12927
+ if (request7.method === "CONNECT") {
12928
12928
  assert2(client[kRunning] === 1);
12929
12929
  this.upgrade = true;
12930
12930
  return 2;
@@ -12955,11 +12955,11 @@ var require_client_h1 = __commonJS({
12955
12955
  } else {
12956
12956
  socket[kReset] = true;
12957
12957
  }
12958
- const pause = request6.onHeaders(statusCode, headers, this.resume, statusText) === false;
12959
- if (request6.aborted) {
12958
+ const pause = request7.onHeaders(statusCode, headers, this.resume, statusText) === false;
12959
+ if (request7.aborted) {
12960
12960
  return -1;
12961
12961
  }
12962
- if (request6.method === "HEAD") {
12962
+ if (request7.method === "HEAD") {
12963
12963
  return 1;
12964
12964
  }
12965
12965
  if (statusCode < 200) {
@@ -12980,8 +12980,8 @@ var require_client_h1 = __commonJS({
12980
12980
  if (socket.destroyed) {
12981
12981
  return -1;
12982
12982
  }
12983
- const request6 = client[kQueue][client[kRunningIdx]];
12984
- assert2(request6);
12983
+ const request7 = client[kQueue][client[kRunningIdx]];
12984
+ assert2(request7);
12985
12985
  assert2(this.timeoutType === TIMEOUT_BODY);
12986
12986
  if (this.timeout) {
12987
12987
  if (this.timeout.refresh) {
@@ -12994,7 +12994,7 @@ var require_client_h1 = __commonJS({
12994
12994
  return -1;
12995
12995
  }
12996
12996
  this.bytesRead += buf.length;
12997
- if (request6.onData(buf) === false) {
12997
+ if (request7.onData(buf) === false) {
12998
12998
  return constants.ERROR.PAUSED;
12999
12999
  }
13000
13000
  return 0;
@@ -13012,8 +13012,8 @@ var require_client_h1 = __commonJS({
13012
13012
  }
13013
13013
  assert2(statusCode >= 100);
13014
13014
  assert2((this.headers.length & 1) === 0);
13015
- const request6 = client[kQueue][client[kRunningIdx]];
13016
- assert2(request6);
13015
+ const request7 = client[kQueue][client[kRunningIdx]];
13016
+ assert2(request7);
13017
13017
  this.statusCode = 0;
13018
13018
  this.statusText = "";
13019
13019
  this.bytesRead = 0;
@@ -13025,11 +13025,11 @@ var require_client_h1 = __commonJS({
13025
13025
  if (statusCode < 200) {
13026
13026
  return 0;
13027
13027
  }
13028
- if (request6.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
13028
+ if (request7.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) {
13029
13029
  util.destroy(socket, new ResponseContentLengthMismatchError());
13030
13030
  return -1;
13031
13031
  }
13032
- request6.onComplete(headers);
13032
+ request7.onComplete(headers);
13033
13033
  client[kQueue][client[kRunningIdx]++] = null;
13034
13034
  socket[kSocketUsed] = client[kPending] === 0;
13035
13035
  if (socket[kWriting]) {
@@ -13098,8 +13098,8 @@ var require_client_h1 = __commonJS({
13098
13098
  return {
13099
13099
  version: "h1",
13100
13100
  defaultPipelining: 1,
13101
- write(request6) {
13102
- return writeH1(client, request6);
13101
+ write(request7) {
13102
+ return writeH1(client, request7);
13103
13103
  },
13104
13104
  resume() {
13105
13105
  resumeH1(client);
@@ -13126,18 +13126,18 @@ var require_client_h1 = __commonJS({
13126
13126
  * @param {import('../core/request.js')} request
13127
13127
  * @returns {boolean}
13128
13128
  */
13129
- busy(request6) {
13129
+ busy(request7) {
13130
13130
  if (socket[kWriting] || socket[kReset] || socket[kBlocking] || socket[kIdleSocketValidation] === 1) {
13131
13131
  return true;
13132
13132
  }
13133
- if (request6) {
13134
- if (client[kRunning] > 0 && !request6.idempotent) {
13133
+ if (request7) {
13134
+ if (client[kRunning] > 0 && !request7.idempotent) {
13135
13135
  return true;
13136
13136
  }
13137
- if (client[kRunning] > 0 && (request6.upgrade || request6.method === "CONNECT")) {
13137
+ if (client[kRunning] > 0 && (request7.upgrade || request7.method === "CONNECT")) {
13138
13138
  return true;
13139
13139
  }
13140
- if (client[kRunning] > 0 && util.bodyLength(request6.body) !== 0 && (util.isStream(request6.body) || util.isAsyncIterable(request6.body) || util.isFormDataLike(request6.body))) {
13140
+ if (client[kRunning] > 0 && util.bodyLength(request7.body) !== 0 && (util.isStream(request7.body) || util.isAsyncIterable(request7.body) || util.isFormDataLike(request7.body))) {
13141
13141
  return true;
13142
13142
  }
13143
13143
  }
@@ -13191,13 +13191,13 @@ var require_client_h1 = __commonJS({
13191
13191
  assert2(client[kPending] === 0);
13192
13192
  const requests = client[kQueue].splice(client[kRunningIdx]);
13193
13193
  for (let i2 = 0; i2 < requests.length; i2++) {
13194
- const request6 = requests[i2];
13195
- util.errorRequest(client, request6, err);
13194
+ const request7 = requests[i2];
13195
+ util.errorRequest(client, request7, err);
13196
13196
  }
13197
13197
  } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") {
13198
- const request6 = client[kQueue][client[kRunningIdx]];
13198
+ const request7 = client[kQueue][client[kRunningIdx]];
13199
13199
  client[kQueue][client[kRunningIdx]++] = null;
13200
- util.errorRequest(client, request6, err);
13200
+ util.errorRequest(client, request7, err);
13201
13201
  }
13202
13202
  client[kPendingIdx] = client[kRunningIdx];
13203
13203
  assert2(client[kRunning] === 0);
@@ -13265,8 +13265,8 @@ var require_client_h1 = __commonJS({
13265
13265
  }
13266
13266
  } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {
13267
13267
  if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {
13268
- const request6 = client[kQueue][client[kRunningIdx]];
13269
- const headersTimeout = request6.headersTimeout != null ? request6.headersTimeout : client[kHeadersTimeout];
13268
+ const request7 = client[kQueue][client[kRunningIdx]];
13269
+ const headersTimeout = request7.headersTimeout != null ? request7.headersTimeout : client[kHeadersTimeout];
13270
13270
  socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS);
13271
13271
  }
13272
13272
  }
@@ -13275,26 +13275,26 @@ var require_client_h1 = __commonJS({
13275
13275
  function shouldSendContentLength(method) {
13276
13276
  return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
13277
13277
  }
13278
- function writeH1(client, request6) {
13279
- const { method, path: path41, host, upgrade, blocking, reset } = request6;
13280
- let { body, headers, contentLength } = request6;
13278
+ function writeH1(client, request7) {
13279
+ const { method, path: path41, host, upgrade, blocking, reset } = request7;
13280
+ let { body, headers, contentLength } = request7;
13281
13281
  const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH";
13282
13282
  if (util.isFormDataLike(body)) {
13283
13283
  if (!extractBody) {
13284
13284
  extractBody = require_body().extractBody;
13285
13285
  }
13286
13286
  const [bodyStream, contentType] = extractBody(body);
13287
- if (request6.contentType == null) {
13287
+ if (request7.contentType == null) {
13288
13288
  headers.push("content-type", contentType);
13289
13289
  }
13290
13290
  body = bodyStream.stream;
13291
13291
  contentLength = bodyStream.length;
13292
- } else if (util.isBlobLike(body) && request6.contentType == null) {
13292
+ } else if (util.isBlobLike(body) && request7.contentType == null) {
13293
13293
  const contentType = body.type;
13294
13294
  if (contentType) {
13295
13295
  const contentTypeValue = `${contentType}`;
13296
13296
  if (!util.isValidHeaderValue(contentTypeValue)) {
13297
- util.errorRequest(client, request6, new InvalidArgumentError2("invalid content-type header"));
13297
+ util.errorRequest(client, request7, new InvalidArgumentError2("invalid content-type header"));
13298
13298
  return false;
13299
13299
  }
13300
13300
  headers.push("content-type", contentTypeValue);
@@ -13306,14 +13306,14 @@ var require_client_h1 = __commonJS({
13306
13306
  const bodyLength = util.bodyLength(body);
13307
13307
  contentLength = bodyLength ?? contentLength;
13308
13308
  if (contentLength === null) {
13309
- contentLength = request6.contentLength;
13309
+ contentLength = request7.contentLength;
13310
13310
  }
13311
13311
  if (contentLength === 0 && !expectsPayload) {
13312
13312
  contentLength = null;
13313
13313
  }
13314
- if (shouldSendContentLength(method) && contentLength > 0 && request6.contentLength !== null && request6.contentLength !== contentLength) {
13314
+ if (shouldSendContentLength(method) && contentLength > 0 && request7.contentLength !== null && request7.contentLength !== contentLength) {
13315
13315
  if (client[kStrictContentLength]) {
13316
- util.errorRequest(client, request6, new RequestContentLengthMismatchError());
13316
+ util.errorRequest(client, request7, new RequestContentLengthMismatchError());
13317
13317
  return false;
13318
13318
  }
13319
13319
  process.emitWarning(new RequestContentLengthMismatchError());
@@ -13321,19 +13321,19 @@ var require_client_h1 = __commonJS({
13321
13321
  const socket = client[kSocket];
13322
13322
  clearIdleSocketValidation(socket);
13323
13323
  const abort = (err) => {
13324
- if (request6.aborted || request6.completed) {
13324
+ if (request7.aborted || request7.completed) {
13325
13325
  return;
13326
13326
  }
13327
- util.errorRequest(client, request6, err || new RequestAbortedError());
13327
+ util.errorRequest(client, request7, err || new RequestAbortedError());
13328
13328
  util.destroy(body);
13329
13329
  util.destroy(socket, new InformationalError("aborted"));
13330
13330
  };
13331
13331
  try {
13332
- request6.onConnect(abort);
13332
+ request7.onConnect(abort);
13333
13333
  } catch (err) {
13334
- util.errorRequest(client, request6, err);
13334
+ util.errorRequest(client, request7, err);
13335
13335
  }
13336
- if (request6.aborted) {
13336
+ if (request7.aborted) {
13337
13337
  return false;
13338
13338
  }
13339
13339
  if (method === "HEAD") {
@@ -13352,7 +13352,7 @@ var require_client_h1 = __commonJS({
13352
13352
  socket[kBlocking] = true;
13353
13353
  }
13354
13354
  if (socket.setTypeOfService) {
13355
- socket.setTypeOfService(request6.typeOfService);
13355
+ socket.setTypeOfService(request7.typeOfService);
13356
13356
  }
13357
13357
  let header = `${method} ${path41} HTTP/1.1\r
13358
13358
  `;
@@ -13387,31 +13387,31 @@ upgrade: ${upgrade}\r
13387
13387
  }
13388
13388
  }
13389
13389
  if (channels.sendHeaders.hasSubscribers) {
13390
- channels.sendHeaders.publish({ request: request6, headers: header, socket });
13390
+ channels.sendHeaders.publish({ request: request7, headers: header, socket });
13391
13391
  }
13392
13392
  if (!body || bodyLength === 0) {
13393
- writeBuffer(abort, null, client, request6, socket, contentLength, header, expectsPayload);
13393
+ writeBuffer(abort, null, client, request7, socket, contentLength, header, expectsPayload);
13394
13394
  } else if (util.isBuffer(body)) {
13395
- writeBuffer(abort, body, client, request6, socket, contentLength, header, expectsPayload);
13395
+ writeBuffer(abort, body, client, request7, socket, contentLength, header, expectsPayload);
13396
13396
  } else if (util.isBlobLike(body)) {
13397
13397
  if (typeof body.stream === "function") {
13398
- writeIterable(abort, body.stream(), client, request6, socket, contentLength, header, expectsPayload);
13398
+ writeIterable(abort, body.stream(), client, request7, socket, contentLength, header, expectsPayload);
13399
13399
  } else {
13400
- writeBlob(abort, body, client, request6, socket, contentLength, header, expectsPayload);
13400
+ writeBlob(abort, body, client, request7, socket, contentLength, header, expectsPayload);
13401
13401
  }
13402
13402
  } else if (util.isStream(body)) {
13403
- writeStream(abort, body, client, request6, socket, contentLength, header, expectsPayload);
13403
+ writeStream(abort, body, client, request7, socket, contentLength, header, expectsPayload);
13404
13404
  } else if (util.isIterable(body)) {
13405
- writeIterable(abort, body, client, request6, socket, contentLength, header, expectsPayload);
13405
+ writeIterable(abort, body, client, request7, socket, contentLength, header, expectsPayload);
13406
13406
  } else {
13407
13407
  assert2(false);
13408
13408
  }
13409
13409
  return true;
13410
13410
  }
13411
- function writeStream(abort, body, client, request6, socket, contentLength, header, expectsPayload) {
13411
+ function writeStream(abort, body, client, request7, socket, contentLength, header, expectsPayload) {
13412
13412
  assert2(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
13413
13413
  let finished = false;
13414
- const writer = new AsyncWriter({ abort, socket, request: request6, contentLength, client, expectsPayload, header });
13414
+ const writer = new AsyncWriter({ abort, socket, request: request7, contentLength, client, expectsPayload, header });
13415
13415
  const onData = function(chunk) {
13416
13416
  if (finished) {
13417
13417
  return;
@@ -13477,7 +13477,7 @@ upgrade: ${upgrade}\r
13477
13477
  setImmediate(onClose);
13478
13478
  }
13479
13479
  }
13480
- function writeBuffer(abort, body, client, request6, socket, contentLength, header, expectsPayload) {
13480
+ function writeBuffer(abort, body, client, request7, socket, contentLength, header, expectsPayload) {
13481
13481
  try {
13482
13482
  if (!body) {
13483
13483
  if (contentLength === 0) {
@@ -13497,18 +13497,18 @@ upgrade: ${upgrade}\r
13497
13497
  `, "latin1");
13498
13498
  socket.write(body);
13499
13499
  socket.uncork();
13500
- request6.onBodySent(body);
13501
- if (!expectsPayload && request6.reset !== false) {
13500
+ request7.onBodySent(body);
13501
+ if (!expectsPayload && request7.reset !== false) {
13502
13502
  socket[kReset] = true;
13503
13503
  }
13504
13504
  }
13505
- request6.onRequestSent();
13505
+ request7.onRequestSent();
13506
13506
  client[kResume]();
13507
13507
  } catch (err) {
13508
13508
  abort(err);
13509
13509
  }
13510
13510
  }
13511
- async function writeBlob(abort, body, client, request6, socket, contentLength, header, expectsPayload) {
13511
+ async function writeBlob(abort, body, client, request7, socket, contentLength, header, expectsPayload) {
13512
13512
  assert2(contentLength === body.size, "blob body must have content length");
13513
13513
  try {
13514
13514
  if (contentLength != null && contentLength !== body.size) {
@@ -13521,9 +13521,9 @@ upgrade: ${upgrade}\r
13521
13521
  `, "latin1");
13522
13522
  socket.write(buffer);
13523
13523
  socket.uncork();
13524
- request6.onBodySent(buffer);
13525
- request6.onRequestSent();
13526
- if (!expectsPayload && request6.reset !== false) {
13524
+ request7.onBodySent(buffer);
13525
+ request7.onRequestSent();
13526
+ if (!expectsPayload && request7.reset !== false) {
13527
13527
  socket[kReset] = true;
13528
13528
  }
13529
13529
  client[kResume]();
@@ -13531,7 +13531,7 @@ upgrade: ${upgrade}\r
13531
13531
  abort(err);
13532
13532
  }
13533
13533
  }
13534
- async function writeIterable(abort, body, client, request6, socket, contentLength, header, expectsPayload) {
13534
+ async function writeIterable(abort, body, client, request7, socket, contentLength, header, expectsPayload) {
13535
13535
  assert2(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
13536
13536
  let callback = null;
13537
13537
  function onDrain() {
@@ -13550,7 +13550,7 @@ upgrade: ${upgrade}\r
13550
13550
  }
13551
13551
  });
13552
13552
  socket.on("close", onDrain).on("drain", onDrain);
13553
- const writer = new AsyncWriter({ abort, socket, request: request6, contentLength, client, expectsPayload, header });
13553
+ const writer = new AsyncWriter({ abort, socket, request: request7, contentLength, client, expectsPayload, header });
13554
13554
  try {
13555
13555
  for await (const chunk of body) {
13556
13556
  if (socket[kError]) {
@@ -13579,9 +13579,9 @@ upgrade: ${upgrade}\r
13579
13579
  * @param {boolean} arg.expectsPayload
13580
13580
  * @param {string} arg.header
13581
13581
  */
13582
- constructor({ abort, socket, request: request6, contentLength, client, expectsPayload, header }) {
13582
+ constructor({ abort, socket, request: request7, contentLength, client, expectsPayload, header }) {
13583
13583
  this.socket = socket;
13584
- this.request = request6;
13584
+ this.request = request7;
13585
13585
  this.contentLength = contentLength;
13586
13586
  this.client = client;
13587
13587
  this.bytesWritten = 0;
@@ -13595,7 +13595,7 @@ upgrade: ${upgrade}\r
13595
13595
  * @returns
13596
13596
  */
13597
13597
  write(chunk) {
13598
- const { socket, request: request6, contentLength, client, bytesWritten, expectsPayload, header } = this;
13598
+ const { socket, request: request7, contentLength, client, bytesWritten, expectsPayload, header } = this;
13599
13599
  if (socket[kError]) {
13600
13600
  throw socket[kError];
13601
13601
  }
@@ -13614,7 +13614,7 @@ upgrade: ${upgrade}\r
13614
13614
  }
13615
13615
  socket.cork();
13616
13616
  if (bytesWritten === 0) {
13617
- if (!expectsPayload && request6.reset !== false) {
13617
+ if (!expectsPayload && request7.reset !== false) {
13618
13618
  socket[kReset] = true;
13619
13619
  }
13620
13620
  if (contentLength === null) {
@@ -13634,7 +13634,7 @@ ${len.toString(16)}\r
13634
13634
  this.bytesWritten += len;
13635
13635
  const ret = socket.write(chunk);
13636
13636
  socket.uncork();
13637
- request6.onBodySent(chunk);
13637
+ request7.onBodySent(chunk);
13638
13638
  if (!ret) {
13639
13639
  if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {
13640
13640
  if (socket[kParser].timeout.refresh) {
@@ -13648,8 +13648,8 @@ ${len.toString(16)}\r
13648
13648
  * @returns {void}
13649
13649
  */
13650
13650
  end() {
13651
- const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request6 } = this;
13652
- request6.onRequestSent();
13651
+ const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request7 } = this;
13652
+ request7.onRequestSent();
13653
13653
  socket[kWriting] = false;
13654
13654
  if (socket[kError]) {
13655
13655
  throw socket[kError];
@@ -13829,8 +13829,8 @@ var require_client_h2 = __commonJS({
13829
13829
  * @param {import('../core/request.js')} request
13830
13830
  * @returns {boolean}
13831
13831
  */
13832
- write(request6) {
13833
- return writeH2(client, request6);
13832
+ write(request7) {
13833
+ return writeH2(client, request7);
13834
13834
  },
13835
13835
  /**
13836
13836
  * @returns {void}
@@ -13859,14 +13859,14 @@ var require_client_h2 = __commonJS({
13859
13859
  * @param {import('../core/request.js')} request
13860
13860
  * @returns {boolean}
13861
13861
  */
13862
- busy(request6) {
13863
- if (request6 != null) {
13862
+ busy(request7) {
13863
+ if (request7 != null) {
13864
13864
  if (client[kRunning] > 0) {
13865
- if (request6.idempotent === false) return true;
13866
- if ((request6.upgrade === "websocket" || request6.method === "CONNECT") && session[kRemoteSettings] === false) return true;
13867
- if (util.bodyLength(request6.body) !== 0 && (util.isStream(request6.body) || util.isAsyncIterable(request6.body) || util.isFormDataLike(request6.body))) return true;
13865
+ if (request7.idempotent === false) return true;
13866
+ if ((request7.upgrade === "websocket" || request7.method === "CONNECT") && session[kRemoteSettings] === false) return true;
13867
+ if (util.bodyLength(request7.body) !== 0 && (util.isStream(request7.body) || util.isAsyncIterable(request7.body) || util.isFormDataLike(request7.body))) return true;
13868
13868
  } else {
13869
- return (request6.upgrade === "websocket" || request6.method === "CONNECT") && session[kRemoteSettings] === false;
13869
+ return (request7.upgrade === "websocket" || request7.method === "CONNECT") && session[kRemoteSettings] === false;
13870
13870
  }
13871
13871
  }
13872
13872
  return false;
@@ -13942,15 +13942,15 @@ var require_client_h2 = __commonJS({
13942
13942
  this.destroy(err);
13943
13943
  util.destroy(this[kSocket], err);
13944
13944
  }
13945
- function completeRequest(client, request6, resetPendingIdx = false) {
13945
+ function completeRequest(client, request7, resetPendingIdx = false) {
13946
13946
  const queue = client[kQueue];
13947
13947
  const runningIdx = client[kRunningIdx];
13948
- if (runningIdx < client[kPendingIdx] && queue[runningIdx] === request6) {
13948
+ if (runningIdx < client[kPendingIdx] && queue[runningIdx] === request7) {
13949
13949
  queue[runningIdx] = null;
13950
13950
  client[kRunningIdx] = runningIdx + 1;
13951
13951
  return;
13952
13952
  }
13953
- const index = queue.indexOf(request6, runningIdx);
13953
+ const index = queue.indexOf(request7, runningIdx);
13954
13954
  if (index === -1 || index >= client[kPendingIdx]) {
13955
13955
  return;
13956
13956
  }
@@ -13969,10 +13969,10 @@ var require_client_h2 = __commonJS({
13969
13969
  this[kHTTP2Session] = null;
13970
13970
  util.destroy(this[kSocket], err);
13971
13971
  if (client[kRunningIdx] < client[kQueue].length) {
13972
- const request6 = client[kQueue][client[kRunningIdx]];
13972
+ const request7 = client[kQueue][client[kRunningIdx]];
13973
13973
  client[kQueue][client[kRunningIdx]++] = null;
13974
- if (request6 != null) {
13975
- util.errorRequest(client, request6, err);
13974
+ if (request7 != null) {
13975
+ util.errorRequest(client, request7, err);
13976
13976
  }
13977
13977
  client[kPendingIdx] = client[kRunningIdx];
13978
13978
  }
@@ -13995,9 +13995,9 @@ var require_client_h2 = __commonJS({
13995
13995
  assert2(client[kPending] === 0);
13996
13996
  const requests = client[kQueue].splice(client[kRunningIdx]);
13997
13997
  for (let i2 = 0; i2 < requests.length; i2++) {
13998
- const request6 = requests[i2];
13999
- if (request6 != null) {
14000
- util.errorRequest(client, request6, err);
13998
+ const request7 = requests[i2];
13999
+ if (request7 != null) {
14000
+ util.errorRequest(client, request7, err);
14001
14001
  }
14002
14002
  }
14003
14003
  }
@@ -14029,14 +14029,14 @@ var require_client_h2 = __commonJS({
14029
14029
  function shouldSendContentLength(method) {
14030
14030
  return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
14031
14031
  }
14032
- function writeH2(client, request6) {
14033
- const headersTimeout = request6.headersTimeout ?? client[kHeadersTimeout];
14034
- const bodyTimeout = request6.bodyTimeout ?? client[kBodyTimeout];
14032
+ function writeH2(client, request7) {
14033
+ const headersTimeout = request7.headersTimeout ?? client[kHeadersTimeout];
14034
+ const bodyTimeout = request7.bodyTimeout ?? client[kBodyTimeout];
14035
14035
  const session = client[kHTTP2Session];
14036
- const { method, path: path41, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request6;
14037
- let { body } = request6;
14036
+ const { method, path: path41, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request7;
14037
+ let { body } = request7;
14038
14038
  if (upgrade != null && upgrade !== "websocket") {
14039
- util.errorRequest(client, request6, new InvalidArgumentError2(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
14039
+ util.errorRequest(client, request7, new InvalidArgumentError2(`Custom upgrade "${upgrade}" not supported over HTTP/2`));
14040
14040
  return false;
14041
14041
  }
14042
14042
  const headers = {};
@@ -14070,33 +14070,33 @@ var require_client_h2 = __commonJS({
14070
14070
  headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname3}${port ? `:${port}` : ""}`;
14071
14071
  headers[HTTP2_HEADER_METHOD] = method;
14072
14072
  const abort = (err) => {
14073
- if (request6.aborted || request6.completed) {
14073
+ if (request7.aborted || request7.completed) {
14074
14074
  return;
14075
14075
  }
14076
14076
  err = err || new RequestAbortedError();
14077
- util.errorRequest(client, request6, err);
14077
+ util.errorRequest(client, request7, err);
14078
14078
  if (stream != null) {
14079
14079
  stream.removeAllListeners("data");
14080
14080
  stream.close();
14081
14081
  client[kOnError](err);
14082
- completeRequest(client, request6);
14082
+ completeRequest(client, request7);
14083
14083
  client[kResume]();
14084
14084
  }
14085
14085
  util.destroy(body, err);
14086
14086
  };
14087
14087
  try {
14088
- request6.onConnect(abort);
14088
+ request7.onConnect(abort);
14089
14089
  } catch (err) {
14090
- util.errorRequest(client, request6, err);
14090
+ util.errorRequest(client, request7, err);
14091
14091
  }
14092
- if (request6.aborted) {
14092
+ if (request7.aborted) {
14093
14093
  return false;
14094
14094
  }
14095
14095
  if (upgrade || method === "CONNECT") {
14096
14096
  session.ref();
14097
14097
  if (upgrade === "websocket") {
14098
14098
  if (session[kEnableConnectProtocol] === false) {
14099
- util.errorRequest(client, request6, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
14099
+ util.errorRequest(client, request7, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server"));
14100
14100
  session.unref();
14101
14101
  return false;
14102
14102
  }
@@ -14112,9 +14112,9 @@ var require_client_h2 = __commonJS({
14112
14112
  stream[kHTTP2Stream] = true;
14113
14113
  stream.once("response", (headers2, _flags) => {
14114
14114
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
14115
- request6.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
14115
+ request7.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
14116
14116
  ++session[kOpenStreams];
14117
- completeRequest(client, request6);
14117
+ completeRequest(client, request7);
14118
14118
  });
14119
14119
  stream.on("error", () => {
14120
14120
  if (stream.rstCode === NGHTTP2_REFUSED_STREAM || stream.rstCode === NGHTTP2_CANCEL) {
@@ -14132,9 +14132,9 @@ var require_client_h2 = __commonJS({
14132
14132
  stream[kHTTP2Stream] = true;
14133
14133
  stream.on("response", (headers2) => {
14134
14134
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
14135
- request6.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
14135
+ request7.onUpgrade(statusCode, parseH2Headers(realHeaders), stream);
14136
14136
  ++session[kOpenStreams];
14137
- completeRequest(client, request6);
14137
+ completeRequest(client, request7);
14138
14138
  });
14139
14139
  stream.on("error", abort);
14140
14140
  stream.once("close", () => {
@@ -14159,14 +14159,14 @@ var require_client_h2 = __commonJS({
14159
14159
  contentLength = bodyStream.length;
14160
14160
  }
14161
14161
  if (contentLength == null) {
14162
- contentLength = request6.contentLength;
14162
+ contentLength = request7.contentLength;
14163
14163
  }
14164
14164
  if (!expectsPayload) {
14165
14165
  contentLength = null;
14166
14166
  }
14167
- if (shouldSendContentLength(method) && contentLength > 0 && request6.contentLength != null && request6.contentLength !== contentLength) {
14167
+ if (shouldSendContentLength(method) && contentLength > 0 && request7.contentLength != null && request7.contentLength !== contentLength) {
14168
14168
  if (client[kStrictContentLength]) {
14169
- util.errorRequest(client, request6, new RequestContentLengthMismatchError());
14169
+ util.errorRequest(client, request7, new RequestContentLengthMismatchError());
14170
14170
  return false;
14171
14171
  }
14172
14172
  process.emitWarning(new RequestContentLengthMismatchError());
@@ -14182,7 +14182,7 @@ var require_client_h2 = __commonJS({
14182
14182
  header += `${key}: ${headers[key]}\r
14183
14183
  `;
14184
14184
  }
14185
- channels.sendHeaders.publish({ request: request6, headers: header, socket: session[kSocket] });
14185
+ channels.sendHeaders.publish({ request: request7, headers: header, socket: session[kSocket] });
14186
14186
  }
14187
14187
  const shouldEndStream = method === "GET" || method === "HEAD" || body === null;
14188
14188
  if (expectContinue) {
@@ -14203,21 +14203,21 @@ var require_client_h2 = __commonJS({
14203
14203
  let responseReceived = false;
14204
14204
  stream.once("response", (headers2) => {
14205
14205
  const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2;
14206
- request6.onResponseStarted();
14206
+ request7.onResponseStarted();
14207
14207
  responseReceived = true;
14208
14208
  stream.setTimeout(bodyTimeout);
14209
- if (request6.aborted) {
14209
+ if (request7.aborted) {
14210
14210
  stream.removeAllListeners("data");
14211
14211
  return;
14212
14212
  }
14213
- if (request6.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
14213
+ if (request7.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
14214
14214
  stream.pause();
14215
14215
  }
14216
14216
  stream.on("data", (chunk) => {
14217
- if (request6.aborted || request6.completed) {
14217
+ if (request7.aborted || request7.completed) {
14218
14218
  return;
14219
14219
  }
14220
- if (request6.onData(chunk) === false) {
14220
+ if (request7.onData(chunk) === false) {
14221
14221
  stream.pause();
14222
14222
  }
14223
14223
  });
@@ -14225,14 +14225,14 @@ var require_client_h2 = __commonJS({
14225
14225
  stream.once("end", () => {
14226
14226
  stream.removeAllListeners("data");
14227
14227
  if (responseReceived) {
14228
- if (!request6.aborted && !request6.completed) {
14229
- request6.onComplete({});
14228
+ if (!request7.aborted && !request7.completed) {
14229
+ request7.onComplete({});
14230
14230
  }
14231
- completeRequest(client, request6);
14231
+ completeRequest(client, request7);
14232
14232
  client[kResume]();
14233
14233
  } else {
14234
14234
  abort(new InformationalError("HTTP/2: stream half-closed (remote)"));
14235
- completeRequest(client, request6, true);
14235
+ completeRequest(client, request7, true);
14236
14236
  client[kResume]();
14237
14237
  }
14238
14238
  });
@@ -14242,7 +14242,7 @@ var require_client_h2 = __commonJS({
14242
14242
  if (session[kOpenStreams] === 0) {
14243
14243
  session.unref();
14244
14244
  }
14245
- if (!request6.aborted && !request6.completed) {
14245
+ if (!request7.aborted && !request7.completed) {
14246
14246
  abort(new InformationalError("HTTP/2: stream closed before the response was complete"));
14247
14247
  }
14248
14248
  });
@@ -14267,11 +14267,11 @@ var require_client_h2 = __commonJS({
14267
14267
  abort(err);
14268
14268
  });
14269
14269
  stream.once("trailers", (trailers) => {
14270
- if (request6.aborted || request6.completed) {
14270
+ if (request7.aborted || request7.completed) {
14271
14271
  return;
14272
14272
  }
14273
14273
  stream.removeAllListeners("data");
14274
- request6.onComplete(trailers);
14274
+ request7.onComplete(trailers);
14275
14275
  });
14276
14276
  return true;
14277
14277
  function writeBodyH2() {
@@ -14281,7 +14281,7 @@ var require_client_h2 = __commonJS({
14281
14281
  stream,
14282
14282
  null,
14283
14283
  client,
14284
- request6,
14284
+ request7,
14285
14285
  client[kSocket],
14286
14286
  contentLength,
14287
14287
  expectsPayload
@@ -14292,7 +14292,7 @@ var require_client_h2 = __commonJS({
14292
14292
  stream,
14293
14293
  body,
14294
14294
  client,
14295
- request6,
14295
+ request7,
14296
14296
  client[kSocket],
14297
14297
  contentLength,
14298
14298
  expectsPayload
@@ -14304,7 +14304,7 @@ var require_client_h2 = __commonJS({
14304
14304
  stream,
14305
14305
  body.stream(),
14306
14306
  client,
14307
- request6,
14307
+ request7,
14308
14308
  client[kSocket],
14309
14309
  contentLength,
14310
14310
  expectsPayload
@@ -14315,7 +14315,7 @@ var require_client_h2 = __commonJS({
14315
14315
  stream,
14316
14316
  body,
14317
14317
  client,
14318
- request6,
14318
+ request7,
14319
14319
  client[kSocket],
14320
14320
  contentLength,
14321
14321
  expectsPayload
@@ -14329,7 +14329,7 @@ var require_client_h2 = __commonJS({
14329
14329
  stream,
14330
14330
  body,
14331
14331
  client,
14332
- request6,
14332
+ request7,
14333
14333
  contentLength
14334
14334
  );
14335
14335
  } else if (util.isIterable(body)) {
@@ -14338,7 +14338,7 @@ var require_client_h2 = __commonJS({
14338
14338
  stream,
14339
14339
  body,
14340
14340
  client,
14341
- request6,
14341
+ request7,
14342
14342
  client[kSocket],
14343
14343
  contentLength,
14344
14344
  expectsPayload
@@ -14348,7 +14348,7 @@ var require_client_h2 = __commonJS({
14348
14348
  }
14349
14349
  }
14350
14350
  }
14351
- function writeBuffer(abort, h2stream, body, client, request6, socket, contentLength, expectsPayload) {
14351
+ function writeBuffer(abort, h2stream, body, client, request7, socket, contentLength, expectsPayload) {
14352
14352
  try {
14353
14353
  if (body != null && util.isBuffer(body)) {
14354
14354
  assert2(contentLength === body.byteLength, "buffer body must have content length");
@@ -14356,18 +14356,18 @@ var require_client_h2 = __commonJS({
14356
14356
  h2stream.write(body);
14357
14357
  h2stream.uncork();
14358
14358
  h2stream.end();
14359
- request6.onBodySent(body);
14359
+ request7.onBodySent(body);
14360
14360
  }
14361
14361
  if (!expectsPayload) {
14362
14362
  socket[kReset] = true;
14363
14363
  }
14364
- request6.onRequestSent();
14364
+ request7.onRequestSent();
14365
14365
  client[kResume]();
14366
14366
  } catch (error62) {
14367
14367
  abort(error62);
14368
14368
  }
14369
14369
  }
14370
- function writeStream(abort, socket, expectsPayload, h2stream, body, client, request6, contentLength) {
14370
+ function writeStream(abort, socket, expectsPayload, h2stream, body, client, request7, contentLength) {
14371
14371
  assert2(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
14372
14372
  const pipe2 = pipeline(
14373
14373
  body,
@@ -14378,7 +14378,7 @@ var require_client_h2 = __commonJS({
14378
14378
  abort(err);
14379
14379
  } else {
14380
14380
  util.removeAllListeners(pipe2);
14381
- request6.onRequestSent();
14381
+ request7.onRequestSent();
14382
14382
  if (!expectsPayload) {
14383
14383
  socket[kReset] = true;
14384
14384
  }
@@ -14388,10 +14388,10 @@ var require_client_h2 = __commonJS({
14388
14388
  );
14389
14389
  util.addListener(pipe2, "data", onPipeData);
14390
14390
  function onPipeData(chunk) {
14391
- request6.onBodySent(chunk);
14391
+ request7.onBodySent(chunk);
14392
14392
  }
14393
14393
  }
14394
- async function writeBlob(abort, h2stream, body, client, request6, socket, contentLength, expectsPayload) {
14394
+ async function writeBlob(abort, h2stream, body, client, request7, socket, contentLength, expectsPayload) {
14395
14395
  assert2(contentLength === body.size, "blob body must have content length");
14396
14396
  try {
14397
14397
  if (contentLength != null && contentLength !== body.size) {
@@ -14402,8 +14402,8 @@ var require_client_h2 = __commonJS({
14402
14402
  h2stream.write(buffer);
14403
14403
  h2stream.uncork();
14404
14404
  h2stream.end();
14405
- request6.onBodySent(buffer);
14406
- request6.onRequestSent();
14405
+ request7.onBodySent(buffer);
14406
+ request7.onRequestSent();
14407
14407
  if (!expectsPayload) {
14408
14408
  socket[kReset] = true;
14409
14409
  }
@@ -14412,7 +14412,7 @@ var require_client_h2 = __commonJS({
14412
14412
  abort(err);
14413
14413
  }
14414
14414
  }
14415
- async function writeIterable(abort, h2stream, body, client, request6, socket, contentLength, expectsPayload) {
14415
+ async function writeIterable(abort, h2stream, body, client, request7, socket, contentLength, expectsPayload) {
14416
14416
  assert2(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
14417
14417
  let callback = null;
14418
14418
  function onDrain() {
@@ -14437,13 +14437,13 @@ var require_client_h2 = __commonJS({
14437
14437
  throw socket[kError];
14438
14438
  }
14439
14439
  const res = h2stream.write(chunk);
14440
- request6.onBodySent(chunk);
14440
+ request7.onBodySent(chunk);
14441
14441
  if (!res) {
14442
14442
  await waitForDrain();
14443
14443
  }
14444
14444
  }
14445
14445
  h2stream.end();
14446
- request6.onRequestSent();
14446
+ request7.onRequestSent();
14447
14447
  if (!expectsPayload) {
14448
14448
  socket[kReset] = true;
14449
14449
  }
@@ -14728,10 +14728,10 @@ var require_client = __commonJS({
14728
14728
  this.once("connect", cb);
14729
14729
  }
14730
14730
  [kDispatch](opts, handler) {
14731
- const request6 = new Request(this[kUrl].origin, opts, handler);
14732
- this[kQueue].push(request6);
14731
+ const request7 = new Request(this[kUrl].origin, opts, handler);
14732
+ this[kQueue].push(request7);
14733
14733
  if (this[kResuming]) {
14734
- } else if (util.bodyLength(request6.body) == null && util.isIterable(request6.body)) {
14734
+ } else if (util.bodyLength(request7.body) == null && util.isIterable(request7.body)) {
14735
14735
  this[kResuming] = 1;
14736
14736
  queueMicrotask(() => resume(this));
14737
14737
  } else {
@@ -14755,9 +14755,9 @@ var require_client = __commonJS({
14755
14755
  return new Promise((resolve) => {
14756
14756
  const requests = this[kQueue].splice(this[kPendingIdx]);
14757
14757
  for (let i2 = 0; i2 < requests.length; i2++) {
14758
- const request6 = requests[i2];
14759
- if (request6 != null) {
14760
- util.errorRequest(this, request6, err);
14758
+ const request7 = requests[i2];
14759
+ if (request7 != null) {
14760
+ util.errorRequest(this, request7, err);
14761
14761
  }
14762
14762
  }
14763
14763
  const callback = () => {
@@ -14782,9 +14782,9 @@ var require_client = __commonJS({
14782
14782
  assert2(client[kPendingIdx] === client[kRunningIdx]);
14783
14783
  const requests = client[kQueue].splice(client[kRunningIdx]);
14784
14784
  for (let i2 = 0; i2 < requests.length; i2++) {
14785
- const request6 = requests[i2];
14786
- if (request6 != null) {
14787
- util.errorRequest(client, request6, err);
14785
+ const request7 = requests[i2];
14786
+ if (request7 != null) {
14787
+ util.errorRequest(client, request7, err);
14788
14788
  }
14789
14789
  }
14790
14790
  assert2(client[kSize] === 0);
@@ -14895,8 +14895,8 @@ var require_client = __commonJS({
14895
14895
  if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") {
14896
14896
  assert2(client[kRunning] === 0);
14897
14897
  while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {
14898
- const request6 = client[kQueue][client[kPendingIdx]++];
14899
- util.errorRequest(client, request6, err);
14898
+ const request7 = client[kQueue][client[kPendingIdx]++];
14899
+ util.errorRequest(client, request7, err);
14900
14900
  }
14901
14901
  } else {
14902
14902
  onError(client, err);
@@ -14951,15 +14951,15 @@ var require_client = __commonJS({
14951
14951
  if (client[kRunning] >= (getPipelining(client) || 1)) {
14952
14952
  return;
14953
14953
  }
14954
- const request6 = client[kQueue][client[kPendingIdx]];
14955
- if (request6 === null) {
14954
+ const request7 = client[kQueue][client[kPendingIdx]];
14955
+ if (request7 === null) {
14956
14956
  return;
14957
14957
  }
14958
- if (client[kUrl].protocol === "https:" && client[kServerName] !== request6.servername) {
14958
+ if (client[kUrl].protocol === "https:" && client[kServerName] !== request7.servername) {
14959
14959
  if (client[kRunning] > 0) {
14960
14960
  return;
14961
14961
  }
14962
- client[kServerName] = request6.servername;
14962
+ client[kServerName] = request7.servername;
14963
14963
  client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => {
14964
14964
  client[kHTTPContext] = null;
14965
14965
  resume(client);
@@ -14975,10 +14975,10 @@ var require_client = __commonJS({
14975
14975
  if (client[kHTTPContext].destroyed) {
14976
14976
  return;
14977
14977
  }
14978
- if (client[kHTTPContext].busy(request6)) {
14978
+ if (client[kHTTPContext].busy(request7)) {
14979
14979
  return;
14980
14980
  }
14981
- if (!request6.aborted && client[kHTTPContext].write(request6)) {
14981
+ if (!request7.aborted && client[kHTTPContext].write(request7)) {
14982
14982
  client[kPendingIdx]++;
14983
14983
  } else {
14984
14984
  client[kQueue].splice(client[kPendingIdx], 1);
@@ -16030,13 +16030,13 @@ var require_socks5_client = __commonJS({
16030
16030
  }
16031
16031
  debug("starting handshake with", this.authMethods.length, "auth methods");
16032
16032
  this.state = STATES.HANDSHAKING;
16033
- const request6 = Buffer2.alloc(2 + this.authMethods.length);
16034
- request6[0] = SOCKS_VERSION;
16035
- request6[1] = this.authMethods.length;
16033
+ const request7 = Buffer2.alloc(2 + this.authMethods.length);
16034
+ request7[0] = SOCKS_VERSION;
16035
+ request7[1] = this.authMethods.length;
16036
16036
  this.authMethods.forEach((method, i2) => {
16037
- request6[2 + i2] = method;
16037
+ request7[2 + i2] = method;
16038
16038
  });
16039
- this.socket.write(request6);
16039
+ this.socket.write(request7);
16040
16040
  }
16041
16041
  /**
16042
16042
  * Handle handshake response from server
@@ -16078,13 +16078,13 @@ var require_socks5_client = __commonJS({
16078
16078
  if (usernameBuffer.length > 255 || passwordBuffer.length > 255) {
16079
16079
  throw new InvalidArgumentError2("Username or password too long");
16080
16080
  }
16081
- const request6 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
16082
- request6[0] = 1;
16083
- request6[1] = usernameBuffer.length;
16084
- usernameBuffer.copy(request6, 2);
16085
- request6[2 + usernameBuffer.length] = passwordBuffer.length;
16086
- passwordBuffer.copy(request6, 3 + usernameBuffer.length);
16087
- this.socket.write(request6);
16081
+ const request7 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
16082
+ request7[0] = 1;
16083
+ request7[1] = usernameBuffer.length;
16084
+ usernameBuffer.copy(request7, 2);
16085
+ request7[2 + usernameBuffer.length] = passwordBuffer.length;
16086
+ passwordBuffer.copy(request7, 3 + usernameBuffer.length);
16087
+ this.socket.write(request7);
16088
16088
  }
16089
16089
  /**
16090
16090
  * Handle authentication response
@@ -16119,22 +16119,22 @@ var require_socks5_client = __commonJS({
16119
16119
  }
16120
16120
  debug("connecting to", address, port);
16121
16121
  this.state = STATES.CONNECTING;
16122
- const request6 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
16123
- this.socket.write(request6);
16122
+ const request7 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
16123
+ this.socket.write(request7);
16124
16124
  }
16125
16125
  /**
16126
16126
  * Build a SOCKS5 request
16127
16127
  */
16128
16128
  buildConnectRequest(command, address, port) {
16129
16129
  const { type: addressType, buffer: addressBuffer } = parseAddress(address);
16130
- const request6 = Buffer2.alloc(4 + addressBuffer.length + 2);
16131
- request6[0] = SOCKS_VERSION;
16132
- request6[1] = command;
16133
- request6[2] = 0;
16134
- request6[3] = addressType;
16135
- addressBuffer.copy(request6, 4);
16136
- request6.writeUInt16BE(port, 4 + addressBuffer.length);
16137
- return request6;
16130
+ const request7 = Buffer2.alloc(4 + addressBuffer.length + 2);
16131
+ request7[0] = SOCKS_VERSION;
16132
+ request7[1] = command;
16133
+ request7[2] = 0;
16134
+ request7[3] = addressType;
16135
+ addressBuffer.copy(request7, 4);
16136
+ request7.writeUInt16BE(port, 4 + addressBuffer.length);
16137
+ return request7;
16138
16138
  }
16139
16139
  /**
16140
16140
  * Handle CONNECT response
@@ -17803,10 +17803,10 @@ var require_api_request = __commonJS({
17803
17803
  }
17804
17804
  }
17805
17805
  };
17806
- function request6(opts, callback) {
17806
+ function request7(opts, callback) {
17807
17807
  if (callback === void 0) {
17808
17808
  return new Promise((resolve, reject) => {
17809
- request6.call(this, opts, (err, data) => {
17809
+ request7.call(this, opts, (err, data) => {
17810
17810
  return err ? reject(err) : resolve(data);
17811
17811
  });
17812
17812
  });
@@ -17822,7 +17822,7 @@ var require_api_request = __commonJS({
17822
17822
  queueMicrotask(() => callback(err, { opaque }));
17823
17823
  }
17824
17824
  }
17825
- module2.exports = request6;
17825
+ module2.exports = request7;
17826
17826
  module2.exports.RequestHandler = RequestHandler;
17827
17827
  }
17828
17828
  });
@@ -19805,8 +19805,8 @@ var require_snapshot_recorder = __commonJS({
19805
19805
  if (this.isUrlExcluded(requestOpts)) {
19806
19806
  return;
19807
19807
  }
19808
- const request6 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19809
- const hash2 = createRequestHash(request6);
19808
+ const request7 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19809
+ const hash2 = createRequestHash(request7);
19810
19810
  const normalizedHeaders = normalizeHeaders(response.headers);
19811
19811
  const responseData = {
19812
19812
  statusCode: response.statusCode,
@@ -19824,7 +19824,7 @@ var require_snapshot_recorder = __commonJS({
19824
19824
  existingSnapshot.timestamp = (/* @__PURE__ */ new Date()).toISOString();
19825
19825
  } else {
19826
19826
  this.#snapshots.set(hash2, {
19827
- request: request6,
19827
+ request: request7,
19828
19828
  responses: [responseData],
19829
19829
  // Always store as array for consistency
19830
19830
  callCount: 0,
@@ -19858,8 +19858,8 @@ var require_snapshot_recorder = __commonJS({
19858
19858
  if (this.isUrlExcluded(requestOpts)) {
19859
19859
  return void 0;
19860
19860
  }
19861
- const request6 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19862
- const hash2 = createRequestHash(request6);
19861
+ const request7 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19862
+ const hash2 = createRequestHash(request7);
19863
19863
  const snapshot = this.#snapshots.get(hash2);
19864
19864
  if (!snapshot) return void 0;
19865
19865
  const currentCallCount = snapshot.callCount || 0;
@@ -19954,8 +19954,8 @@ var require_snapshot_recorder = __commonJS({
19954
19954
  * @returns {boolean} - True if snapshot was deleted, false if not found
19955
19955
  */
19956
19956
  deleteSnapshot(requestOpts) {
19957
- const request6 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19958
- const hash2 = createRequestHash(request6);
19957
+ const request7 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19958
+ const hash2 = createRequestHash(request7);
19959
19959
  return this.#snapshots.delete(hash2);
19960
19960
  }
19961
19961
  /**
@@ -19964,8 +19964,8 @@ var require_snapshot_recorder = __commonJS({
19964
19964
  * @returns {SnapshotInfo|null} - Snapshot information or null if not found
19965
19965
  */
19966
19966
  getSnapshotInfo(requestOpts) {
19967
- const request6 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19968
- const hash2 = createRequestHash(request6);
19967
+ const request7 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions);
19968
+ const hash2 = createRequestHash(request7);
19969
19969
  const snapshot = this.#snapshots.get(hash2);
19970
19970
  if (!snapshot) return null;
19971
19971
  return {
@@ -20256,16 +20256,16 @@ var require_snapshot_agent = __commonJS({
20256
20256
  */
20257
20257
  #setupMockInterceptors() {
20258
20258
  for (const snapshot of this[kSnapshotRecorder].getSnapshots()) {
20259
- const { request: request6, responses, response } = snapshot;
20260
- const url2 = new URL(request6.url);
20259
+ const { request: request7, responses, response } = snapshot;
20260
+ const url2 = new URL(request7.url);
20261
20261
  const mockPool = this.get(url2.origin);
20262
20262
  const responseData = responses ? responses[0] : response;
20263
20263
  if (!responseData) continue;
20264
20264
  mockPool.intercept({
20265
20265
  path: url2.pathname + url2.search,
20266
- method: request6.method,
20267
- headers: request6.headers,
20268
- body: request6.body
20266
+ method: request7.method,
20267
+ headers: request7.headers,
20268
+ body: request7.body
20269
20269
  }).reply(responseData.statusCode, responseData.body, {
20270
20270
  headers: responseData.headers,
20271
20271
  trailers: responseData.trailers
@@ -25566,7 +25566,7 @@ var require_request2 = __commonJS({
25566
25566
  webidl.argumentLengthCheck(arguments, 1, prefix);
25567
25567
  input2 = webidl.converters.RequestInfo(input2);
25568
25568
  init = webidl.converters.RequestInit(init);
25569
- let request6 = null;
25569
+ let request7 = null;
25570
25570
  let fallbackMode = null;
25571
25571
  const baseUrl = environmentSettingsObject.settingsObject.baseUrl;
25572
25572
  let signal = null;
@@ -25583,18 +25583,18 @@ var require_request2 = __commonJS({
25583
25583
  "Request cannot be constructed from a URL that includes credentials: " + input2
25584
25584
  );
25585
25585
  }
25586
- request6 = makeRequest({ urlList: [parsedURL] });
25586
+ request7 = makeRequest({ urlList: [parsedURL] });
25587
25587
  fallbackMode = "cors";
25588
25588
  } else {
25589
25589
  assert2(webidl.is.Request(input2));
25590
- request6 = input2.#state;
25590
+ request7 = input2.#state;
25591
25591
  signal = input2.#signal;
25592
25592
  this.#dispatcher = init.dispatcher || input2.#dispatcher;
25593
25593
  }
25594
25594
  const origin = environmentSettingsObject.settingsObject.origin;
25595
25595
  let window = "client";
25596
- if (request6.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request6.window, origin)) {
25597
- window = request6.window;
25596
+ if (request7.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request7.window, origin)) {
25597
+ window = request7.window;
25598
25598
  }
25599
25599
  if (init.window != null) {
25600
25600
  throw new TypeError(`'window' option '${window}' must be null`);
@@ -25602,66 +25602,66 @@ var require_request2 = __commonJS({
25602
25602
  if ("window" in init) {
25603
25603
  window = "no-window";
25604
25604
  }
25605
- request6 = makeRequest({
25605
+ request7 = makeRequest({
25606
25606
  // URL request’s URL.
25607
25607
  // undici implementation note: this is set as the first item in request's urlList in makeRequest
25608
25608
  // method request’s method.
25609
- method: request6.method,
25609
+ method: request7.method,
25610
25610
  // header list A copy of request’s header list.
25611
25611
  // undici implementation note: headersList is cloned in makeRequest
25612
- headersList: request6.headersList,
25612
+ headersList: request7.headersList,
25613
25613
  // unsafe-request flag Set.
25614
- unsafeRequest: request6.unsafeRequest,
25614
+ unsafeRequest: request7.unsafeRequest,
25615
25615
  // client This’s relevant settings object.
25616
25616
  client: environmentSettingsObject.settingsObject,
25617
25617
  // window window.
25618
25618
  window,
25619
25619
  // priority request’s priority.
25620
- priority: request6.priority,
25620
+ priority: request7.priority,
25621
25621
  // origin request’s origin. The propagation of the origin is only significant for navigation requests
25622
25622
  // being handled by a service worker. In this scenario a request can have an origin that is different
25623
25623
  // from the current client.
25624
- origin: request6.origin,
25624
+ origin: request7.origin,
25625
25625
  // referrer request’s referrer.
25626
- referrer: request6.referrer,
25626
+ referrer: request7.referrer,
25627
25627
  // referrer policy request’s referrer policy.
25628
- referrerPolicy: request6.referrerPolicy,
25628
+ referrerPolicy: request7.referrerPolicy,
25629
25629
  // mode request’s mode.
25630
- mode: request6.mode,
25630
+ mode: request7.mode,
25631
25631
  // credentials mode request’s credentials mode.
25632
- credentials: request6.credentials,
25632
+ credentials: request7.credentials,
25633
25633
  // cache mode request’s cache mode.
25634
- cache: request6.cache,
25634
+ cache: request7.cache,
25635
25635
  // redirect mode request’s redirect mode.
25636
- redirect: request6.redirect,
25636
+ redirect: request7.redirect,
25637
25637
  // integrity metadata request’s integrity metadata.
25638
- integrity: request6.integrity,
25638
+ integrity: request7.integrity,
25639
25639
  // keepalive request’s keepalive.
25640
- keepalive: request6.keepalive,
25640
+ keepalive: request7.keepalive,
25641
25641
  // reload-navigation flag request’s reload-navigation flag.
25642
- reloadNavigation: request6.reloadNavigation,
25642
+ reloadNavigation: request7.reloadNavigation,
25643
25643
  // history-navigation flag request’s history-navigation flag.
25644
- historyNavigation: request6.historyNavigation,
25644
+ historyNavigation: request7.historyNavigation,
25645
25645
  // URL list A clone of request’s URL list.
25646
- urlList: [...request6.urlList]
25646
+ urlList: [...request7.urlList]
25647
25647
  });
25648
25648
  const initHasKey = Object.keys(init).length !== 0;
25649
25649
  if (initHasKey) {
25650
- if (request6.mode === "navigate") {
25651
- request6.mode = "same-origin";
25650
+ if (request7.mode === "navigate") {
25651
+ request7.mode = "same-origin";
25652
25652
  }
25653
- request6.reloadNavigation = false;
25654
- request6.historyNavigation = false;
25655
- request6.origin = "client";
25656
- request6.referrer = "client";
25657
- request6.referrerPolicy = "";
25658
- request6.url = request6.urlList[request6.urlList.length - 1];
25659
- request6.urlList = [request6.url];
25653
+ request7.reloadNavigation = false;
25654
+ request7.historyNavigation = false;
25655
+ request7.origin = "client";
25656
+ request7.referrer = "client";
25657
+ request7.referrerPolicy = "";
25658
+ request7.url = request7.urlList[request7.urlList.length - 1];
25659
+ request7.urlList = [request7.url];
25660
25660
  }
25661
25661
  if (init.referrer !== void 0) {
25662
25662
  const referrer = init.referrer;
25663
25663
  if (referrer === "") {
25664
- request6.referrer = "no-referrer";
25664
+ request7.referrer = "no-referrer";
25665
25665
  } else {
25666
25666
  let parsedReferrer;
25667
25667
  try {
@@ -25670,14 +25670,14 @@ var require_request2 = __commonJS({
25670
25670
  throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err });
25671
25671
  }
25672
25672
  if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) {
25673
- request6.referrer = "client";
25673
+ request7.referrer = "client";
25674
25674
  } else {
25675
- request6.referrer = parsedReferrer;
25675
+ request7.referrer = parsedReferrer;
25676
25676
  }
25677
25677
  }
25678
25678
  }
25679
25679
  if (init.referrerPolicy !== void 0) {
25680
- request6.referrerPolicy = init.referrerPolicy;
25680
+ request7.referrerPolicy = init.referrerPolicy;
25681
25681
  }
25682
25682
  let mode;
25683
25683
  if (init.mode !== void 0) {
@@ -25692,33 +25692,33 @@ var require_request2 = __commonJS({
25692
25692
  });
25693
25693
  }
25694
25694
  if (mode != null) {
25695
- request6.mode = mode;
25695
+ request7.mode = mode;
25696
25696
  }
25697
25697
  if (init.credentials !== void 0) {
25698
- request6.credentials = init.credentials;
25698
+ request7.credentials = init.credentials;
25699
25699
  }
25700
25700
  if (init.cache !== void 0) {
25701
- request6.cache = init.cache;
25701
+ request7.cache = init.cache;
25702
25702
  }
25703
- if (request6.cache === "only-if-cached" && request6.mode !== "same-origin") {
25703
+ if (request7.cache === "only-if-cached" && request7.mode !== "same-origin") {
25704
25704
  throw new TypeError(
25705
25705
  "'only-if-cached' can be set only with 'same-origin' mode"
25706
25706
  );
25707
25707
  }
25708
25708
  if (init.redirect !== void 0) {
25709
- request6.redirect = init.redirect;
25709
+ request7.redirect = init.redirect;
25710
25710
  }
25711
25711
  if (init.integrity != null) {
25712
- request6.integrity = String(init.integrity);
25712
+ request7.integrity = String(init.integrity);
25713
25713
  }
25714
25714
  if (init.keepalive !== void 0) {
25715
- request6.keepalive = Boolean(init.keepalive);
25715
+ request7.keepalive = Boolean(init.keepalive);
25716
25716
  }
25717
25717
  if (init.method !== void 0) {
25718
25718
  let method = init.method;
25719
25719
  const mayBeNormalized = normalizedMethodRecords[method];
25720
25720
  if (mayBeNormalized !== void 0) {
25721
- request6.method = mayBeNormalized;
25721
+ request7.method = mayBeNormalized;
25722
25722
  } else {
25723
25723
  if (!isValidHTTPToken(method)) {
25724
25724
  throw new TypeError(`'${method}' is not a valid HTTP method.`);
@@ -25728,9 +25728,9 @@ var require_request2 = __commonJS({
25728
25728
  throw new TypeError(`'${method}' HTTP method is unsupported.`);
25729
25729
  }
25730
25730
  method = normalizedMethodRecordsBase[upperCase] ?? method;
25731
- request6.method = method;
25731
+ request7.method = method;
25732
25732
  }
25733
- if (!patchMethodWarning && request6.method === "patch") {
25733
+ if (!patchMethodWarning && request7.method === "patch") {
25734
25734
  process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.", {
25735
25735
  code: "UNDICI-FETCH-patch"
25736
25736
  });
@@ -25740,7 +25740,7 @@ var require_request2 = __commonJS({
25740
25740
  if (init.signal !== void 0) {
25741
25741
  signal = init.signal;
25742
25742
  }
25743
- this.#state = request6;
25743
+ this.#state = request7;
25744
25744
  const ac = new AbortController();
25745
25745
  this.#signal = ac.signal;
25746
25746
  if (signal != null) {
@@ -25758,12 +25758,12 @@ var require_request2 = __commonJS({
25758
25758
  }
25759
25759
  }
25760
25760
  this.#headers = new Headers(kConstruct);
25761
- setHeadersList(this.#headers, request6.headersList);
25761
+ setHeadersList(this.#headers, request7.headersList);
25762
25762
  setHeadersGuard(this.#headers, "request");
25763
25763
  if (mode === "no-cors") {
25764
- if (!corsSafeListedMethodsSet.has(request6.method)) {
25764
+ if (!corsSafeListedMethodsSet.has(request7.method)) {
25765
25765
  throw new TypeError(
25766
- `'${request6.method} is unsupported in no-cors mode.`
25766
+ `'${request7.method} is unsupported in no-cors mode.`
25767
25767
  );
25768
25768
  }
25769
25769
  setHeadersGuard(this.#headers, "request-no-cors");
@@ -25782,14 +25782,14 @@ var require_request2 = __commonJS({
25782
25782
  }
25783
25783
  }
25784
25784
  const inputBody = webidl.is.Request(input2) ? input2.#state.body : null;
25785
- if ((init.body != null || inputBody != null) && (request6.method === "GET" || request6.method === "HEAD")) {
25785
+ if ((init.body != null || inputBody != null) && (request7.method === "GET" || request7.method === "HEAD")) {
25786
25786
  throw new TypeError("Request with GET/HEAD method cannot have body.");
25787
25787
  }
25788
25788
  let initBody = null;
25789
25789
  if (init.body != null) {
25790
25790
  const [extractedBody, contentType] = extractBody(
25791
25791
  init.body,
25792
- request6.keepalive
25792
+ request7.keepalive
25793
25793
  );
25794
25794
  initBody = extractedBody;
25795
25795
  if (contentType && !getHeadersList(this.#headers).contains("content-type", true)) {
@@ -25801,12 +25801,12 @@ var require_request2 = __commonJS({
25801
25801
  if (initBody != null && init.duplex == null) {
25802
25802
  throw new TypeError("RequestInit: duplex option is required when sending a body.");
25803
25803
  }
25804
- if (request6.mode !== "same-origin" && request6.mode !== "cors") {
25804
+ if (request7.mode !== "same-origin" && request7.mode !== "cors") {
25805
25805
  throw new TypeError(
25806
25806
  'If request is made from ReadableStream, mode should be "same-origin" or "cors"'
25807
25807
  );
25808
25808
  }
25809
- request6.useCORSPreflightFlag = true;
25809
+ request7.useCORSPreflightFlag = true;
25810
25810
  }
25811
25811
  let finalBody = inputOrInitBody;
25812
25812
  if (initBody == null && inputBody != null) {
@@ -25996,42 +25996,42 @@ var require_request2 = __commonJS({
25996
25996
  * @param {Request} request
25997
25997
  * @param {AbortSignal} newSignal
25998
25998
  */
25999
- static setRequestSignal(request6, newSignal) {
26000
- request6.#signal = newSignal;
26001
- return request6;
25999
+ static setRequestSignal(request7, newSignal) {
26000
+ request7.#signal = newSignal;
26001
+ return request7;
26002
26002
  }
26003
26003
  /**
26004
26004
  * @param {Request} request
26005
26005
  */
26006
- static getRequestDispatcher(request6) {
26007
- return request6.#dispatcher;
26006
+ static getRequestDispatcher(request7) {
26007
+ return request7.#dispatcher;
26008
26008
  }
26009
26009
  /**
26010
26010
  * @param {Request} request
26011
26011
  * @param {import('../../dispatcher/dispatcher')} newDispatcher
26012
26012
  */
26013
- static setRequestDispatcher(request6, newDispatcher) {
26014
- request6.#dispatcher = newDispatcher;
26013
+ static setRequestDispatcher(request7, newDispatcher) {
26014
+ request7.#dispatcher = newDispatcher;
26015
26015
  }
26016
26016
  /**
26017
26017
  * @param {Request} request
26018
26018
  * @param {Headers} newHeaders
26019
26019
  */
26020
- static setRequestHeaders(request6, newHeaders) {
26021
- request6.#headers = newHeaders;
26020
+ static setRequestHeaders(request7, newHeaders) {
26021
+ request7.#headers = newHeaders;
26022
26022
  }
26023
26023
  /**
26024
26024
  * @param {Request} request
26025
26025
  */
26026
- static getRequestState(request6) {
26027
- return request6.#state;
26026
+ static getRequestState(request7) {
26027
+ return request7.#state;
26028
26028
  }
26029
26029
  /**
26030
26030
  * @param {Request} request
26031
26031
  * @param {any} newState
26032
26032
  */
26033
- static setRequestState(request6, newState) {
26034
- request6.#state = newState;
26033
+ static setRequestState(request7, newState) {
26034
+ request7.#state = newState;
26035
26035
  }
26036
26036
  };
26037
26037
  var { setRequestSignal, getRequestDispatcher, setRequestDispatcher, setRequestHeaders, getRequestState, setRequestState } = Request;
@@ -26086,23 +26086,23 @@ var require_request2 = __commonJS({
26086
26086
  headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList()
26087
26087
  };
26088
26088
  }
26089
- function cloneRequest(request6) {
26090
- const newRequest = makeRequest({ ...request6, body: null });
26091
- if (request6.body != null) {
26092
- newRequest.body = cloneBody(request6.body);
26089
+ function cloneRequest(request7) {
26090
+ const newRequest = makeRequest({ ...request7, body: null });
26091
+ if (request7.body != null) {
26092
+ newRequest.body = cloneBody(request7.body);
26093
26093
  }
26094
26094
  return newRequest;
26095
26095
  }
26096
26096
  function fromInnerRequest(innerRequest, dispatcher, signal, guard) {
26097
- const request6 = new Request(kConstruct);
26098
- setRequestState(request6, innerRequest);
26099
- setRequestDispatcher(request6, dispatcher);
26100
- setRequestSignal(request6, signal);
26097
+ const request7 = new Request(kConstruct);
26098
+ setRequestState(request7, innerRequest);
26099
+ setRequestDispatcher(request7, dispatcher);
26100
+ setRequestSignal(request7, signal);
26101
26101
  const headers = new Headers(kConstruct);
26102
- setRequestHeaders(request6, headers);
26102
+ setRequestHeaders(request7, headers);
26103
26103
  setHeadersList(headers, innerRequest.headersList);
26104
26104
  setHeadersGuard(headers, guard);
26105
- return request6;
26105
+ return request7;
26106
26106
  }
26107
26107
  Object.defineProperties(Request.prototype, {
26108
26108
  method: kEnumerableProperty,
@@ -26494,14 +26494,14 @@ var require_fetch = __commonJS({
26494
26494
  p.reject(e);
26495
26495
  return p.promise;
26496
26496
  }
26497
- const request6 = getRequestState(requestObject);
26497
+ const request7 = getRequestState(requestObject);
26498
26498
  if (requestObject.signal.aborted) {
26499
- abortFetch(p, request6, null, requestObject.signal.reason, null);
26499
+ abortFetch(p, request7, null, requestObject.signal.reason, null);
26500
26500
  return p.promise;
26501
26501
  }
26502
- const globalObject = request6.client.globalObject;
26502
+ const globalObject = request7.client.globalObject;
26503
26503
  if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") {
26504
- request6.serviceWorkers = "none";
26504
+ request7.serviceWorkers = "none";
26505
26505
  }
26506
26506
  let responseObject = null;
26507
26507
  let locallyAborted = false;
@@ -26513,7 +26513,7 @@ var require_fetch = __commonJS({
26513
26513
  assert2(controller != null);
26514
26514
  controller.abort(requestObject.signal.reason);
26515
26515
  const realResponse = responseObject?.deref();
26516
- abortFetch(p, request6, realResponse, requestObject.signal.reason, controller.controller);
26516
+ abortFetch(p, request7, realResponse, requestObject.signal.reason, controller.controller);
26517
26517
  }
26518
26518
  );
26519
26519
  const processResponse = (response) => {
@@ -26521,7 +26521,7 @@ var require_fetch = __commonJS({
26521
26521
  return;
26522
26522
  }
26523
26523
  if (response.aborted) {
26524
- abortFetch(p, request6, responseObject, controller.serializedAbortReason, controller.controller);
26524
+ abortFetch(p, request7, responseObject, controller.serializedAbortReason, controller.controller);
26525
26525
  return;
26526
26526
  }
26527
26527
  if (response.type === "error") {
@@ -26533,7 +26533,7 @@ var require_fetch = __commonJS({
26533
26533
  p = null;
26534
26534
  };
26535
26535
  controller = fetching({
26536
- request: request6,
26536
+ request: request7,
26537
26537
  processResponseEndOfBody: handleFetchDone,
26538
26538
  processResponse,
26539
26539
  dispatcher: getRequestDispatcher(requestObject),
@@ -26580,12 +26580,12 @@ var require_fetch = __commonJS({
26580
26580
  );
26581
26581
  }
26582
26582
  var markResourceTiming = performance.markResourceTiming;
26583
- function abortFetch(p, request6, responseObject, error62, controller) {
26583
+ function abortFetch(p, request7, responseObject, error62, controller) {
26584
26584
  if (p) {
26585
26585
  p.reject(error62);
26586
26586
  }
26587
- if (request6.body?.stream != null && isReadable(request6.body.stream)) {
26588
- request6.body.stream.cancel(error62).catch((err) => {
26587
+ if (request7.body?.stream != null && isReadable(request7.body.stream)) {
26588
+ request7.body.stream.cancel(error62).catch((err) => {
26589
26589
  if (err.code === "ERR_INVALID_STATE") {
26590
26590
  return;
26591
26591
  }
@@ -26601,7 +26601,7 @@ var require_fetch = __commonJS({
26601
26601
  }
26602
26602
  }
26603
26603
  function fetching({
26604
- request: request6,
26604
+ request: request7,
26605
26605
  processRequestBodyChunkLength,
26606
26606
  processRequestEndOfBody,
26607
26607
  processResponse,
@@ -26616,9 +26616,9 @@ var require_fetch = __commonJS({
26616
26616
  assert2(dispatcher);
26617
26617
  let taskDestination = null;
26618
26618
  let crossOriginIsolatedCapability = false;
26619
- if (request6.client != null) {
26620
- taskDestination = request6.client.globalObject;
26621
- crossOriginIsolatedCapability = request6.client.crossOriginIsolatedCapability;
26619
+ if (request7.client != null) {
26620
+ taskDestination = request7.client.globalObject;
26621
+ crossOriginIsolatedCapability = request7.client.crossOriginIsolatedCapability;
26622
26622
  }
26623
26623
  const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability);
26624
26624
  const timingInfo = createOpaqueTimingInfo({
@@ -26626,7 +26626,7 @@ var require_fetch = __commonJS({
26626
26626
  });
26627
26627
  const fetchParams = {
26628
26628
  controller: new Fetch(dispatcher),
26629
- request: request6,
26629
+ request: request7,
26630
26630
  timingInfo,
26631
26631
  processRequestBodyChunkLength,
26632
26632
  processRequestEndOfBody,
@@ -26638,79 +26638,79 @@ var require_fetch = __commonJS({
26638
26638
  // Keep requestObject alive to prevent its AbortController from being GC'd
26639
26639
  requestObject
26640
26640
  };
26641
- assert2(!request6.body || request6.body.stream);
26642
- if (request6.window === "client") {
26643
- request6.window = request6.client?.globalObject?.constructor?.name === "Window" ? request6.client : "no-window";
26641
+ assert2(!request7.body || request7.body.stream);
26642
+ if (request7.window === "client") {
26643
+ request7.window = request7.client?.globalObject?.constructor?.name === "Window" ? request7.client : "no-window";
26644
26644
  }
26645
- if (request6.origin === "client") {
26646
- request6.origin = request6.client.origin;
26645
+ if (request7.origin === "client") {
26646
+ request7.origin = request7.client.origin;
26647
26647
  }
26648
- if (request6.policyContainer === "client") {
26649
- if (request6.client != null) {
26650
- request6.policyContainer = clonePolicyContainer(
26651
- request6.client.policyContainer
26648
+ if (request7.policyContainer === "client") {
26649
+ if (request7.client != null) {
26650
+ request7.policyContainer = clonePolicyContainer(
26651
+ request7.client.policyContainer
26652
26652
  );
26653
26653
  } else {
26654
- request6.policyContainer = makePolicyContainer();
26654
+ request7.policyContainer = makePolicyContainer();
26655
26655
  }
26656
26656
  }
26657
- if (!request6.headersList.contains("accept", true)) {
26657
+ if (!request7.headersList.contains("accept", true)) {
26658
26658
  const value = "*/*";
26659
- request6.headersList.append("accept", value, true);
26659
+ request7.headersList.append("accept", value, true);
26660
26660
  }
26661
- if (!request6.headersList.contains("accept-language", true)) {
26662
- request6.headersList.append("accept-language", "*", true);
26661
+ if (!request7.headersList.contains("accept-language", true)) {
26662
+ request7.headersList.append("accept-language", "*", true);
26663
26663
  }
26664
- if (request6.priority === null) {
26664
+ if (request7.priority === null) {
26665
26665
  }
26666
- if (subresourceSet.has(request6.destination)) {
26666
+ if (subresourceSet.has(request7.destination)) {
26667
26667
  }
26668
26668
  mainFetch(fetchParams, false);
26669
26669
  return fetchParams.controller;
26670
26670
  }
26671
26671
  async function mainFetch(fetchParams, recursive2) {
26672
26672
  try {
26673
- const request6 = fetchParams.request;
26673
+ const request7 = fetchParams.request;
26674
26674
  let response = null;
26675
- if (request6.localURLsOnly && !urlIsLocal(requestCurrentURL(request6))) {
26675
+ if (request7.localURLsOnly && !urlIsLocal(requestCurrentURL(request7))) {
26676
26676
  response = makeNetworkError("local URLs only");
26677
26677
  }
26678
- tryUpgradeRequestToAPotentiallyTrustworthyURL(request6);
26679
- if (requestBadPort(request6) === "blocked") {
26678
+ tryUpgradeRequestToAPotentiallyTrustworthyURL(request7);
26679
+ if (requestBadPort(request7) === "blocked") {
26680
26680
  response = makeNetworkError("bad port");
26681
26681
  }
26682
- if (request6.referrerPolicy === "") {
26683
- request6.referrerPolicy = request6.policyContainer.referrerPolicy;
26682
+ if (request7.referrerPolicy === "") {
26683
+ request7.referrerPolicy = request7.policyContainer.referrerPolicy;
26684
26684
  }
26685
- if (request6.referrer !== "no-referrer") {
26686
- request6.referrer = determineRequestsReferrer(request6);
26685
+ if (request7.referrer !== "no-referrer") {
26686
+ request7.referrer = determineRequestsReferrer(request7);
26687
26687
  }
26688
26688
  if (response === null) {
26689
- const currentURL = requestCurrentURL(request6);
26689
+ const currentURL = requestCurrentURL(request7);
26690
26690
  if (
26691
26691
  // - request’s current URL’s origin is same origin with request’s origin,
26692
26692
  // and request’s response tainting is "basic"
26693
- sameOrigin(currentURL, request6.url) && request6.responseTainting === "basic" || // request’s current URL’s scheme is "data"
26693
+ sameOrigin(currentURL, request7.url) && request7.responseTainting === "basic" || // request’s current URL’s scheme is "data"
26694
26694
  currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket"
26695
- (request6.mode === "navigate" || request6.mode === "websocket")
26695
+ (request7.mode === "navigate" || request7.mode === "websocket")
26696
26696
  ) {
26697
- request6.responseTainting = "basic";
26697
+ request7.responseTainting = "basic";
26698
26698
  response = await schemeFetch(fetchParams);
26699
- } else if (request6.mode === "same-origin") {
26699
+ } else if (request7.mode === "same-origin") {
26700
26700
  response = makeNetworkError('request mode cannot be "same-origin"');
26701
- } else if (request6.mode === "no-cors") {
26702
- if (request6.redirect !== "follow") {
26701
+ } else if (request7.mode === "no-cors") {
26702
+ if (request7.redirect !== "follow") {
26703
26703
  response = makeNetworkError(
26704
26704
  'redirect mode cannot be "follow" for "no-cors" request'
26705
26705
  );
26706
26706
  } else {
26707
- request6.responseTainting = "opaque";
26707
+ request7.responseTainting = "opaque";
26708
26708
  response = await schemeFetch(fetchParams);
26709
26709
  }
26710
- } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request6))) {
26710
+ } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request7))) {
26711
26711
  response = makeNetworkError("URL scheme must be a HTTP(S) scheme");
26712
26712
  } else {
26713
- request6.responseTainting = "cors";
26713
+ request7.responseTainting = "cors";
26714
26714
  response = await httpFetch(fetchParams);
26715
26715
  }
26716
26716
  }
@@ -26718,13 +26718,13 @@ var require_fetch = __commonJS({
26718
26718
  return response;
26719
26719
  }
26720
26720
  if (response.status !== 0 && !response.internalResponse) {
26721
- if (request6.responseTainting === "cors") {
26721
+ if (request7.responseTainting === "cors") {
26722
26722
  }
26723
- if (request6.responseTainting === "basic") {
26723
+ if (request7.responseTainting === "basic") {
26724
26724
  response = filterResponse(response, "basic");
26725
- } else if (request6.responseTainting === "cors") {
26725
+ } else if (request7.responseTainting === "cors") {
26726
26726
  response = filterResponse(response, "cors");
26727
- } else if (request6.responseTainting === "opaque") {
26727
+ } else if (request7.responseTainting === "opaque") {
26728
26728
  response = filterResponse(response, "opaque");
26729
26729
  } else {
26730
26730
  assert2(false);
@@ -26732,26 +26732,26 @@ var require_fetch = __commonJS({
26732
26732
  }
26733
26733
  let internalResponse = response.status === 0 ? response : response.internalResponse;
26734
26734
  if (internalResponse.urlList.length === 0) {
26735
- internalResponse.urlList.push(...request6.urlList);
26735
+ internalResponse.urlList.push(...request7.urlList);
26736
26736
  }
26737
- if (!request6.timingAllowFailed) {
26737
+ if (!request7.timingAllowFailed) {
26738
26738
  response.timingAllowPassed = true;
26739
26739
  }
26740
- if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request6.headers.contains("range", true)) {
26740
+ if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request7.headers.contains("range", true)) {
26741
26741
  response = internalResponse = makeNetworkError();
26742
26742
  }
26743
- if (response.status !== 0 && (request6.method === "HEAD" || request6.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
26743
+ if (response.status !== 0 && (request7.method === "HEAD" || request7.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) {
26744
26744
  internalResponse.body = null;
26745
26745
  fetchParams.controller.dump = true;
26746
26746
  }
26747
- if (request6.integrity) {
26747
+ if (request7.integrity) {
26748
26748
  const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason));
26749
- if (request6.responseTainting === "opaque" || response.body == null) {
26749
+ if (request7.responseTainting === "opaque" || response.body == null) {
26750
26750
  processBodyError(response.error);
26751
26751
  return;
26752
26752
  }
26753
26753
  const processBody = (bytes) => {
26754
- if (!bytesMatch(bytes, request6.integrity)) {
26754
+ if (!bytesMatch(bytes, request7.integrity)) {
26755
26755
  processBodyError("integrity mismatch");
26756
26756
  return;
26757
26757
  }
@@ -26770,8 +26770,8 @@ var require_fetch = __commonJS({
26770
26770
  if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {
26771
26771
  return Promise.resolve(makeAppropriateNetworkError(fetchParams));
26772
26772
  }
26773
- const { request: request6 } = fetchParams;
26774
- const { protocol: scheme } = requestCurrentURL(request6);
26773
+ const { request: request7 } = fetchParams;
26774
+ const { protocol: scheme } = requestCurrentURL(request7);
26775
26775
  switch (scheme) {
26776
26776
  case "about:": {
26777
26777
  return Promise.resolve(makeNetworkError("about scheme is not supported"));
@@ -26780,19 +26780,19 @@ var require_fetch = __commonJS({
26780
26780
  if (!resolveObjectURL) {
26781
26781
  resolveObjectURL = require("node:buffer").resolveObjectURL;
26782
26782
  }
26783
- const blobURLEntry = requestCurrentURL(request6);
26783
+ const blobURLEntry = requestCurrentURL(request7);
26784
26784
  if (blobURLEntry.search.length !== 0) {
26785
26785
  return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource."));
26786
26786
  }
26787
26787
  const blob = resolveObjectURL(blobURLEntry.toString());
26788
- if (request6.method !== "GET" || !webidl.is.Blob(blob)) {
26788
+ if (request7.method !== "GET" || !webidl.is.Blob(blob)) {
26789
26789
  return Promise.resolve(makeNetworkError("invalid method"));
26790
26790
  }
26791
26791
  const response = makeResponse();
26792
26792
  const fullLength = blob.size;
26793
26793
  const serializedFullLength = isomorphicEncode(`${fullLength}`);
26794
26794
  const type = blob.type;
26795
- if (!request6.headersList.contains("range", true)) {
26795
+ if (!request7.headersList.contains("range", true)) {
26796
26796
  const bodyWithType = extractBody(blob);
26797
26797
  response.statusText = "OK";
26798
26798
  response.body = bodyWithType[0];
@@ -26800,7 +26800,7 @@ var require_fetch = __commonJS({
26800
26800
  response.headersList.set("content-type", type, true);
26801
26801
  } else {
26802
26802
  response.rangeRequested = true;
26803
- const rangeHeader = request6.headersList.get("range", true);
26803
+ const rangeHeader = request7.headersList.get("range", true);
26804
26804
  const rangeValue = simpleRangeHeaderValue(rangeHeader, true);
26805
26805
  if (rangeValue === "failure") {
26806
26806
  return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
@@ -26831,7 +26831,7 @@ var require_fetch = __commonJS({
26831
26831
  return Promise.resolve(response);
26832
26832
  }
26833
26833
  case "data:": {
26834
- const currentURL = requestCurrentURL(request6);
26834
+ const currentURL = requestCurrentURL(request7);
26835
26835
  const dataURLStruct = dataURLProcessor(currentURL);
26836
26836
  if (dataURLStruct === "failure") {
26837
26837
  return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
@@ -26920,41 +26920,41 @@ var require_fetch = __commonJS({
26920
26920
  }
26921
26921
  }
26922
26922
  async function httpFetch(fetchParams) {
26923
- const request6 = fetchParams.request;
26923
+ const request7 = fetchParams.request;
26924
26924
  let response = null;
26925
26925
  let actualResponse = null;
26926
26926
  const timingInfo = fetchParams.timingInfo;
26927
- if (request6.serviceWorkers === "all") {
26927
+ if (request7.serviceWorkers === "all") {
26928
26928
  }
26929
26929
  if (response === null) {
26930
- if (request6.redirect === "follow") {
26931
- request6.serviceWorkers = "none";
26930
+ if (request7.redirect === "follow") {
26931
+ request7.serviceWorkers = "none";
26932
26932
  }
26933
26933
  actualResponse = response = await httpNetworkOrCacheFetch(fetchParams);
26934
- if (request6.responseTainting === "cors" && corsCheck(request6, response) === "failure") {
26934
+ if (request7.responseTainting === "cors" && corsCheck(request7, response) === "failure") {
26935
26935
  return makeNetworkError("cors failure");
26936
26936
  }
26937
- if (TAOCheck(request6, response) === "failure") {
26938
- request6.timingAllowFailed = true;
26937
+ if (TAOCheck(request7, response) === "failure") {
26938
+ request7.timingAllowFailed = true;
26939
26939
  }
26940
26940
  }
26941
- if ((request6.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
26942
- request6.origin,
26943
- request6.client,
26944
- request6.destination,
26941
+ if ((request7.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck(
26942
+ request7.origin,
26943
+ request7.client,
26944
+ request7.destination,
26945
26945
  actualResponse
26946
26946
  ) === "blocked") {
26947
26947
  return makeNetworkError("blocked");
26948
26948
  }
26949
26949
  if (redirectStatusSet.has(actualResponse.status)) {
26950
- if (request6.redirect !== "manual") {
26950
+ if (request7.redirect !== "manual") {
26951
26951
  fetchParams.controller.connection.destroy(void 0, false);
26952
26952
  }
26953
- if (request6.redirect === "error") {
26953
+ if (request7.redirect === "error") {
26954
26954
  response = makeNetworkError("unexpected redirect");
26955
- } else if (request6.redirect === "manual") {
26955
+ } else if (request7.redirect === "manual") {
26956
26956
  response = actualResponse;
26957
- } else if (request6.redirect === "follow") {
26957
+ } else if (request7.redirect === "follow") {
26958
26958
  response = await httpRedirectFetch(fetchParams, response);
26959
26959
  } else {
26960
26960
  assert2(false);
@@ -26964,13 +26964,13 @@ var require_fetch = __commonJS({
26964
26964
  return response;
26965
26965
  }
26966
26966
  function httpRedirectFetch(fetchParams, response) {
26967
- const request6 = fetchParams.request;
26967
+ const request7 = fetchParams.request;
26968
26968
  const actualResponse = response.internalResponse ? response.internalResponse : response;
26969
26969
  let locationURL;
26970
26970
  try {
26971
26971
  locationURL = responseLocationURL(
26972
26972
  actualResponse,
26973
- requestCurrentURL(request6).hash
26973
+ requestCurrentURL(request7).hash
26974
26974
  );
26975
26975
  if (locationURL == null) {
26976
26976
  return response;
@@ -26981,63 +26981,63 @@ var require_fetch = __commonJS({
26981
26981
  if (!urlIsHttpHttpsScheme(locationURL)) {
26982
26982
  return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"));
26983
26983
  }
26984
- if (request6.redirectCount === 20) {
26984
+ if (request7.redirectCount === 20) {
26985
26985
  return Promise.resolve(makeNetworkError("redirect count exceeded"));
26986
26986
  }
26987
- request6.redirectCount += 1;
26988
- if (request6.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request6, locationURL)) {
26987
+ request7.redirectCount += 1;
26988
+ if (request7.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request7, locationURL)) {
26989
26989
  return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"'));
26990
26990
  }
26991
- if (request6.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
26991
+ if (request7.responseTainting === "cors" && (locationURL.username || locationURL.password)) {
26992
26992
  return Promise.resolve(makeNetworkError(
26993
26993
  'URL cannot contain credentials for request mode "cors"'
26994
26994
  ));
26995
26995
  }
26996
- if (actualResponse.status !== 303 && request6.body != null && request6.body.source == null) {
26996
+ if (actualResponse.status !== 303 && request7.body != null && request7.body.source == null) {
26997
26997
  return Promise.resolve(makeNetworkError());
26998
26998
  }
26999
- if ([301, 302].includes(actualResponse.status) && request6.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request6.method)) {
27000
- request6.method = "GET";
27001
- request6.body = null;
26999
+ if ([301, 302].includes(actualResponse.status) && request7.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request7.method)) {
27000
+ request7.method = "GET";
27001
+ request7.body = null;
27002
27002
  for (const headerName of requestBodyHeader) {
27003
- request6.headersList.delete(headerName);
27003
+ request7.headersList.delete(headerName);
27004
27004
  }
27005
27005
  }
27006
- if (!sameOrigin(requestCurrentURL(request6), locationURL)) {
27007
- request6.headersList.delete("authorization", true);
27008
- request6.headersList.delete("proxy-authorization", true);
27009
- request6.headersList.delete("cookie", true);
27010
- request6.headersList.delete("host", true);
27006
+ if (!sameOrigin(requestCurrentURL(request7), locationURL)) {
27007
+ request7.headersList.delete("authorization", true);
27008
+ request7.headersList.delete("proxy-authorization", true);
27009
+ request7.headersList.delete("cookie", true);
27010
+ request7.headersList.delete("host", true);
27011
27011
  }
27012
- if (request6.body != null) {
27013
- assert2(request6.body.source != null);
27014
- request6.body = safelyExtractBody(request6.body.source)[0];
27012
+ if (request7.body != null) {
27013
+ assert2(request7.body.source != null);
27014
+ request7.body = safelyExtractBody(request7.body.source)[0];
27015
27015
  }
27016
27016
  const timingInfo = fetchParams.timingInfo;
27017
27017
  timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);
27018
27018
  if (timingInfo.redirectStartTime === 0) {
27019
27019
  timingInfo.redirectStartTime = timingInfo.startTime;
27020
27020
  }
27021
- request6.urlList.push(locationURL);
27022
- setRequestReferrerPolicyOnRedirect(request6, actualResponse);
27021
+ request7.urlList.push(locationURL);
27022
+ setRequestReferrerPolicyOnRedirect(request7, actualResponse);
27023
27023
  return mainFetch(fetchParams, true);
27024
27024
  }
27025
27025
  async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) {
27026
- const request6 = fetchParams.request;
27026
+ const request7 = fetchParams.request;
27027
27027
  let httpFetchParams = null;
27028
27028
  let httpRequest = null;
27029
27029
  let response = null;
27030
27030
  const httpCache = null;
27031
27031
  const revalidatingFlag = false;
27032
- if (request6.window === "no-window" && request6.redirect === "error") {
27032
+ if (request7.window === "no-window" && request7.redirect === "error") {
27033
27033
  httpFetchParams = fetchParams;
27034
- httpRequest = request6;
27034
+ httpRequest = request7;
27035
27035
  } else {
27036
- httpRequest = cloneRequest(request6);
27036
+ httpRequest = cloneRequest(request7);
27037
27037
  httpFetchParams = { ...fetchParams };
27038
27038
  httpFetchParams.request = httpRequest;
27039
27039
  }
27040
- const includeCredentials = request6.credentials === "include" || request6.credentials === "same-origin" && request6.responseTainting === "basic";
27040
+ const includeCredentials = request7.credentials === "include" || request7.credentials === "same-origin" && request7.responseTainting === "basic";
27041
27041
  const contentLength = httpRequest.body ? httpRequest.body.length : null;
27042
27042
  let contentLengthHeaderValue = null;
27043
27043
  if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) {
@@ -27124,14 +27124,14 @@ var require_fetch = __commonJS({
27124
27124
  response.rangeRequested = true;
27125
27125
  }
27126
27126
  response.requestIncludesCredentials = includeCredentials;
27127
- if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request6.useURLCredentials !== void 0 || isTraversableNavigable(request6.traversableForUserPrompts))) {
27128
- if (request6.body != null) {
27129
- if (request6.body.source == null) {
27127
+ if (response.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request7.useURLCredentials !== void 0 || isTraversableNavigable(request7.traversableForUserPrompts))) {
27128
+ if (request7.body != null) {
27129
+ if (request7.body.source == null) {
27130
27130
  return response;
27131
27131
  }
27132
- request6.body = safelyExtractBody(request6.body.source)[0];
27132
+ request7.body = safelyExtractBody(request7.body.source)[0];
27133
27133
  }
27134
- if (request6.useURLCredentials === void 0 || isAuthenticationFetch) {
27134
+ if (request7.useURLCredentials === void 0 || isAuthenticationFetch) {
27135
27135
  if (isCancelled(fetchParams)) {
27136
27136
  return makeAppropriateNetworkError(fetchParams);
27137
27137
  }
@@ -27141,7 +27141,7 @@ var require_fetch = __commonJS({
27141
27141
  response = await httpNetworkOrCacheFetch(fetchParams, true);
27142
27142
  }
27143
27143
  if (response.status === 407) {
27144
- if (request6.window === "no-window") {
27144
+ if (request7.window === "no-window") {
27145
27145
  return makeNetworkError();
27146
27146
  }
27147
27147
  if (isCancelled(fetchParams)) {
@@ -27153,7 +27153,7 @@ var require_fetch = __commonJS({
27153
27153
  // response’s status is 421
27154
27154
  response.status === 421 && // isNewConnectionFetch is false
27155
27155
  !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null
27156
- (request6.body == null || request6.body.source != null)
27156
+ (request7.body == null || request7.body.source != null)
27157
27157
  ) {
27158
27158
  if (isCancelled(fetchParams)) {
27159
27159
  return makeAppropriateNetworkError(fetchParams);
@@ -27183,21 +27183,21 @@ var require_fetch = __commonJS({
27183
27183
  }
27184
27184
  }
27185
27185
  };
27186
- const request6 = fetchParams.request;
27186
+ const request7 = fetchParams.request;
27187
27187
  let response = null;
27188
27188
  const timingInfo = fetchParams.timingInfo;
27189
27189
  const httpCache = null;
27190
27190
  if (httpCache == null) {
27191
- request6.cache = "no-store";
27191
+ request7.cache = "no-store";
27192
27192
  }
27193
27193
  const newConnection = forceNewConnection ? "yes" : "no";
27194
- if (request6.mode === "websocket") {
27194
+ if (request7.mode === "websocket") {
27195
27195
  } else {
27196
27196
  }
27197
27197
  let requestBody = null;
27198
- if (request6.body == null && fetchParams.processRequestEndOfBody) {
27198
+ if (request7.body == null && fetchParams.processRequestEndOfBody) {
27199
27199
  queueMicrotask(() => fetchParams.processRequestEndOfBody());
27200
- } else if (request6.body != null) {
27200
+ } else if (request7.body != null) {
27201
27201
  const processBodyChunk = async function* (bytes) {
27202
27202
  if (isCancelled(fetchParams)) {
27203
27203
  return;
@@ -27225,7 +27225,7 @@ var require_fetch = __commonJS({
27225
27225
  };
27226
27226
  requestBody = (async function* () {
27227
27227
  try {
27228
- for await (const bytes of request6.body.stream) {
27228
+ for await (const bytes of request7.body.stream) {
27229
27229
  yield* processBodyChunk(bytes);
27230
27230
  }
27231
27231
  processEndOfBody();
@@ -27332,7 +27332,7 @@ var require_fetch = __commonJS({
27332
27332
  }
27333
27333
  return response;
27334
27334
  function dispatch({ body }) {
27335
- const url2 = requestCurrentURL(request6);
27335
+ const url2 = requestCurrentURL(request7);
27336
27336
  const agent = fetchParams.controller.dispatcher;
27337
27337
  const path41 = url2.pathname + url2.search;
27338
27338
  const hasTrailingQuestionMark = url2.search.length === 0 && url2.href[url2.href.length - url2.hash.length - 1] === "?";
@@ -27340,11 +27340,11 @@ var require_fetch = __commonJS({
27340
27340
  {
27341
27341
  path: hasTrailingQuestionMark ? `${path41}?` : path41,
27342
27342
  origin: url2.origin,
27343
- method: request6.method,
27344
- body: agent.isMockActive ? request6.body && (request6.body.source || request6.body.stream) : body,
27345
- headers: request6.headersList.entries,
27343
+ method: request7.method,
27344
+ body: agent.isMockActive ? request7.body && (request7.body.source || request7.body.stream) : body,
27345
+ headers: request7.headersList.entries,
27346
27346
  maxRedirections: 0,
27347
- upgrade: request6.mode === "websocket" ? "websocket" : void 0
27347
+ upgrade: request7.mode === "websocket" ? "websocket" : void 0
27348
27348
  },
27349
27349
  {
27350
27350
  body: null,
@@ -27381,9 +27381,9 @@ var require_fetch = __commonJS({
27381
27381
  }
27382
27382
  const location = headersList.get("location", true);
27383
27383
  this.body = new Readable({ read: resume });
27384
- const willFollow = location && request6.redirect === "follow" && redirectStatusSet.has(status);
27384
+ const willFollow = location && request7.redirect === "follow" && redirectStatusSet.has(status);
27385
27385
  const decoders = [];
27386
- if (request6.method !== "HEAD" && request6.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) {
27386
+ if (request7.method !== "HEAD" && request7.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) {
27387
27387
  const contentEncoding = headersList.get("content-encoding", true);
27388
27388
  const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : [];
27389
27389
  const maxContentEncodings = 5;
@@ -27579,31 +27579,31 @@ var require_cache3 = __commonJS({
27579
27579
  webidl.util.markAsUncloneable(this);
27580
27580
  this.#relevantRequestResponseList = arguments[1];
27581
27581
  }
27582
- async match(request6, options = {}) {
27582
+ async match(request7, options = {}) {
27583
27583
  webidl.brandCheck(this, _Cache);
27584
27584
  const prefix = "Cache.match";
27585
27585
  webidl.argumentLengthCheck(arguments, 1, prefix);
27586
- request6 = webidl.converters.RequestInfo(request6);
27586
+ request7 = webidl.converters.RequestInfo(request7);
27587
27587
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
27588
- const p = this.#internalMatchAll(request6, options, 1);
27588
+ const p = this.#internalMatchAll(request7, options, 1);
27589
27589
  if (p.length === 0) {
27590
27590
  return;
27591
27591
  }
27592
27592
  return p[0];
27593
27593
  }
27594
- async matchAll(request6 = void 0, options = {}) {
27594
+ async matchAll(request7 = void 0, options = {}) {
27595
27595
  webidl.brandCheck(this, _Cache);
27596
27596
  const prefix = "Cache.matchAll";
27597
- if (request6 !== void 0) request6 = webidl.converters.RequestInfo(request6);
27597
+ if (request7 !== void 0) request7 = webidl.converters.RequestInfo(request7);
27598
27598
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
27599
- return this.#internalMatchAll(request6, options);
27599
+ return this.#internalMatchAll(request7, options);
27600
27600
  }
27601
- async add(request6) {
27601
+ async add(request7) {
27602
27602
  webidl.brandCheck(this, _Cache);
27603
27603
  const prefix = "Cache.add";
27604
27604
  webidl.argumentLengthCheck(arguments, 1, prefix);
27605
- request6 = webidl.converters.RequestInfo(request6);
27606
- const requests = [request6];
27605
+ request7 = webidl.converters.RequestInfo(request7);
27606
+ const requests = [request7];
27607
27607
  const responseArrayPromise = this.addAll(requests);
27608
27608
  return await responseArrayPromise;
27609
27609
  }
@@ -27613,19 +27613,19 @@ var require_cache3 = __commonJS({
27613
27613
  webidl.argumentLengthCheck(arguments, 1, prefix);
27614
27614
  const responsePromises = [];
27615
27615
  const requestList = [];
27616
- for (let request6 of requests) {
27617
- if (request6 === void 0) {
27616
+ for (let request7 of requests) {
27617
+ if (request7 === void 0) {
27618
27618
  throw webidl.errors.conversionFailed({
27619
27619
  prefix,
27620
27620
  argument: "Argument 1",
27621
27621
  types: ["undefined is not allowed"]
27622
27622
  });
27623
27623
  }
27624
- request6 = webidl.converters.RequestInfo(request6);
27625
- if (typeof request6 === "string") {
27624
+ request7 = webidl.converters.RequestInfo(request7);
27625
+ if (typeof request7 === "string") {
27626
27626
  continue;
27627
27627
  }
27628
- const r2 = getRequestState(request6);
27628
+ const r2 = getRequestState(request7);
27629
27629
  if (!urlIsHttpHttpsScheme(r2.url) || r2.method !== "GET") {
27630
27630
  throw webidl.errors.exception({
27631
27631
  header: prefix,
@@ -27634,8 +27634,8 @@ var require_cache3 = __commonJS({
27634
27634
  }
27635
27635
  }
27636
27636
  const fetchControllers = [];
27637
- for (const request6 of requests) {
27638
- const r2 = getRequestState(new Request(request6));
27637
+ for (const request7 of requests) {
27638
+ const r2 = getRequestState(new Request(request7));
27639
27639
  if (!urlIsHttpHttpsScheme(r2.url)) {
27640
27640
  throw webidl.errors.exception({
27641
27641
  header: prefix,
@@ -27712,17 +27712,17 @@ var require_cache3 = __commonJS({
27712
27712
  });
27713
27713
  return cacheJobPromise.promise;
27714
27714
  }
27715
- async put(request6, response) {
27715
+ async put(request7, response) {
27716
27716
  webidl.brandCheck(this, _Cache);
27717
27717
  const prefix = "Cache.put";
27718
27718
  webidl.argumentLengthCheck(arguments, 2, prefix);
27719
- request6 = webidl.converters.RequestInfo(request6);
27719
+ request7 = webidl.converters.RequestInfo(request7);
27720
27720
  response = webidl.converters.Response(response, prefix, "response");
27721
27721
  let innerRequest = null;
27722
- if (webidl.is.Request(request6)) {
27723
- innerRequest = getRequestState(request6);
27722
+ if (webidl.is.Request(request7)) {
27723
+ innerRequest = getRequestState(request7);
27724
27724
  } else {
27725
- innerRequest = getRequestState(new Request(request6));
27725
+ innerRequest = getRequestState(new Request(request7));
27726
27726
  }
27727
27727
  if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") {
27728
27728
  throw webidl.errors.exception({
@@ -27793,21 +27793,21 @@ var require_cache3 = __commonJS({
27793
27793
  });
27794
27794
  return cacheJobPromise.promise;
27795
27795
  }
27796
- async delete(request6, options = {}) {
27796
+ async delete(request7, options = {}) {
27797
27797
  webidl.brandCheck(this, _Cache);
27798
27798
  const prefix = "Cache.delete";
27799
27799
  webidl.argumentLengthCheck(arguments, 1, prefix);
27800
- request6 = webidl.converters.RequestInfo(request6);
27800
+ request7 = webidl.converters.RequestInfo(request7);
27801
27801
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
27802
27802
  let r2 = null;
27803
- if (webidl.is.Request(request6)) {
27804
- r2 = getRequestState(request6);
27803
+ if (webidl.is.Request(request7)) {
27804
+ r2 = getRequestState(request7);
27805
27805
  if (r2.method !== "GET" && !options.ignoreMethod) {
27806
27806
  return false;
27807
27807
  }
27808
27808
  } else {
27809
- assert2(typeof request6 === "string");
27810
- r2 = getRequestState(new Request(request6));
27809
+ assert2(typeof request7 === "string");
27810
+ r2 = getRequestState(new Request(request7));
27811
27811
  }
27812
27812
  const operations = [];
27813
27813
  const operation = {
@@ -27839,25 +27839,25 @@ var require_cache3 = __commonJS({
27839
27839
  * @param {import('../../../types/cache').CacheQueryOptions} options
27840
27840
  * @returns {Promise<readonly Request[]>}
27841
27841
  */
27842
- async keys(request6 = void 0, options = {}) {
27842
+ async keys(request7 = void 0, options = {}) {
27843
27843
  webidl.brandCheck(this, _Cache);
27844
27844
  const prefix = "Cache.keys";
27845
- if (request6 !== void 0) request6 = webidl.converters.RequestInfo(request6);
27845
+ if (request7 !== void 0) request7 = webidl.converters.RequestInfo(request7);
27846
27846
  options = webidl.converters.CacheQueryOptions(options, prefix, "options");
27847
27847
  let r2 = null;
27848
- if (request6 !== void 0) {
27849
- if (webidl.is.Request(request6)) {
27850
- r2 = getRequestState(request6);
27848
+ if (request7 !== void 0) {
27849
+ if (webidl.is.Request(request7)) {
27850
+ r2 = getRequestState(request7);
27851
27851
  if (r2.method !== "GET" && !options.ignoreMethod) {
27852
27852
  return [];
27853
27853
  }
27854
- } else if (typeof request6 === "string") {
27855
- r2 = getRequestState(new Request(request6));
27854
+ } else if (typeof request7 === "string") {
27855
+ r2 = getRequestState(new Request(request7));
27856
27856
  }
27857
27857
  }
27858
27858
  const promise2 = createDeferredPromise();
27859
27859
  const requests = [];
27860
- if (request6 === void 0) {
27860
+ if (request7 === void 0) {
27861
27861
  for (const requestResponse of this.#relevantRequestResponseList) {
27862
27862
  requests.push(requestResponse[0]);
27863
27863
  }
@@ -27869,9 +27869,9 @@ var require_cache3 = __commonJS({
27869
27869
  }
27870
27870
  queueMicrotask(() => {
27871
27871
  const requestList = [];
27872
- for (const request7 of requests) {
27872
+ for (const request8 of requests) {
27873
27873
  const requestObject = fromInnerRequest(
27874
- request7,
27874
+ request8,
27875
27875
  void 0,
27876
27876
  new AbortController().signal,
27877
27877
  "immutable"
@@ -27990,9 +27990,9 @@ var require_cache3 = __commonJS({
27990
27990
  * @param {import('../../../types/cache').CacheQueryOptions | undefined} options
27991
27991
  * @returns {boolean}
27992
27992
  */
27993
- #requestMatchesCachedItem(requestQuery, request6, response = null, options) {
27993
+ #requestMatchesCachedItem(requestQuery, request7, response = null, options) {
27994
27994
  const queryURL = new URL(requestQuery.url);
27995
- const cachedURL = new URL(request6.url);
27995
+ const cachedURL = new URL(request7.url);
27996
27996
  if (options?.ignoreSearch) {
27997
27997
  cachedURL.search = "";
27998
27998
  queryURL.search = "";
@@ -28008,7 +28008,7 @@ var require_cache3 = __commonJS({
28008
28008
  if (fieldValue === "*") {
28009
28009
  return false;
28010
28010
  }
28011
- const requestValue = request6.headersList.get(fieldValue);
28011
+ const requestValue = request7.headersList.get(fieldValue);
28012
28012
  const queryValue = requestQuery.headersList.get(fieldValue);
28013
28013
  if (requestValue !== queryValue) {
28014
28014
  return false;
@@ -28016,20 +28016,20 @@ var require_cache3 = __commonJS({
28016
28016
  }
28017
28017
  return true;
28018
28018
  }
28019
- #internalMatchAll(request6, options, maxResponses = Infinity) {
28019
+ #internalMatchAll(request7, options, maxResponses = Infinity) {
28020
28020
  let r2 = null;
28021
- if (request6 !== void 0) {
28022
- if (webidl.is.Request(request6)) {
28023
- r2 = getRequestState(request6);
28021
+ if (request7 !== void 0) {
28022
+ if (webidl.is.Request(request7)) {
28023
+ r2 = getRequestState(request7);
28024
28024
  if (r2.method !== "GET" && !options.ignoreMethod) {
28025
28025
  return [];
28026
28026
  }
28027
- } else if (typeof request6 === "string") {
28028
- r2 = getRequestState(new Request(request6));
28027
+ } else if (typeof request7 === "string") {
28028
+ r2 = getRequestState(new Request(request7));
28029
28029
  }
28030
28030
  }
28031
28031
  const responses = [];
28032
- if (request6 === void 0) {
28032
+ if (request7 === void 0) {
28033
28033
  for (const requestResponse of this.#relevantRequestResponseList) {
28034
28034
  responses.push(requestResponse[1]);
28035
28035
  }
@@ -28121,21 +28121,21 @@ var require_cachestorage = __commonJS({
28121
28121
  }
28122
28122
  webidl.util.markAsUncloneable(this);
28123
28123
  }
28124
- async match(request6, options = {}) {
28124
+ async match(request7, options = {}) {
28125
28125
  webidl.brandCheck(this, _CacheStorage);
28126
28126
  webidl.argumentLengthCheck(arguments, 1, "CacheStorage.match");
28127
- request6 = webidl.converters.RequestInfo(request6);
28127
+ request7 = webidl.converters.RequestInfo(request7);
28128
28128
  options = webidl.converters.MultiCacheQueryOptions(options);
28129
28129
  if (options.cacheName != null) {
28130
28130
  if (this.#caches.has(options.cacheName)) {
28131
28131
  const cacheList = this.#caches.get(options.cacheName);
28132
28132
  const cache = new Cache(kConstruct, cacheList);
28133
- return await cache.match(request6, options);
28133
+ return await cache.match(request7, options);
28134
28134
  }
28135
28135
  } else {
28136
28136
  for (const cacheList of this.#caches.values()) {
28137
28137
  const cache = new Cache(kConstruct, cacheList);
28138
- const response = await cache.match(request6, options);
28138
+ const response = await cache.match(request7, options);
28139
28139
  if (response !== void 0) {
28140
28140
  return response;
28141
28141
  }
@@ -29327,7 +29327,7 @@ var require_connection = __commonJS({
29327
29327
  function establishWebSocketConnection(url2, protocols, client, handler, options) {
29328
29328
  const requestURL = url2;
29329
29329
  requestURL.protocol = url2.protocol === "ws:" ? "http:" : "https:";
29330
- const request6 = makeRequest({
29330
+ const request7 = makeRequest({
29331
29331
  urlList: [requestURL],
29332
29332
  client,
29333
29333
  serviceWorkers: "none",
@@ -29340,18 +29340,18 @@ var require_connection = __commonJS({
29340
29340
  });
29341
29341
  if (options.headers) {
29342
29342
  const headersList = getHeadersList(new Headers(options.headers));
29343
- request6.headersList = headersList;
29343
+ request7.headersList = headersList;
29344
29344
  }
29345
29345
  const keyValue = crypto.randomBytes(16).toString("base64");
29346
- request6.headersList.append("sec-websocket-key", keyValue, true);
29347
- request6.headersList.append("sec-websocket-version", "13", true);
29346
+ request7.headersList.append("sec-websocket-key", keyValue, true);
29347
+ request7.headersList.append("sec-websocket-version", "13", true);
29348
29348
  for (const protocol of protocols) {
29349
- request6.headersList.append("sec-websocket-protocol", protocol, true);
29349
+ request7.headersList.append("sec-websocket-protocol", protocol, true);
29350
29350
  }
29351
29351
  const permessageDeflate = "permessage-deflate; client_max_window_bits";
29352
- request6.headersList.append("sec-websocket-extensions", permessageDeflate, true);
29352
+ request7.headersList.append("sec-websocket-extensions", permessageDeflate, true);
29353
29353
  const controller = fetching({
29354
- request: request6,
29354
+ request: request7,
29355
29355
  useParallelQueue: true,
29356
29356
  dispatcher: options.dispatcher,
29357
29357
  processResponse(response) {
@@ -29398,7 +29398,7 @@ var require_connection = __commonJS({
29398
29398
  }
29399
29399
  const secProtocol = response.headersList.get("Sec-WebSocket-Protocol");
29400
29400
  if (secProtocol !== null) {
29401
- const requestProtocols = getDecodeSplit("sec-websocket-protocol", request6.headersList);
29401
+ const requestProtocols = getDecodeSplit("sec-websocket-protocol", request7.headersList);
29402
29402
  if (requestProtocols === null || !requestProtocols.includes(secProtocol)) {
29403
29403
  failWebsocketConnection(handler, 1002, "Protocol was not set in the opening handshake.");
29404
29404
  return;
@@ -59667,6 +59667,7 @@ function buildLayoutPaths(root) {
59667
59667
  frontdoorCaBundlesDir: import_node_path17.default.join(root, "frontdoor", "ca", "bundles"),
59668
59668
  frontdoorStateFile: import_node_path17.default.join(root, "frontdoor", "state.json"),
59669
59669
  frontdoorLockFile: import_node_path17.default.join(root, "frontdoor", "start.lock"),
59670
+ frontdoorControlTokenFile: import_node_path17.default.join(root, "frontdoor", "control-token"),
59670
59671
  frontdoorSessionsDir: import_node_path17.default.join(root, "frontdoor", "sessions"),
59671
59672
  frontdoorLogPath: import_node_path17.default.join(root, "logs", "frontdoor.log"),
59672
59673
  usageDir: import_node_path17.default.join(root, "usage"),
@@ -61039,7 +61040,7 @@ function registerIdentityCommand(program2, deps) {
61039
61040
  // package.json
61040
61041
  var package_default = {
61041
61042
  name: "agent-shim",
61042
- version: "8.2.0",
61043
+ version: "8.3.0",
61043
61044
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
61044
61045
  license: "MIT",
61045
61046
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -63637,9 +63638,9 @@ function headersFor(credentials, sessionId) {
63637
63638
  session_id: sessionId
63638
63639
  };
63639
63640
  }
63640
- async function callCodex(ports, request6, sessionId, signal) {
63641
+ async function callCodex(ports, request7, sessionId, signal) {
63641
63642
  const url2 = ports.url ?? CODEX_RESPONSES_URL;
63642
- const body = JSON.stringify(request6);
63643
+ const body = JSON.stringify(request7);
63643
63644
  const send = async (credentials2) => await fetchUntilHeaders(ports.fetch, ports.timers, url2, {
63644
63645
  method: "POST",
63645
63646
  headers: headersFor(credentials2, sessionId),
@@ -63913,23 +63914,23 @@ function singleValue(value) {
63913
63914
  return typeof value === "string" ? value : void 0;
63914
63915
  }
63915
63916
  function admitLaunch(isLiveToken) {
63916
- return (request6) => {
63917
- const token = singleValue(request6.headers[AUTH_HEADER]);
63918
- return token !== void 0 && isLiveToken(token) ? { ok: true, headers: { ...request6.forwardable } } : { ok: false, message: "agent-shim front door: this request carries no capability from a live agent-shim launch" };
63917
+ return (request7) => {
63918
+ const token = singleValue(request7.headers[AUTH_HEADER]);
63919
+ return token !== void 0 && isLiveToken(token) ? { ok: true, headers: { ...request7.forwardable } } : { ok: false, message: "agent-shim front door: this request carries no capability from a live agent-shim launch" };
63919
63920
  };
63920
63921
  }
63921
63922
  function admitHop(hopSecret, custody) {
63922
- return (request6) => {
63923
- if (singleValue(request6.headers[HOP_SECRET_HEADER]) !== hopSecret) {
63923
+ return (request7) => {
63924
+ if (singleValue(request7.headers[HOP_SECRET_HEADER]) !== hopSecret) {
63924
63925
  return { ok: false, message: "agent-shim front door: the direct listener serves only this door's own headroom hop" };
63925
63926
  }
63926
- const hopId = singleValue(request6.headers[HOP_ID_HEADER]);
63927
- const provider = parseProviderPath(new URL(request6.url, "http://127.0.0.1").pathname)?.provider;
63927
+ const hopId = singleValue(request7.headers[HOP_ID_HEADER]);
63928
+ const provider = parseProviderPath(new URL(request7.url, "http://127.0.0.1").pathname)?.provider;
63928
63929
  const credentials = hopId === void 0 || provider === void 0 ? void 0 : custody.redeem(hopId, provider);
63929
63930
  if (credentials === void 0) {
63930
63931
  return { ok: false, message: "agent-shim front door: this request names no live headroom hop for its provider" };
63931
63932
  }
63932
- return { ok: true, headers: restoreCredentials(request6.forwardable, credentials) };
63933
+ return { ok: true, headers: restoreCredentials(request7.forwardable, credentials) };
63933
63934
  };
63934
63935
  }
63935
63936
  function createDoorPipelines(deps) {
@@ -64047,8 +64048,8 @@ function createFileCapture(file2, now = () => /* @__PURE__ */ new Date()) {
64047
64048
  connect: (target, intercepted) => {
64048
64049
  append({ kind: "connect", host: target.host, port: target.port, intercepted });
64049
64050
  },
64050
- upgrade: (request6) => {
64051
- append({ kind: "upgrade", method: request6.method ?? "?", url: request6.url ?? "?", headers: redactHeaders(request6.headers) });
64051
+ upgrade: (request7) => {
64052
+ append({ kind: "upgrade", method: request7.method ?? "?", url: request7.url ?? "?", headers: redactHeaders(request7.headers) });
64052
64053
  },
64053
64054
  tapStream: (host) => {
64054
64055
  nextId += 1;
@@ -64083,10 +64084,10 @@ function createFileCapture(file2, now = () => /* @__PURE__ */ new Date()) {
64083
64084
  }
64084
64085
  };
64085
64086
  },
64086
- observePassthrough: (request6) => {
64087
+ observePassthrough: (request7) => {
64087
64088
  nextId += 1;
64088
64089
  const id = nextId;
64089
- append({ kind: "request", id, method: request6.method ?? "?", url: request6.url ?? "?", headers: redactHeaders(request6.headers) });
64090
+ append({ kind: "request", id, method: request7.method ?? "?", url: request7.url ?? "?", headers: redactHeaders(request7.headers) });
64090
64091
  const logged = { request: 0, response: 0 };
64091
64092
  const sequences = { request: 0, response: 0 };
64092
64093
  const chunk = (direction, incoming) => {
@@ -64651,14 +64652,14 @@ function caParses(ca) {
64651
64652
  var TAP_ALPN_PROTOCOLS = ["h2", "http/1.1"];
64652
64653
  async function startConnectServer(config2, effects, preferredPort) {
64653
64654
  const tunnelTokens = /* @__PURE__ */ new WeakMap();
64654
- const onUpgrade = (host) => (request6, socket, head) => {
64655
- config2.capture?.upgrade(request6);
64655
+ const onUpgrade = (host) => (request7, socket, head) => {
64656
+ config2.capture?.upgrade(request7);
64656
64657
  if (head.length > 0) {
64657
64658
  socket.pause();
64658
64659
  socket.unshift(head);
64659
64660
  }
64660
- const headText = `${request6.method ?? "GET"} ${request6.url ?? "/"} HTTP/1.1\r
64661
- ${request6.rawHeaders.reduce((accumulated, value, index) => index % 2 === 0 ? `${accumulated}${value}: ` : `${accumulated}${value}\r
64661
+ const headText = `${request7.method ?? "GET"} ${request7.url ?? "/"} HTTP/1.1\r
64662
+ ${request7.rawHeaders.reduce((accumulated, value, index) => index % 2 === 0 ? `${accumulated}${value}: ` : `${accumulated}${value}\r
64662
64663
  `, "")}\r
64663
64664
  `;
64664
64665
  pumpTapSession(socket, async (clientAlpn) => await effects.connectTlsUpstream(host, HTTPS_PORT, clientAlpn), config2.capture?.tapStream?.(host), Buffer.from(headText, "utf8"));
@@ -64671,16 +64672,16 @@ ${request6.rawHeaders.reduce((accumulated, value, index) => index % 2 === 0 ? `$
64671
64672
  const tlsAcceptor2 = effects.createTlsAcceptor(config2.leafFor(host), serveSecure2, TAP_ALPN_PROTOCOLS);
64672
64673
  return { host, serveSecure: serveSecure2, tlsAcceptor: tlsAcceptor2 };
64673
64674
  }
64674
- const handler = (request6, response) => {
64675
- if (host === config2.routedHost && servedByPipeline(request6.url)) {
64676
- const tunnelToken = tunnelTokens.get(request6.socket);
64677
- if (tunnelToken !== void 0 && request6.headers[AUTH_HEADER] === void 0) {
64678
- request6.headers[AUTH_HEADER] = tunnelToken;
64675
+ const handler = (request7, response) => {
64676
+ if (host === config2.routedHost && servedByPipeline(request7.url)) {
64677
+ const tunnelToken = tunnelTokens.get(request7.socket);
64678
+ if (tunnelToken !== void 0 && request7.headers[AUTH_HEADER] === void 0) {
64679
+ request7.headers[AUTH_HEADER] = tunnelToken;
64679
64680
  }
64680
- config2.serveRouted(request6, response);
64681
+ config2.serveRouted(request7, response);
64681
64682
  return;
64682
64683
  }
64683
- effects.forwardHttp(config2.upstreamFor(host), request6, response, config2.capture?.observePassthrough(request6));
64684
+ effects.forwardHttp(config2.upstreamFor(host), request7, response, config2.capture?.observePassthrough(request7));
64684
64685
  };
64685
64686
  const httpSession = effects.createHttpSession(handler, onUpgrade(host));
64686
64687
  const serveSecure = (secure, capability) => {
@@ -64977,6 +64978,40 @@ var ExemptTlsAgent = class extends https.Agent {
64977
64978
  return tls.connect(tlsOptions);
64978
64979
  }
64979
64980
  };
64981
+ function realRcEventDial(target = { host: CONNECT_INTERCEPT_HOST, port: HTTPS_PORT }) {
64982
+ const agent = new ExemptTlsAgent();
64983
+ return {
64984
+ writeEvents: async (sessionId, headers, body) => await new Promise((resolve, reject) => {
64985
+ const options = {
64986
+ host: target.host,
64987
+ port: target.port,
64988
+ method: "POST",
64989
+ path: `/v1/code/sessions/${encodeURIComponent(sessionId)}/events`,
64990
+ // The Host header names the host whose API this is, not the address dialled: a redirected test dials a loopback stand-in while still speaking to the API host by name, exactly as the forwarded paths present their SNI.
64991
+ headers: { ...headers, host: target.servername ?? target.host, "content-length": String(Buffer.byteLength(body, "utf8")) },
64992
+ agent
64993
+ };
64994
+ options.servername = target.servername ?? target.host;
64995
+ if (target.ca !== void 0) {
64996
+ options.ca = [...target.ca];
64997
+ }
64998
+ if (target.rejectUnauthorized !== void 0) {
64999
+ options.rejectUnauthorized = target.rejectUnauthorized;
65000
+ }
65001
+ const request7 = https.request(options, (response) => {
65002
+ const chunks = [];
65003
+ response.on("data", (chunk) => {
65004
+ chunks.push(chunk);
65005
+ });
65006
+ response.on("end", () => {
65007
+ resolve({ status: response.statusCode ?? HTTP_BAD_GATEWAY, body: Buffer.concat(chunks).toString("utf8") });
65008
+ });
65009
+ });
65010
+ request7.once("error", reject);
65011
+ request7.end(body);
65012
+ })
65013
+ };
65014
+ }
64980
65015
  function realConnectEffects() {
64981
65016
  const plainAgent = new ExemptHttpAgent();
64982
65017
  const tlsAgent = new ExemptTlsAgent();
@@ -65082,8 +65117,8 @@ function realConnectEffects() {
65082
65117
  socket.destroy();
65083
65118
  });
65084
65119
  if (onUpgrade !== void 0) {
65085
- server.on("upgrade", (request6, socket, head) => {
65086
- onUpgrade(request6, socket, head);
65120
+ server.on("upgrade", (request7, socket, head) => {
65121
+ onUpgrade(request7, socket, head);
65087
65122
  });
65088
65123
  }
65089
65124
  return {
@@ -65122,14 +65157,14 @@ function realConnectEffects() {
65122
65157
  });
65123
65158
  socket.once("error", reject);
65124
65159
  }),
65125
- forwardHttp: (target, request6, response, observer) => {
65126
- const headers = forwardableHeaders(request6.headers);
65160
+ forwardHttp: (target, request7, response, observer) => {
65161
+ const headers = forwardableHeaders(request7.headers);
65127
65162
  const options = {
65128
65163
  host: target.host,
65129
65164
  port: target.port,
65130
65165
  lookup: realAddressLookup,
65131
- method: request6.method,
65132
- path: request6.url,
65166
+ method: request7.method,
65167
+ path: request7.url,
65133
65168
  headers,
65134
65169
  agent: target.tls ? tlsAgent : plainAgent
65135
65170
  };
@@ -65164,15 +65199,15 @@ function realConnectEffects() {
65164
65199
  response.end(body);
65165
65200
  });
65166
65201
  if (observer !== void 0) {
65167
- request6.on("data", (chunk) => {
65202
+ request7.on("data", (chunk) => {
65168
65203
  observer.onRequestChunk(chunk);
65169
65204
  });
65170
65205
  response.on("close", () => {
65171
65206
  observer.onEnd();
65172
65207
  });
65173
65208
  }
65174
- request6.pipe(upstream);
65175
- request6.socket.setNoDelay(true);
65209
+ request7.pipe(upstream);
65210
+ request7.socket.setNoDelay(true);
65176
65211
  upstream.on("socket", (socket) => {
65177
65212
  socket.setNoDelay(true);
65178
65213
  });
@@ -65186,16 +65221,227 @@ var http3 = __toESM(require("node:http"), 1);
65186
65221
  // src/frontdoor/server.ts
65187
65222
  var import_node_http = __toESM(require("node:http"), 1);
65188
65223
  var import_node_https = __toESM(require("node:https"), 1);
65224
+
65225
+ // src/frontdoor/rcControl.ts
65226
+ var https2 = __toESM(require("node:https"), 1);
65227
+ var CONTROL_PATH_PREFIX = "/__agent-shim/rc";
65228
+ var CONTROL_BODY_CAP_BYTES = 10485760;
65229
+ function answerJson(response, status, body) {
65230
+ const text2 = JSON.stringify(body);
65231
+ response.writeHead(status, { "content-type": "application/json", "content-length": String(Buffer.byteLength(text2, "utf8")) });
65232
+ response.end(text2);
65233
+ }
65234
+ async function readBody(request7) {
65235
+ return await new Promise((resolve, reject) => {
65236
+ const chunks = [];
65237
+ let total = 0;
65238
+ request7.on("data", (chunk) => {
65239
+ total += chunk.length;
65240
+ if (total > CONTROL_BODY_CAP_BYTES) {
65241
+ request7.destroy();
65242
+ reject(new Error("too large"));
65243
+ return;
65244
+ }
65245
+ chunks.push(chunk);
65246
+ });
65247
+ request7.on("end", () => {
65248
+ resolve(Buffer.concat(chunks).toString("utf8"));
65249
+ });
65250
+ request7.on("error", () => {
65251
+ reject(new Error("the request body ended early"));
65252
+ });
65253
+ });
65254
+ }
65255
+ function createRcControlHandler(deps) {
65256
+ const sessionsPath = `${CONTROL_PATH_PREFIX}/sessions`;
65257
+ const injectPath = `${CONTROL_PATH_PREFIX}/inject`;
65258
+ return (request7, response) => {
65259
+ const presented = request7.headers.authorization;
65260
+ const bearerPrefix = "bearer ".length;
65261
+ const token = typeof presented === "string" && presented.slice(0, bearerPrefix).toLowerCase() === "bearer " ? presented.slice(bearerPrefix) : void 0;
65262
+ if (token === void 0 || !isLiveCapability(token, [deps.expectedToken])) {
65263
+ answerJson(response, HTTP_STATUS.unauthorized, { error: "the front door's control routes demand this generation's control token as a Bearer credential" });
65264
+ return;
65265
+ }
65266
+ const url2 = request7.url ?? "/";
65267
+ const handle = async () => {
65268
+ if (url2 === sessionsPath) {
65269
+ if (request7.method !== "GET") {
65270
+ answerJson(response, HTTP_STATUS.methodNotAllowed, { error: "the session list is a GET" });
65271
+ return;
65272
+ }
65273
+ answerJson(response, HTTP_STATUS.ok, { sessions: deps.list() });
65274
+ return;
65275
+ }
65276
+ if (url2 === injectPath) {
65277
+ if (request7.method !== "POST") {
65278
+ answerJson(response, HTTP_STATUS.methodNotAllowed, { error: "the inject operation is a POST" });
65279
+ return;
65280
+ }
65281
+ let parsed;
65282
+ try {
65283
+ parsed = JSON.parse(await readBody(request7));
65284
+ } catch {
65285
+ answerJson(response, HTTP_STATUS.badRequest, { error: "the inject body is not readable JSON within the control body cap" });
65286
+ return;
65287
+ }
65288
+ if (typeof parsed !== "object" || parsed === null || !("session" in parsed) || !("text" in parsed) || typeof parsed.session !== "string" || typeof parsed.text !== "string" || parsed.session === "" || parsed.text === "") {
65289
+ answerJson(response, HTTP_STATUS.badRequest, { error: "the inject body must be JSON naming a non-empty session id and text" });
65290
+ return;
65291
+ }
65292
+ const result = await deps.inject(parsed.session, parsed.text);
65293
+ if (result.ok) {
65294
+ answerJson(response, HTTP_STATUS.ok, { session: parsed.session, sequenceNums: result.sequenceNums });
65295
+ return;
65296
+ }
65297
+ answerJson(response, HTTP_STATUS.badGateway, { error: result.message });
65298
+ return;
65299
+ }
65300
+ answerJson(response, HTTP_STATUS.notFound, { error: `no such control route: ${url2}` });
65301
+ };
65302
+ handle().catch((error62) => {
65303
+ answerJson(response, HTTP_STATUS.internalServerError, { error: `the control route failed: ${error62 instanceof Error ? error62.message : String(error62)}` });
65304
+ });
65305
+ };
65306
+ }
65307
+ function realRcControlTransport(port, ca) {
65308
+ return {
65309
+ request: async (options) => await new Promise((resolve, reject) => {
65310
+ const request7 = https2.request(
65311
+ {
65312
+ host: "127.0.0.1",
65313
+ port,
65314
+ method: options.method,
65315
+ path: options.path,
65316
+ headers: options.body === void 0 ? options.headers : { ...options.headers, "content-length": String(Buffer.byteLength(options.body, "utf8")) },
65317
+ agent: false,
65318
+ ca: [ca]
65319
+ },
65320
+ (response) => {
65321
+ const chunks = [];
65322
+ response.on("data", (chunk) => {
65323
+ chunks.push(chunk);
65324
+ });
65325
+ response.on("end", () => {
65326
+ resolve({ status: response.statusCode ?? 0, body: Buffer.concat(chunks).toString("utf8") });
65327
+ });
65328
+ }
65329
+ );
65330
+ request7.once("error", reject);
65331
+ if (options.body === void 0) {
65332
+ request7.end();
65333
+ } else {
65334
+ request7.end(options.body);
65335
+ }
65336
+ })
65337
+ };
65338
+ }
65339
+ function controlErrorOf(body) {
65340
+ try {
65341
+ const parsed = JSON.parse(body);
65342
+ if (typeof parsed === "object" && parsed !== null && "error" in parsed && typeof parsed.error === "string") {
65343
+ return parsed.error;
65344
+ }
65345
+ } catch {
65346
+ return body;
65347
+ }
65348
+ return void 0;
65349
+ }
65350
+ function isRcSessionSummary(value) {
65351
+ if (typeof value !== "object" || value === null) {
65352
+ return false;
65353
+ }
65354
+ if (!("id" in value) || !("createdAt" in value) || !("lastSeenAt" in value)) {
65355
+ return false;
65356
+ }
65357
+ return typeof value.id === "string" && typeof value.createdAt === "number" && typeof value.lastSeenAt === "number";
65358
+ }
65359
+ function sequenceNumsOfBody(body) {
65360
+ let parsed;
65361
+ try {
65362
+ parsed = JSON.parse(body);
65363
+ } catch {
65364
+ return void 0;
65365
+ }
65366
+ if (typeof parsed !== "object" || parsed === null || !("sequenceNums" in parsed) || !Array.isArray(parsed.sequenceNums)) {
65367
+ return void 0;
65368
+ }
65369
+ const sequenceNums = [];
65370
+ const values = parsed.sequenceNums;
65371
+ for (const value of values) {
65372
+ if (typeof value !== "number") {
65373
+ return void 0;
65374
+ }
65375
+ sequenceNums.push(value);
65376
+ }
65377
+ return sequenceNums;
65378
+ }
65379
+ function frontDoorRcControl(transport, token) {
65380
+ const headers = { authorization: `Bearer ${token}` };
65381
+ const sessionsOf = (answer, what) => {
65382
+ if (answer.status !== HTTP_STATUS.ok) {
65383
+ throw new Error(`${what} failed (HTTP ${String(answer.status)}): ${controlErrorOf(answer.body) ?? answer.body}`);
65384
+ }
65385
+ let parsed;
65386
+ try {
65387
+ parsed = JSON.parse(answer.body);
65388
+ } catch {
65389
+ throw new Error(`${what}: the door's answer was not JSON: ${answer.body}`);
65390
+ }
65391
+ if (typeof parsed !== "object" || parsed === null || !("sessions" in parsed) || !Array.isArray(parsed.sessions)) {
65392
+ throw new Error(`${what}: the door's answer named no sessions list: ${answer.body}`);
65393
+ }
65394
+ const candidates = parsed.sessions;
65395
+ const sessions = [];
65396
+ for (const value of candidates) {
65397
+ if (!isRcSessionSummary(value)) {
65398
+ throw new Error(`${what}: the door's answer named no sessions list: ${answer.body}`);
65399
+ }
65400
+ sessions.push(value);
65401
+ }
65402
+ return sessions;
65403
+ };
65404
+ return {
65405
+ listSessions: async () => sessionsOf(await transport.request({ method: "GET", path: `${CONTROL_PATH_PREFIX}/sessions`, headers }), "listing the door's Remote Control sessions"),
65406
+ sendPrompt: async (sessionId, text2) => {
65407
+ let answer;
65408
+ try {
65409
+ answer = await transport.request({
65410
+ method: "POST",
65411
+ path: `${CONTROL_PATH_PREFIX}/inject`,
65412
+ headers: { ...headers, "content-type": "application/json" },
65413
+ body: JSON.stringify({ session: sessionId, text: text2 })
65414
+ });
65415
+ } catch (error62) {
65416
+ return { ok: false, message: `could not reach the front door's control listener: ${error62 instanceof Error ? error62.message : String(error62)}` };
65417
+ }
65418
+ if (answer.status === HTTP_STATUS.ok) {
65419
+ const sequenceNums = sequenceNumsOfBody(answer.body);
65420
+ if (sequenceNums === void 0) {
65421
+ return { ok: false, message: `the door accepted the event but its answer named no sequence numbers: ${answer.body}` };
65422
+ }
65423
+ return { ok: true, sequenceNums };
65424
+ }
65425
+ return { ok: false, message: `injecting into ${sessionId} failed (HTTP ${String(answer.status)}): ${controlErrorOf(answer.body) ?? answer.body}` };
65426
+ }
65427
+ };
65428
+ }
65429
+
65430
+ // src/frontdoor/server.ts
65189
65431
  var HEALTH_TIMEOUT_MS = 2e3;
65190
65432
  var HEALTH_START_BUDGET_MS = 5e3;
65191
65433
  var HEALTH_RETRY_MS = 50;
65192
- function createFrontDoorServer(pipeline, log, tls2) {
65193
- const handler = (request6, response) => {
65194
- if (request6.method === "GET" && request6.url === "/healthz") {
65434
+ function createFrontDoorServer(pipeline, log, tls2, control) {
65435
+ const handler = (request7, response) => {
65436
+ if (request7.method === "GET" && request7.url === "/healthz") {
65195
65437
  response.writeHead(HTTP_STATUS.ok, { "Content-Type": "text/plain" });
65196
65438
  response.end("ok");
65197
65439
  return;
65198
65440
  }
65441
+ if (control !== void 0 && (request7.url ?? "/").startsWith(CONTROL_PATH_PREFIX)) {
65442
+ control(request7, response);
65443
+ return;
65444
+ }
65199
65445
  const abort = new AbortController();
65200
65446
  response.on("close", () => {
65201
65447
  if (!response.writableFinished) {
@@ -65203,13 +65449,13 @@ function createFrontDoorServer(pipeline, log, tls2) {
65203
65449
  }
65204
65450
  });
65205
65451
  const handle = async () => {
65206
- await pipeline({ method: request6.method ?? "GET", url: request6.url ?? "/", headers: aliasLegacyWireHeaders(request6.headers), body: request6, signal: abort.signal, response });
65207
- if (!request6.readableEnded) {
65208
- request6.resume();
65452
+ await pipeline({ method: request7.method ?? "GET", url: request7.url ?? "/", headers: aliasLegacyWireHeaders(request7.headers), body: request7, signal: abort.signal, response });
65453
+ if (!request7.readableEnded) {
65454
+ request7.resume();
65209
65455
  }
65210
65456
  };
65211
65457
  handle().catch((error62) => {
65212
- log(`request ${request6.method ?? "?"} ${request6.url ?? "?"} failed: ${error62 instanceof Error ? `${error62.name}: ${error62.message}` : String(error62)}`);
65458
+ log(`request ${request7.method ?? "?"} ${request7.url ?? "?"} failed: ${error62 instanceof Error ? `${error62.name}: ${error62.message}` : String(error62)}`);
65213
65459
  if (!response.headersSent) {
65214
65460
  response.writeHead(HTTP_STATUS.internalServerError, { "Content-Type": "application/json" });
65215
65461
  response.end(JSON.stringify({ type: "error", error: { type: "api_error", message: "internal error in the agent-shim front door" } }));
@@ -65234,11 +65480,11 @@ async function frontDoorHealthy(port, ca) {
65234
65480
  resolve(response.statusCode === HTTP_STATUS.ok);
65235
65481
  };
65236
65482
  const options = { host: "127.0.0.1", port, path: "/healthz", agent: false, timeout: HEALTH_TIMEOUT_MS };
65237
- const request6 = ca === void 0 ? import_node_http.default.get(options, onResponse) : import_node_https.default.get({ ...options, ca: [ca] }, onResponse);
65238
- request6.on("timeout", () => {
65239
- request6.destroy();
65483
+ const request7 = ca === void 0 ? import_node_http.default.get(options, onResponse) : import_node_https.default.get({ ...options, ca: [ca] }, onResponse);
65484
+ request7.on("timeout", () => {
65485
+ request7.destroy();
65240
65486
  });
65241
- request6.on("error", () => {
65487
+ request7.on("error", () => {
65242
65488
  resolve(false);
65243
65489
  });
65244
65490
  });
@@ -65323,24 +65569,24 @@ function responseHeaders(headers) {
65323
65569
  }
65324
65570
  return result;
65325
65571
  }
65326
- async function applyHeadroomHop(request6, response, upstream, deps) {
65572
+ async function applyHeadroomHop(request7, response, upstream, deps) {
65327
65573
  const target = deps.headroomSocket();
65328
65574
  if (target === void 0) {
65329
65575
  await answerBadGateway(response, "agent-shim front door: the headroom daemon is restarting");
65330
65576
  return;
65331
65577
  }
65332
65578
  if (target.refused !== void 0) {
65333
- deps.log(`front door: refusing the headroom hop (${request6.method} ${new URL(request6.url, "http://127.0.0.1").pathname}): ${target.refused}`);
65579
+ deps.log(`front door: refusing the headroom hop (${request7.method} ${new URL(request7.url, "http://127.0.0.1").pathname}): ${target.refused}`);
65334
65580
  await answerBadGateway(response, `agent-shim front door: refusing to send this request to headroom: ${target.refused}`);
65335
65581
  return;
65336
65582
  }
65337
65583
  const { socketPath } = target;
65338
- let headers = forwardableHeaders(request6.headers);
65584
+ let headers = forwardableHeaders(request7.headers);
65339
65585
  let hopId;
65340
65586
  if (upstream !== void 0) {
65341
- const provider = parseProviderPath(new URL(request6.url, "http://127.0.0.1").pathname)?.provider;
65587
+ const provider = parseProviderPath(new URL(request7.url, "http://127.0.0.1").pathname)?.provider;
65342
65588
  if (provider === void 0) {
65343
- throw new Error(`headroom hop for ${request6.url} names an upstream but no provider`);
65589
+ throw new Error(`headroom hop for ${request7.url} names an upstream but no provider`);
65344
65590
  }
65345
65591
  const sequestered = deps.custody.sequester(headers, provider);
65346
65592
  hopId = sequestered.hopId;
@@ -65348,12 +65594,12 @@ async function applyHeadroomHop(request6, response, upstream, deps) {
65348
65594
  headers[HOP_ID_HEADER] = hopId;
65349
65595
  headers[HEADROOM_BASE_URL_HEADER] = upstream;
65350
65596
  }
65351
- if (request6.session.projectId !== void 0) {
65352
- headers[PROJECT_ID_HEADER] = request6.session.projectId;
65597
+ if (request7.session.projectId !== void 0) {
65598
+ headers[PROJECT_ID_HEADER] = request7.session.projectId;
65353
65599
  }
65354
65600
  headers[HOP_SECRET_HEADER] = deps.hopSecret;
65355
65601
  try {
65356
- await forwardThroughHeadroom(request6, response, { socketPath, headers, log: deps.log });
65602
+ await forwardThroughHeadroom(request7, response, { socketPath, headers, log: deps.log });
65357
65603
  } finally {
65358
65604
  if (hopId !== void 0) {
65359
65605
  deps.custody.release(hopId);
@@ -65366,7 +65612,7 @@ async function answerBadGateway(response, message) {
65366
65612
  response.end();
65367
65613
  }
65368
65614
  var HOP_AGENT = new http3.Agent({ keepAlive: false });
65369
- async function forwardThroughHeadroom(request6, response, target) {
65615
+ async function forwardThroughHeadroom(request7, response, target) {
65370
65616
  const { socketPath, headers } = target;
65371
65617
  await new Promise((resolve) => {
65372
65618
  const onUpstreamResponse = (upstreamResponse) => {
@@ -65375,17 +65621,17 @@ async function forwardThroughHeadroom(request6, response, target) {
65375
65621
  const stream = async () => {
65376
65622
  try {
65377
65623
  for await (const chunk of upstreamChunks(upstreamResponse)) {
65378
- if (request6.signal.aborted) {
65624
+ if (request7.signal.aborted) {
65379
65625
  break;
65380
65626
  }
65381
65627
  await response.write(chunk);
65382
65628
  }
65383
- if (!request6.signal.aborted) {
65629
+ if (!request7.signal.aborted) {
65384
65630
  response.end();
65385
65631
  }
65386
65632
  } catch (error62) {
65387
- if (!request6.signal.aborted) {
65388
- target.log(`front door: headroom hop to ${socketPath} ended mid-stream (${request6.method} ${new URL(request6.url, "http://127.0.0.1").pathname}): ${error62 instanceof Error ? error62.message : String(error62)}`);
65633
+ if (!request7.signal.aborted) {
65634
+ target.log(`front door: headroom hop to ${socketPath} ended mid-stream (${request7.method} ${new URL(request7.url, "http://127.0.0.1").pathname}): ${error62 instanceof Error ? error62.message : String(error62)}`);
65389
65635
  }
65390
65636
  response.destroy();
65391
65637
  }
@@ -65393,11 +65639,11 @@ async function forwardThroughHeadroom(request6, response, target) {
65393
65639
  };
65394
65640
  void stream();
65395
65641
  };
65396
- const hop = http3.request({ socketPath, method: request6.method, path: request6.url, headers, agent: HOP_AGENT }, onUpstreamResponse);
65642
+ const hop = http3.request({ socketPath, method: request7.method, path: request7.url, headers, agent: HOP_AGENT }, onUpstreamResponse);
65397
65643
  hop.on("error", (error62) => {
65398
65644
  const phase = response.headersSent ? "mid-stream" : "before the response started";
65399
65645
  const code = "code" in error62 && typeof error62.code === "string" ? ` ${error62.code}` : "";
65400
- target.log(`front door: headroom hop to ${socketPath} failed (${request6.method} ${new URL(request6.url, "http://127.0.0.1").pathname}, ${phase}): ${error62.message}${code}`);
65646
+ target.log(`front door: headroom hop to ${socketPath} failed (${request7.method} ${new URL(request7.url, "http://127.0.0.1").pathname}, ${phase}): ${error62.message}${code}`);
65401
65647
  if (!response.headersSent) {
65402
65648
  response.start(HTTP_BAD_GATEWAY2, { "Content-Type": "application/json" });
65403
65649
  void response.write(JSON.stringify({ type: "error", error: { type: "api_error", message: `agent-shim front door: the headroom daemon is unreachable (${error62.message})` } })).then(() => {
@@ -65408,11 +65654,11 @@ async function forwardThroughHeadroom(request6, response, target) {
65408
65654
  }
65409
65655
  resolve(void 0);
65410
65656
  });
65411
- request6.signal.addEventListener("abort", () => {
65657
+ request7.signal.addEventListener("abort", () => {
65412
65658
  hop.destroy();
65413
65659
  });
65414
- request6.body.pipe(hop);
65415
- request6.body.on("error", () => {
65660
+ request7.body.pipe(hop);
65661
+ request7.body.on("error", () => {
65416
65662
  hop.destroy();
65417
65663
  });
65418
65664
  });
@@ -65446,7 +65692,7 @@ function describeThrown(error62) {
65446
65692
  return error62 instanceof Error ? error62.message : String(error62);
65447
65693
  }
65448
65694
  function createRoutedResponse(response, context) {
65449
- const { deps, session, route, request: request6 } = context;
65695
+ const { deps, session, route, request: request7 } = context;
65450
65696
  let headersSent = false;
65451
65697
  let bodyObservers = [];
65452
65698
  let finished = false;
@@ -65492,7 +65738,7 @@ function createRoutedResponse(response, context) {
65492
65738
  start: (status, headers) => {
65493
65739
  for (const observe of deps.responseObservers) {
65494
65740
  try {
65495
- const body = observe({ session, route, method: request6.method, path: request6.path, receivedAt: request6.receivedAt, status, headers });
65741
+ const body = observe({ session, route, method: request7.method, path: request7.path, receivedAt: request7.receivedAt, status, headers });
65496
65742
  if (body !== void 0) {
65497
65743
  bodyObservers.push(body);
65498
65744
  }
@@ -65532,34 +65778,34 @@ function createRoutedResponse(response, context) {
65532
65778
  }
65533
65779
  };
65534
65780
  }
65535
- async function serveRouted(request6, deps) {
65536
- const observed = { method: request6.method, path: pathOf(request6.url), receivedAt: deps.now() };
65537
- const identified = identifyRequest(request6.headers);
65538
- const admission = deps.admit({ url: request6.url, headers: request6.headers, forwardable: identified.forwardableHeaders });
65781
+ async function serveRouted(request7, deps) {
65782
+ const observed = { method: request7.method, path: pathOf(request7.url), receivedAt: deps.now() };
65783
+ const identified = identifyRequest(request7.headers);
65784
+ const admission = deps.admit({ url: request7.url, headers: request7.headers, forwardable: identified.forwardableHeaders });
65539
65785
  if (!admission.ok) {
65540
- const response2 = createRoutedResponse(request6.response, { deps, session: identified.session, route: "(unauthorized)", request: observed });
65786
+ const response2 = createRoutedResponse(request7.response, { deps, session: identified.session, route: "(unauthorized)", request: observed });
65541
65787
  response2.start(HTTP_STATUS.unauthorized, { "Content-Type": "application/json" });
65542
65788
  await response2.write(errorBody(HTTP_STATUS.unauthorized, admission.message));
65543
65789
  response2.end();
65544
65790
  return;
65545
65791
  }
65546
65792
  const routed = {
65547
- method: request6.method,
65548
- url: request6.url,
65793
+ method: request7.method,
65794
+ url: request7.url,
65549
65795
  headers: admission.headers,
65550
- body: request6.body,
65551
- signal: request6.signal,
65796
+ body: request7.body,
65797
+ signal: request7.signal,
65552
65798
  session: identified.session
65553
65799
  };
65554
65800
  const resolution = await deps.resolveRoute(routed);
65555
65801
  if (!resolution.ok) {
65556
- const response2 = createRoutedResponse(request6.response, { deps, session: identified.session, route: "(unrouted)", request: observed });
65802
+ const response2 = createRoutedResponse(request7.response, { deps, session: identified.session, route: "(unrouted)", request: observed });
65557
65803
  response2.start(resolution.status, { "Content-Type": "application/json" });
65558
65804
  await response2.write(errorBody(resolution.status, resolution.message));
65559
65805
  response2.end();
65560
65806
  return;
65561
65807
  }
65562
- const response = createRoutedResponse(request6.response, { deps, session: identified.session, route: resolution.route.name, request: observed });
65808
+ const response = createRoutedResponse(request7.response, { deps, session: identified.session, route: resolution.route.name, request: observed });
65563
65809
  try {
65564
65810
  if (identified.session.headroom && resolution.route.headroomEligible && deps.headroom !== void 0) {
65565
65811
  await applyHeadroomHop(routed, response, resolution.route.headroomUpstream, deps.headroom);
@@ -65567,7 +65813,7 @@ async function serveRouted(request6, deps) {
65567
65813
  await resolution.route.serve(routed, response);
65568
65814
  }
65569
65815
  } catch (error62) {
65570
- if (request6.signal.aborted) {
65816
+ if (request7.signal.aborted) {
65571
65817
  return;
65572
65818
  }
65573
65819
  deps.log(`front door: route ${resolution.route.name} failed: ${error62 instanceof Error ? `${error62.name}: ${error62.message}` : String(error62)}`);
@@ -65676,8 +65922,8 @@ var REQUESTABLE_EFFORTS = ["low", "medium", "high"];
65676
65922
  function isRequestableEffort(value) {
65677
65923
  return REQUESTABLE_EFFORTS.includes(value);
65678
65924
  }
65679
- function mapEffort(request6, config2) {
65680
- const requested = request6.output_config?.effort;
65925
+ function mapEffort(request7, config2) {
65926
+ const requested = request7.output_config?.effort;
65681
65927
  return requested !== void 0 && isRequestableEffort(requested) ? requested : config2.effort;
65682
65928
  }
65683
65929
  var BILLING_HEADER_LINE = /^x-anthropic-billing-header:[^\n]*\n/;
@@ -65803,7 +66049,7 @@ function translateRequest(body, config2) {
65803
66049
  const tools = mapTools(body.tools, names);
65804
66050
  const toolChoice = mapToolChoice(body.tool_choice, names);
65805
66051
  const userId = body.metadata?.user_id;
65806
- const request6 = {
66052
+ const request7 = {
65807
66053
  model: mapModel(body.model ?? "", config2),
65808
66054
  instructions: systemToInstructions(body.system),
65809
66055
  input: messagesToInput(body.messages, names),
@@ -65815,7 +66061,7 @@ function translateRequest(body, config2) {
65815
66061
  ...tools === void 0 ? {} : { tools },
65816
66062
  ...toolChoice === void 0 ? {} : { tool_choice: toolChoice }
65817
66063
  };
65818
- return { request: request6, toolNames: names };
66064
+ return { request: request7, toolNames: names };
65819
66065
  }
65820
66066
 
65821
66067
  // src/codex/events.ts
@@ -66190,7 +66436,7 @@ function describeError(error62) {
66190
66436
  return error62 instanceof Error ? `${error62.name}: ${error62.message}` : String(error62);
66191
66437
  }
66192
66438
  function createCodexRoute(ports) {
66193
- const handleMessages = async (request6, config2, raw) => {
66439
+ const handleMessages = async (request7, config2, raw) => {
66194
66440
  const parsed = MessagesRequestSchema.safeParse(raw);
66195
66441
  if (!parsed.success) {
66196
66442
  return errorResponse(HTTP_STATUS.badRequest, `not an Anthropic Messages request: ${parsed.error.issues.map((issue2) => `${issue2.path.join(".")}: ${issue2.message}`).join("; ")}`);
@@ -66202,9 +66448,9 @@ function createCodexRoute(ports) {
66202
66448
  const elapsed = () => `${String(ports.now() - started)}ms`;
66203
66449
  let upstream;
66204
66450
  try {
66205
- upstream = await callCodex(ports.upstream, upstreamRequest, sessionIdFor(body.metadata?.user_id, ports.upstream.randomId), request6.signal);
66451
+ upstream = await callCodex(ports.upstream, upstreamRequest, sessionIdFor(body.metadata?.user_id, ports.upstream.randomId), request7.signal);
66206
66452
  } catch (error62) {
66207
- if (request6.signal.aborted) {
66453
+ if (request7.signal.aborted) {
66208
66454
  return errorResponse(HTTP_STATUS.clientClosedRequest, "client disconnected");
66209
66455
  }
66210
66456
  ports.log(`${upstreamRequest.model} upstream fetch failed after ${elapsed()}: ${describeError(error62)}`);
@@ -66264,7 +66510,7 @@ function createCodexRoute(ports) {
66264
66510
  ports.log(`${upstreamRequest.model} stream ended without completing after ${elapsed()}`);
66265
66511
  yield errorFrame(HTTP_STATUS.badGateway, "codex backend stream ended without completing");
66266
66512
  } catch (error62) {
66267
- if (request6.signal.aborted) {
66513
+ if (request7.signal.aborted) {
66268
66514
  return;
66269
66515
  }
66270
66516
  ports.log(`${upstreamRequest.model} stream relay failed: ${describeError(error62)}`);
@@ -66290,7 +66536,7 @@ function createCodexRoute(ports) {
66290
66536
  }
66291
66537
  }
66292
66538
  } catch (error62) {
66293
- if (request6.signal.aborted) {
66539
+ if (request7.signal.aborted) {
66294
66540
  return errorResponse(HTTP_STATUS.clientClosedRequest, "client disconnected");
66295
66541
  }
66296
66542
  ports.log(`${upstreamRequest.model} stream relay failed: ${describeError(error62)}`);
@@ -66307,26 +66553,26 @@ function createCodexRoute(ports) {
66307
66553
  const text2 = JSON.stringify({ system: parsed.data.system, messages: parsed.data.messages, tools: parsed.data.tools });
66308
66554
  return { status: HTTP_STATUS.ok, headers: { "Content-Type": "application/json" }, body: JSON.stringify({ input_tokens: Math.ceil(text2.length / CHARS_PER_TOKEN) }) };
66309
66555
  };
66310
- return async (request6) => {
66311
- if (request6.method === "GET" && request6.path === "/healthz") {
66556
+ return async (request7) => {
66557
+ if (request7.method === "GET" && request7.path === "/healthz") {
66312
66558
  return { status: HTTP_STATUS.ok, headers: { "Content-Type": "text/plain" }, body: "ok" };
66313
66559
  }
66314
- if (request6.method !== "POST") {
66315
- return errorResponse(HTTP_STATUS.methodNotAllowed, `unsupported ${request6.method} ${request6.path}`);
66560
+ if (request7.method !== "POST") {
66561
+ return errorResponse(HTTP_STATUS.methodNotAllowed, `unsupported ${request7.method} ${request7.path}`);
66316
66562
  }
66317
- const scoped = parseProviderPath(request6.path);
66563
+ const scoped = parseProviderPath(request7.path);
66318
66564
  if (scoped === void 0 || scoped.rest !== "/v1/messages" && scoped.rest !== "/v1/messages/count_tokens") {
66319
- return errorResponse(HTTP_STATUS.notFound, `no such endpoint: ${request6.path}`);
66565
+ return errorResponse(HTTP_STATUS.notFound, `no such endpoint: ${request7.path}`);
66320
66566
  }
66321
66567
  const provider = ports.loadProvider(scoped.provider);
66322
66568
  if (!provider.ok) {
66323
66569
  return errorResponse(provider.status, provider.message);
66324
66570
  }
66325
- const json2 = parseJson3(request6.body);
66571
+ const json2 = parseJson3(request7.body);
66326
66572
  if (!json2.ok) {
66327
66573
  return errorResponse(HTTP_STATUS.badRequest, json2.message);
66328
66574
  }
66329
- return scoped.rest === "/v1/messages" ? await handleMessages(request6, provider.config, json2.value) : handleCountTokens(json2.value);
66575
+ return scoped.rest === "/v1/messages" ? await handleMessages(request7, provider.config, json2.value) : handleCountTokens(json2.value);
66330
66576
  };
66331
66577
  }
66332
66578
 
@@ -66338,10 +66584,10 @@ var BodyTooLargeError = class extends Error {
66338
66584
  this.name = "BodyTooLargeError";
66339
66585
  }
66340
66586
  };
66341
- async function readBody(request6) {
66587
+ async function readBody2(request7) {
66342
66588
  const chunks = [];
66343
66589
  let size = 0;
66344
- for await (const chunk of request6.body) {
66590
+ for await (const chunk of request7.body) {
66345
66591
  if (!Buffer.isBuffer(chunk)) {
66346
66592
  throw new TypeError("request body chunk was not a Buffer");
66347
66593
  }
@@ -66374,10 +66620,10 @@ function createCodexRouteMount(ports, upstreamBase, provider) {
66374
66620
  name: `codex:${provider}`,
66375
66621
  headroomEligible: true,
66376
66622
  headroomUpstream: upstreamBase,
66377
- serve: async (request6, response) => {
66623
+ serve: async (request7, response) => {
66378
66624
  let body;
66379
66625
  try {
66380
- body = await readBody(request6);
66626
+ body = await readBody2(request7);
66381
66627
  } catch (error62) {
66382
66628
  const tooLarge = error62 instanceof BodyTooLargeError;
66383
66629
  response.start(tooLarge ? HTTP_STATUS.payloadTooLarge : HTTP_STATUS.badRequest, { "Content-Type": "application/json" });
@@ -66385,23 +66631,23 @@ function createCodexRouteMount(ports, upstreamBase, provider) {
66385
66631
  JSON.stringify({ type: "error", error: { type: "invalid_request_error", message: error62 instanceof Error ? error62.message : String(error62) } })
66386
66632
  );
66387
66633
  response.end();
66388
- request6.body.resume();
66634
+ request7.body.resume();
66389
66635
  return;
66390
66636
  }
66391
- const path41 = new URL(request6.url, "http://127.0.0.1").pathname;
66392
- const translated = { method: request6.method, path: path41, body, signal: request6.signal };
66637
+ const path41 = new URL(request7.url, "http://127.0.0.1").pathname;
66638
+ const translated = { method: request7.method, path: path41, body, signal: request7.signal };
66393
66639
  const routed = await route(translated);
66394
- if (request6.signal.aborted) {
66640
+ if (request7.signal.aborted) {
66395
66641
  return;
66396
66642
  }
66397
- await writeRouteResponse(routed, response, request6.signal);
66643
+ await writeRouteResponse(routed, response, request7.signal);
66398
66644
  }
66399
66645
  };
66400
66646
  }
66401
66647
 
66402
66648
  // src/frontdoor/passthrough.ts
66403
66649
  var http4 = __toESM(require("node:http"), 1);
66404
- var https3 = __toESM(require("node:https"), 1);
66650
+ var https4 = __toESM(require("node:https"), 1);
66405
66651
  function responseHeaders2(headers) {
66406
66652
  const result = {};
66407
66653
  for (const [name, value] of Object.entries(forwardableHeaders(headers))) {
@@ -66421,16 +66667,16 @@ function createPassthroughRoute(name, target) {
66421
66667
  name,
66422
66668
  headroomEligible: true,
66423
66669
  headroomUpstream: target.headroomUpstream,
66424
- serve: async (request6, response) => {
66425
- const incoming = new URL(request6.url, "http://127.0.0.1");
66670
+ serve: async (request7, response) => {
66671
+ const incoming = new URL(request7.url, "http://127.0.0.1");
66426
66672
  const path41 = target.stripPrefix !== void 0 && incoming.pathname.startsWith(target.stripPrefix) ? incoming.pathname.slice(target.stripPrefix.length) : incoming.pathname;
66427
- const headers = forwardableHeaders(request6.headers);
66673
+ const headers = forwardableHeaders(request7.headers);
66428
66674
  delete headers.host;
66429
66675
  await new Promise((resolve) => {
66430
66676
  const options = {
66431
66677
  host: base.hostname,
66432
66678
  port: base.port === "" ? void 0 : Number(base.port),
66433
- method: request6.method,
66679
+ method: request7.method,
66434
66680
  path: `${basePath}${path41}${incoming.search}`,
66435
66681
  headers,
66436
66682
  agent
@@ -66441,7 +66687,7 @@ function createPassthroughRoute(name, target) {
66441
66687
  const stream = async () => {
66442
66688
  try {
66443
66689
  for await (const chunk of upstreamChunks(upstreamResponse)) {
66444
- if (request6.signal.aborted) {
66690
+ if (request7.signal.aborted) {
66445
66691
  return;
66446
66692
  }
66447
66693
  await response.write(chunk);
@@ -66454,7 +66700,7 @@ function createPassthroughRoute(name, target) {
66454
66700
  };
66455
66701
  void stream();
66456
66702
  };
66457
- const forward = tls2 ? https3.request(options, onUpstreamResponse) : http4.request(options, onUpstreamResponse);
66703
+ const forward = tls2 ? https4.request(options, onUpstreamResponse) : http4.request(options, onUpstreamResponse);
66458
66704
  forward.on("error", (error62) => {
66459
66705
  if (!response.headersSent) {
66460
66706
  response.start(HTTP_STATUS.badGateway, { "Content-Type": "application/json" });
@@ -66466,11 +66712,11 @@ function createPassthroughRoute(name, target) {
66466
66712
  }
66467
66713
  resolve(void 0);
66468
66714
  });
66469
- request6.signal.addEventListener("abort", () => {
66715
+ request7.signal.addEventListener("abort", () => {
66470
66716
  forward.destroy();
66471
66717
  });
66472
- request6.body.pipe(forward);
66473
- request6.body.on("error", () => {
66718
+ request7.body.pipe(forward);
66719
+ request7.body.on("error", () => {
66474
66720
  forward.destroy();
66475
66721
  });
66476
66722
  });
@@ -66492,8 +66738,8 @@ function createProviderRouteResolver(deps) {
66492
66738
  passthroughByTarget.set(key, route);
66493
66739
  return route;
66494
66740
  };
66495
- const resolve = (request6) => {
66496
- const path41 = new URL(request6.url, "http://127.0.0.1").pathname;
66741
+ const resolve = (request7) => {
66742
+ const path41 = new URL(request7.url, "http://127.0.0.1").pathname;
66497
66743
  const scoped = parseProviderPath(path41);
66498
66744
  if (scoped === void 0) {
66499
66745
  return path41.startsWith("/v1/") ? { ok: true, route: oauthRoute } : { ok: false, status: HTTP_STATUS.notFound, message: `no such endpoint: ${path41}` };
@@ -66532,7 +66778,246 @@ function createProviderRouteResolver(deps) {
66532
66778
  })
66533
66779
  };
66534
66780
  };
66535
- return async (request6) => await Promise.resolve(resolve(request6));
66781
+ return async (request7) => await Promise.resolve(resolve(request7));
66782
+ }
66783
+
66784
+ // src/frontdoor/rcSessions.ts
66785
+ var RC_SESSIONS_PATH_PREFIX = "/v1/code/sessions";
66786
+ var RC_SESSION_ID_PREFIX = "cse_";
66787
+ var RC_IDLE_EXPIRY_MS = 45e3;
66788
+ var RC_CREATE_RESPONSE_CAP_BYTES = 8192;
66789
+ var CONFLICT_REASON_HEADER = "x-ccr-conflict-reason";
66790
+ var SUCCESS_STATUS_MAX_EXCLUSIVE = 300;
66791
+ function isSuccessful(status) {
66792
+ return status >= HTTP_STATUS.ok && status < SUCCESS_STATUS_MAX_EXCLUSIVE;
66793
+ }
66794
+ function singleHeader(headers, name) {
66795
+ const value = headers[name];
66796
+ return typeof value === "string" ? value : void 0;
66797
+ }
66798
+ function sessionCreateId(body) {
66799
+ let parsed;
66800
+ try {
66801
+ parsed = JSON.parse(body);
66802
+ } catch {
66803
+ return void 0;
66804
+ }
66805
+ if (typeof parsed !== "object" || parsed === null || !("session" in parsed)) {
66806
+ return void 0;
66807
+ }
66808
+ const session = parsed.session;
66809
+ if (typeof session !== "object" || session === null || !("id" in session)) {
66810
+ return void 0;
66811
+ }
66812
+ const id = session.id;
66813
+ return typeof id === "string" && id.startsWith(RC_SESSION_ID_PREFIX) ? id : void 0;
66814
+ }
66815
+ function createRcSessionTracker(deps) {
66816
+ const entries = /* @__PURE__ */ new Map();
66817
+ const expire = (id) => {
66818
+ entries.delete(id);
66819
+ };
66820
+ const sweep = () => {
66821
+ for (const [id, entry] of entries) {
66822
+ if (deps.now() - entry.lastSeenAt >= deps.idleMs) {
66823
+ expire(id);
66824
+ }
66825
+ }
66826
+ };
66827
+ const timer = setInterval(sweep, deps.idleMs);
66828
+ timer.unref();
66829
+ const observeExchange = (request7) => {
66830
+ const method = (request7.method ?? "").toUpperCase();
66831
+ const path41 = new URL(request7.url ?? "/", "http://127.0.0.1").pathname;
66832
+ if (!path41.startsWith(RC_SESSIONS_PATH_PREFIX)) {
66833
+ return void 0;
66834
+ }
66835
+ const tail = path41.slice(RC_SESSIONS_PATH_PREFIX.length);
66836
+ const facts = {
66837
+ authorization: singleHeader(request7.headers, "authorization"),
66838
+ anthropicVersion: singleHeader(request7.headers, "anthropic-version"),
66839
+ anthropicClientPlatform: singleHeader(request7.headers, "anthropic-client-platform")
66840
+ };
66841
+ if (tail === "") {
66842
+ if (method !== "POST") {
66843
+ return void 0;
66844
+ }
66845
+ let accepted = false;
66846
+ let buffered = 0;
66847
+ let body = "";
66848
+ return {
66849
+ onResponse: (status) => {
66850
+ accepted = isSuccessful(status);
66851
+ },
66852
+ onBodyChunk: (chunk) => {
66853
+ if (!accepted || buffered >= RC_CREATE_RESPONSE_CAP_BYTES) {
66854
+ return;
66855
+ }
66856
+ const text2 = Buffer.from(chunk).toString("utf8");
66857
+ body = body + text2.slice(0, RC_CREATE_RESPONSE_CAP_BYTES - buffered);
66858
+ buffered = body.length;
66859
+ },
66860
+ onEnd: () => {
66861
+ if (!accepted) {
66862
+ return;
66863
+ }
66864
+ const id2 = sessionCreateId(body);
66865
+ if (id2 === void 0) {
66866
+ return;
66867
+ }
66868
+ entries.set(id2, { id: id2, createdAt: deps.now(), lastSeenAt: deps.now(), ...facts });
66869
+ }
66870
+ };
66871
+ }
66872
+ const rest = tail.slice(1);
66873
+ const [id] = rest.split("/");
66874
+ if (id?.startsWith(RC_SESSION_ID_PREFIX) !== true) {
66875
+ return void 0;
66876
+ }
66877
+ const entry = entries.get(id);
66878
+ if (entry === void 0) {
66879
+ entries.set(id, { id, createdAt: deps.now(), lastSeenAt: deps.now(), ...facts });
66880
+ } else {
66881
+ entry.lastSeenAt = deps.now();
66882
+ entry.authorization = facts.authorization ?? entry.authorization;
66883
+ entry.anthropicVersion = facts.anthropicVersion ?? entry.anthropicVersion;
66884
+ entry.anthropicClientPlatform = facts.anthropicClientPlatform ?? entry.anthropicClientPlatform;
66885
+ }
66886
+ const archiving = method === "POST" && rest === `${id}/archive`;
66887
+ return {
66888
+ onResponse: (status, headers) => {
66889
+ if (singleHeader(headers, CONFLICT_REASON_HEADER) !== void 0 || archiving && isSuccessful(status)) {
66890
+ expire(id);
66891
+ }
66892
+ },
66893
+ onBodyChunk: () => {
66894
+ },
66895
+ onEnd: () => {
66896
+ }
66897
+ };
66898
+ };
66899
+ return {
66900
+ observeExchange,
66901
+ list: () => {
66902
+ sweep();
66903
+ return [...entries.values()].sort((left, right) => left.createdAt - right.createdAt || (left.id < right.id ? -1 : 1)).map(({ id, createdAt, lastSeenAt }) => ({ id, createdAt, lastSeenAt }));
66904
+ },
66905
+ credentialOf: (sessionId) => {
66906
+ const entry = entries.get(sessionId);
66907
+ return entry === void 0 ? void 0 : { authorization: entry.authorization, anthropicVersion: entry.anthropicVersion, anthropicClientPlatform: entry.anthropicClientPlatform };
66908
+ },
66909
+ close: () => {
66910
+ clearInterval(timer);
66911
+ }
66912
+ };
66913
+ }
66914
+ function observingRoutedRoute(route, tracker) {
66915
+ return {
66916
+ ...route,
66917
+ serve: async (request7, response) => {
66918
+ const observed = tracker.observeExchange({ method: request7.method, url: request7.url, headers: request7.headers });
66919
+ await route.serve(request7, observed === void 0 ? response : teeRoutedResponse(response, observed));
66920
+ }
66921
+ };
66922
+ }
66923
+ function teeRoutedResponse(response, observer) {
66924
+ return {
66925
+ get headersSent() {
66926
+ return response.headersSent;
66927
+ },
66928
+ start: (status, headers) => {
66929
+ observer.onResponse(status, headers);
66930
+ response.start(status, headers);
66931
+ },
66932
+ flush: () => {
66933
+ response.flush();
66934
+ },
66935
+ write: async (chunk) => {
66936
+ observer.onBodyChunk(typeof chunk === "string" ? Buffer.from(chunk, "utf8") : chunk);
66937
+ await response.write(chunk);
66938
+ },
66939
+ end: () => {
66940
+ response.end();
66941
+ observer.onEnd();
66942
+ },
66943
+ destroy: () => {
66944
+ response.destroy();
66945
+ observer.onEnd();
66946
+ }
66947
+ };
66948
+ }
66949
+ function buildRcUserMessagePayload(uuid3, sessionId, text2) {
66950
+ return {
66951
+ type: "user",
66952
+ uuid: uuid3,
66953
+ session_id: sessionId,
66954
+ parent_tool_use_id: null,
66955
+ message: { role: "user", content: text2 }
66956
+ };
66957
+ }
66958
+ function buildRcEventWriteBody(payload) {
66959
+ return { events: [{ payload }] };
66960
+ }
66961
+ function sequenceNumsOf(body) {
66962
+ let parsed;
66963
+ try {
66964
+ parsed = JSON.parse(body);
66965
+ } catch {
66966
+ return void 0;
66967
+ }
66968
+ if (typeof parsed !== "object" || parsed === null || !("results" in parsed) || !Array.isArray(parsed.results)) {
66969
+ return void 0;
66970
+ }
66971
+ const sequenceNums = [];
66972
+ const results = parsed.results;
66973
+ for (const result of results) {
66974
+ if (typeof result !== "object" || result === null || !("sequence_num" in result)) {
66975
+ return void 0;
66976
+ }
66977
+ const sequenceNum = result.sequence_num;
66978
+ if (typeof sequenceNum !== "number") {
66979
+ return void 0;
66980
+ }
66981
+ sequenceNums.push(sequenceNum);
66982
+ }
66983
+ return sequenceNums.length === 0 ? void 0 : sequenceNums;
66984
+ }
66985
+ function rcInjectResultFromAnswer(answer) {
66986
+ if (!isSuccessful(answer.status)) {
66987
+ if (answer.status === HTTP_STATUS.unauthorized) {
66988
+ return { ok: false, message: `the API refused the observed Authorization bearer for this session (HTTP 401): the bearer went stale after the door last saw the session's traffic. The session's own client refreshes it on its next call, which the door will observe, so retry once Remote Control has been active again. API answer: ${answer.body}` };
66989
+ }
66990
+ return { ok: false, message: `the API answered HTTP ${String(answer.status)} to the injected event: ${answer.body}` };
66991
+ }
66992
+ const sequenceNums = sequenceNumsOf(answer.body);
66993
+ if (sequenceNums === void 0) {
66994
+ return { ok: false, message: `the API accepted the injected event but its answer named no results[].sequence_num, so delivery cannot be confirmed: ${answer.body}` };
66995
+ }
66996
+ return { ok: true, sequenceNums };
66997
+ }
66998
+ async function injectRcUserMessage(deps, sessionId, text2) {
66999
+ const credential = deps.credentialOf(sessionId);
67000
+ if (credential === void 0) {
67001
+ return { ok: false, message: `the front door has not observed Remote Control session ${sessionId}: it may never have passed through this door, or it ended or expired (an entry lives only a bounded idle period past its last observed traffic)` };
67002
+ }
67003
+ const headers = { "content-type": "application/json" };
67004
+ if (credential.authorization !== void 0) {
67005
+ headers.authorization = credential.authorization;
67006
+ }
67007
+ if (credential.anthropicVersion !== void 0) {
67008
+ headers["anthropic-version"] = credential.anthropicVersion;
67009
+ }
67010
+ if (credential.anthropicClientPlatform !== void 0) {
67011
+ headers["anthropic-client-platform"] = credential.anthropicClientPlatform;
67012
+ }
67013
+ const body = JSON.stringify(buildRcEventWriteBody(buildRcUserMessagePayload(deps.newUuid(), sessionId, text2)));
67014
+ let answer;
67015
+ try {
67016
+ answer = await deps.dial.writeEvents(sessionId, headers, body);
67017
+ } catch (error62) {
67018
+ return { ok: false, message: `the door could not reach the API host to inject into session ${sessionId}: ${error62 instanceof Error ? error62.message : String(error62)}` };
67019
+ }
67020
+ return rcInjectResultFromAnswer(answer);
66536
67021
  }
66537
67022
 
66538
67023
  // src/usage/providerQuota.ts
@@ -66826,13 +67311,21 @@ function headroomSocketTarget(fsPort, trust, paths) {
66826
67311
  const socketPath = readHeadroomState(fsPort, paths.headroomStateFile)?.socketPath;
66827
67312
  return socketPath === void 0 ? void 0 : verifyHeadroomSocket(socketPath, trust);
66828
67313
  }
67314
+ function rcObservingResolver(resolve, tracker) {
67315
+ return async (request7) => {
67316
+ const resolution = await resolve(request7);
67317
+ return resolution.ok ? { ok: true, route: observingRoutedRoute(resolution.route, tracker) } : resolution;
67318
+ };
67319
+ }
66829
67320
  function realFrontDoorSupervisorPorts(paths) {
66830
67321
  const log = (line) => {
66831
67322
  appendLog(paths, `frontdoor ${String(process.pid)}: ${line}`);
66832
67323
  };
66833
67324
  let directPort = 0;
66834
67325
  const codexPorts = createCodexRoutePorts(log);
66835
- const resolveRoute = createProviderRouteResolver({ fs: realFsPort, providersDir: paths.providersDir, codexPorts, directPort: () => directPort });
67326
+ const rcTracker = createRcSessionTracker({ now: () => Date.now(), idleMs: RC_IDLE_EXPIRY_MS });
67327
+ const rcControlToken = (0, import_node_crypto11.randomUUID)();
67328
+ const resolveRoute = rcObservingResolver(createProviderRouteResolver({ fs: realFsPort, providersDir: paths.providersDir, codexPorts, directPort: () => directPort }), rcTracker);
66836
67329
  const isLiveToken = (token) => isLiveCapability(token, liveSessionTokens(realFarmFs, paths.frontdoorSessionsDir));
66837
67330
  const usageStore = createUsageStore({
66838
67331
  fs: realFarmFs,
@@ -66884,15 +67377,26 @@ function realFrontDoorSupervisorPorts(paths) {
66884
67377
  isRunning: realIsProcessRunning,
66885
67378
  startProviderListener: async (preferredPort) => {
66886
67379
  const authority = loadCa();
67380
+ const rcInject = async (sessionId, text2) => await injectRcUserMessage({ credentialOf: rcTracker.credentialOf, dial: realRcEventDial(), newUuid: import_node_crypto11.randomUUID }, sessionId, text2);
67381
+ realFarmFs.mkdirp(paths.frontdoorDir);
67382
+ realFarmFs.writeFilePrivate(paths.frontdoorControlTokenFile, `${rcControlToken}
67383
+ `);
66887
67384
  const server = createFrontDoorServer(
66888
- async (request6) => {
66889
- await serveRouted(request6, pipelines.clientFacing);
67385
+ async (request7) => {
67386
+ await serveRouted(request7, pipelines.clientFacing);
66890
67387
  },
66891
67388
  log,
66892
- mintLeaf(authority, LOOPBACK_LEAF_NAMES, /* @__PURE__ */ new Date())
67389
+ mintLeaf(authority, LOOPBACK_LEAF_NAMES, /* @__PURE__ */ new Date()),
67390
+ createRcControlHandler({ expectedToken: rcControlToken, list: rcTracker.list, inject: rcInject })
66893
67391
  );
66894
67392
  const handle = await listenFrontDoor(server, { ...preferredPort === void 0 ? {} : { preferredPort }, ca: authority.certPem, onError: onListenerError("provider") });
66895
- return { port: handle.port, close: handle.close };
67393
+ return {
67394
+ port: handle.port,
67395
+ close: async () => {
67396
+ realFarmFs.removeRecursive(paths.frontdoorControlTokenFile);
67397
+ await handle.close();
67398
+ }
67399
+ };
66896
67400
  },
66897
67401
  startConnectListener: async (preferredPort) => {
66898
67402
  const transparentPort = process.env.AGENT_SHIM_TRANSPARENT_SURFACE === void 0 ? void 0 : Number(process.env.AGENT_SHIM_TRANSPARENT_SURFACE);
@@ -66910,16 +67414,16 @@ function realFrontDoorSupervisorPorts(paths) {
66910
67414
  interceptHosts: CONNECT_INTERCEPT_HOSTS,
66911
67415
  tapHosts: CONNECT_TAP_HOSTS,
66912
67416
  routedHost: CONNECT_INTERCEPT_HOST,
66913
- serveRouted: (request6, response) => {
67417
+ serveRouted: (request7, response) => {
66914
67418
  const abort = new AbortController();
66915
67419
  response.on("close", () => {
66916
67420
  if (!response.writableFinished) {
66917
67421
  abort.abort();
66918
67422
  }
66919
67423
  });
66920
- void serveRouted({ method: request6.method ?? "GET", url: request6.url ?? "/", headers: request6.headers, body: request6, signal: abort.signal, response }, pipelines.clientFacing).catch(
67424
+ void serveRouted({ method: request7.method ?? "GET", url: request7.url ?? "/", headers: request7.headers, body: request7, signal: abort.signal, response }, pipelines.clientFacing).catch(
66921
67425
  (error62) => {
66922
- log(`connect request ${request6.method ?? "?"} ${request6.url ?? "?"} failed: ${error62 instanceof Error ? `${error62.name}: ${error62.message}` : String(error62)}`);
67426
+ log(`connect request ${request7.method ?? "?"} ${request7.url ?? "?"} failed: ${error62 instanceof Error ? `${error62.name}: ${error62.message}` : String(error62)}`);
66923
67427
  if (!response.headersSent) {
66924
67428
  response.writeHead(HTTP_STATUS.badGateway, { "Content-Type": "application/json" });
66925
67429
  response.end(JSON.stringify({ type: "error", error: { type: "api_error", message: "internal error in the agent-shim front door" } }));
@@ -66942,8 +67446,8 @@ function realFrontDoorSupervisorPorts(paths) {
66942
67446
  return { port: server.port, close: server.close };
66943
67447
  },
66944
67448
  startDirectListener: async (preferredPort) => {
66945
- const server = createFrontDoorServer(async (request6) => {
66946
- await serveRouted(request6, pipelines.direct);
67449
+ const server = createFrontDoorServer(async (request7) => {
67450
+ await serveRouted(request7, pipelines.direct);
66947
67451
  }, log);
66948
67452
  const handle = await listenFrontDoor(server, {
66949
67453
  ...preferredPort === void 0 ? {} : { preferredPort },
@@ -67006,6 +67510,27 @@ function formatFrontDoorStatus(status, caCertPath) {
67006
67510
  lines.push(`daemon log: ${status.logPath}${status.logExists ? "" : " (not created yet)"}`);
67007
67511
  return lines;
67008
67512
  }
67513
+ function formatRcSessionList(sessions) {
67514
+ if (sessions.length === 0) {
67515
+ return ["no Remote Control sessions observed"];
67516
+ }
67517
+ return sessions.map((session) => `${session.id} created ${new Date(session.createdAt).toISOString()} last seen ${new Date(session.lastSeenAt).toISOString()}`);
67518
+ }
67519
+ function frontDoorRcControlFromState(fsPort, paths) {
67520
+ const state = readFrontDoorState(fsPort, paths.frontdoorStateFile);
67521
+ if (state?.port === void 0) {
67522
+ throw new Error("the front door is not serving: Remote Control sessions are observed only while it runs, so start a session through the door first");
67523
+ }
67524
+ const ca = fsPort.readFileUtf8(paths.frontdoorCaCertFile);
67525
+ if (ca === void 0) {
67526
+ throw new Error(`the front door's CA certificate is missing at ${paths.frontdoorCaCertFile}, so its control listener cannot be authenticated`);
67527
+ }
67528
+ const token = fsPort.readFileUtf8(paths.frontdoorControlTokenFile)?.trim();
67529
+ if (token === void 0 || token === "") {
67530
+ throw new Error(`the serving front door's control token is missing at ${paths.frontdoorControlTokenFile}`);
67531
+ }
67532
+ return frontDoorRcControl(realRcControlTransport(state.port, ca), token);
67533
+ }
67009
67534
  function registerFrontDoorCommand(program2, deps) {
67010
67535
  const { paths } = deps;
67011
67536
  const frontdoor = withExamples(program2.command("frontdoor").description("Inspect the front-door daemon that routes every agent-shim session."), [
@@ -67024,6 +67549,36 @@ function registerFrontDoorCommand(program2, deps) {
67024
67549
  }),
67025
67550
  ["agent-shim frontdoor status", "agent-shim frontdoor status --json"]
67026
67551
  );
67552
+ const rc = withExamples(frontdoor.command("rc").description("Observe the Remote Control sessions passing through the front door, and send a prompt into one."), [
67553
+ "agent-shim frontdoor rc list"
67554
+ ]);
67555
+ withExamples(
67556
+ rc.command("list").description("List the Remote Control sessions the front door has observed, with when each was created and last seen. Read-only.").option("--json", "Print the sessions as JSON.").action(async (options) => {
67557
+ const sessions = await frontDoorRcControlFromState(realFarmFs, paths).listSessions();
67558
+ if (options.json === true) {
67559
+ printJson({ sessions });
67560
+ return;
67561
+ }
67562
+ for (const line of formatRcSessionList(sessions)) {
67563
+ console.log(line);
67564
+ }
67565
+ }),
67566
+ ["agent-shim frontdoor rc list", "agent-shim frontdoor rc list --json"]
67567
+ );
67568
+ withExamples(
67569
+ rc.command("send").description("Send a text prompt into one observed Remote Control session, arriving as a message from an attached client would.").requiredOption("--session <id>", "The cse_ session id, as `frontdoor rc list` shows it.").requiredOption("--text <text>", "The prompt text to deliver.").option("--json", "Print the delivery result as JSON.").action(async (options) => {
67570
+ const result = await frontDoorRcControlFromState(realFarmFs, paths).sendPrompt(options.session, options.text);
67571
+ if (!result.ok) {
67572
+ throw new Error(result.message);
67573
+ }
67574
+ if (options.json === true) {
67575
+ printJson({ session: options.session, sequenceNums: result.sequenceNums });
67576
+ return;
67577
+ }
67578
+ console.log(`sent to ${options.session}: sequence_num ${result.sequenceNums.join(", ")}`);
67579
+ }),
67580
+ ['agent-shim frontdoor rc send --session cse_00000000-0000-4000-8000-000000000000 --text "run the tests"']
67581
+ );
67027
67582
  program2.command("__frontdoor-supervisor", { hidden: true }).description("Internal: serve the front-door routing listeners. Started by the launcher; never run by hand.").allowUnknownOption().action(async () => {
67028
67583
  const idleShutdownMinutes = readGlobalConfig(paths)?.frontdoor?.idleShutdownMinutes ?? FRONTDOOR_DEFAULT_IDLE_SHUTDOWN_MINUTES;
67029
67584
  process.on("SIGTERM", () => {